家のネット回線が光になりました.
プロパイダは iijmioひかり です. キャッシュバック価格などを含めたひと月あたりの回線価格は他のプロパイダのほうが安いのですが,評判を見ると耐えられないほど速度が出ないとあったので,国内老舗ISPであるIIJなら信頼できると考え選びました.(が......速度に関しては上りは速くなりましたが,下りは逆に遅くなったような......時間帯が悪かったのか,IPv4は速度が出ないのか......)
さて,以前はモデムにルーターをぶっさせばDHCPでプライベートIP降ってくる環境だったのですが,光になってからはONUやらHGWやらPPPoEやら,見慣れない単語と設定のオンパレードで混乱します.
とりあえず今出てきた3語の意味は以下.
- ONU: 光回線終端端末.モデムのようなもの.
- HGW: ホームゲートウェイ.フレッツ光が配ってる光回線に特化したルーター.
- PPPoE: PPP(Point to Point)接続をEthernet経由で行うプロトコル.
光回線からインターネットに接続するためには,ONUにHGW(または用意したルーター)を接続し,PPPoE接続でプロパイダのネットワークに接続する必要があります. PPPoE接続が確立されると,グローバルなIPが降ってきてインターネットに接続できるようになります.
この辺りの話は,おるみんちゃんのブログ記事がわかりやすいです.
技術者見習いの独り言: EdgeRouterLite-3をGentooで運用しはじめました+IPv6導入(本篇)
EfgeRouterの設定(IPv4)
とりあえずIPv4でネットに繋がるようにしたいので,ONUにEdgeRouterのeth0を接続し,eth1をLANとして設定を行いました.
最終的なconfig.bootと設定コマンドは以下のgistを参照してください.
EdgeRouterLite iijmioひかり IPv4 config
MTUとMSS-clamp設定
重要なのは以下のPPPoEのMTUとmss-clamp設定の部分.
set interfaces ethernet eth0 pppoe 0 mtu 1454 set firewall modify pppoe-out rule 1 action modify set firewall modify pppoe-out rule 1 modify tcp-mss 1414 set firewall modify pppoe-out rule 1 protocol tcp set firewall modify pppoe-out rule 1 tcp flags 'SYN' set interfaces ethernet eth0 pppoe 0 firewall out modify pppoe-out
光通信はPPPoEを用いるので,最低でもPPPoE接続なヘッダ分(8byte),一度に送れるデータが小さくなってしまします. そのため,一度に送れるデータの最大値を決める事ができるMTUの設定を下げなければ,うまく通信ができません.
IIJではこのMTUの値として1454以下を推奨しているので,その値を設定します.
次に設定するのはmss-clampの部分. これを設定するとネットワークの接続相手に「xxx byte 以上のパケットを送らないで!」と予め伝えることができます.
こうすることでMTUの低い経路が途中にあったとしても,パケットサイズはmss-clampで設定した大きさ以下になるので通ることができるようになります.
一般にこのmss-clampの値はMTUから40引いた値が良いとされており,IIJでは1414が推奨されています.
Firewallの適応先
Firewallの適応先インターフェースは,今までの感覚だとONUに接続しているeth0にかければ良いと考えていました.
しかし,光回線でインターネットに接続しているのは物理的なポートではなく,PPPoEにより確立されたトンネルです. なので,トンネルに対してFirewallを適応する必要があります.
その設定を行うのが以下のコマンドです.
set interfaces ethernet eth0 pppoe 0 firewall in name OUTSIDE-IN set interfaces ethernet eth0 pppoe 0 firewall local name OUTSIDE-LOCAL
とりあえずこれでIPv4は通るようになりました.
次はもう一本IPv6用のPPPoEトンネルを通してIPv6をつなげるよう,ルーター設定と格闘したいと思います.
Tips: どはまりぽいんと
EdgeRouterのEthernetポートにMacBookAirを直接接続して作業していたところ,ルーターの設定が問題ないにもかからわず,何故かネットに,それどころかルーターのWeb管理画面にすら全く接続できなくなりました.
原因がよくわからないのですが,EdgeRouterのEthernetポートにスイッチングハブを接続し,スイッチ経由で接続したらつながるようになりました(なんだそれ......
何か心当たりのある方は教えて下さい......