/home/tnishinaga/TechMEMO

日々行ったこと、面白かったことを書き留めます。

EdgeRouterLiteを使ってiijmioひかりでインターネット接続する方法メモ

家のネット回線が光になりました.

プロパイダは iijmioひかり です. キャッシュバック価格などを含めたひと月あたりの回線価格は他のプロパイダのほうが安いのですが,評判を見ると耐えられないほど速度が出ないとあったので,国内老舗ISPであるIIJなら信頼できると考え選びました.(が......速度に関しては上りは速くなりましたが,下りは逆に遅くなったような......時間帯が悪かったのか,IPv4は速度が出ないのか......)

さて,以前はモデムにルーターをぶっさせばDHCPでプライベートIP降ってくる環境だったのですが,光になってからはONUやらHGWやらPPPoEやら,見慣れない単語と設定のオンパレードで混乱します.

とりあえず今出てきた3語の意味は以下.

光回線からインターネットに接続するためには,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以下を推奨しているので,その値を設定します.

IIJ4Uサービス終了のお知らせ

次に設定するのは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ポートにスイッチングハブを接続し,スイッチ経由で接続したらつながるようになりました(なんだそれ......

何か心当たりのある方は教えて下さい......