Edgerouter Xでv6プラス固定IPを使う
目次
- 目次
- 環境
- 前提
- RA Prefixの取得
- 内部LAN側のIPv6アドレスの定義
- IPIPトンネルを張る
- NAT・ルーティングの設定
- mss-clampの設定
- NDProxyによるIPv6環境
- 速度測定
環境
脱PPPoEをするためにIPv4 over IPv6を使おうと思うのだが、一般に広く使われているv6プラス(MAP-E)や、transix(DS-Lite)などは、一つのIPv4アドレスを複数の契約者で共有するため利用できるポートが限られてしまう。 *1
そこで、固定IPオプションをつけることにより一つのIPv4アドレスを占有することができ任意のポートを使用できる。
これらは全てNGN網から固定IP終端装置に対してIPIPトンネルを張る。
v6プラス固定IP、transix固定IPのどちらかを選ぶことになるのだが、どうやら transix固定IPでは制限がかけられているらしいのでv6プラス固定IPを使用する。
しかし、v6プラス固定IPサービスを提供している事業者は数少ない。
今回引っ越した新居には光コンセントがあったので小型ONUを簡単に出してくれるらしいフレッツコラボのenひかりを契約した。
前提
今回は光電話を契約しなかったため、/64
プレフィックスがRAにより配布されているため、EdgerouterでNDproxyを導入する必要がある。
説明に用いている表記は、
# (configureモード) $ (通常モード)
となっていて、configureモードから通常モードに移行した際はcommit; save; exit
をしている。
RA Prefixの取得
回線の開通が済んだら、IPv6のPrefixを取得する。 ここで必要になるのは、
の二つ。
$ sudo radvdump # # radvd configuration generated by radvdump 2.16 # based on Router Advertisement from fe80::xxxx:xxxx:xxxx:xxxx # received by interface eth0 # interface eth0 { AdvSendAdvert on; # Note: {Min,Max}RtrAdvInterval cannot be obtained with radvdump AdvManagedFlag off; AdvOtherConfigFlag on; AdvReachableTime 300000; AdvRetransTimer 10000; AdvCurHopLimit 64; AdvDefaultLifetime 1800; AdvHomeAgentFlag off; AdvDefaultPreference medium; AdvSourceLLAddress on; prefix 240b:xxxx:xxxx:xxxx::/64 { AdvValidLifetime 2592000; AdvPreferredLifetime 604800; AdvOnLink on; AdvAutonomous on; AdvRouterAddr off; }; # End of prefix definition }; # End of interface definition
内部LAN側のIPv6アドレスの定義
enひかりから通知された固定IP情報に記載されているインターフェイスIDをyyyy:yyyy:yyyy:yyyy
とすると、内部LANのアドレスは240b:xxxx:xxxx:xxxx:yyyy:yyyy:yyyy:yyyy/64
となる。
# set interfaces switch switch0 address '240b:xxxx:xxxx:xxxx:yyyy:yyyy:yyyy:yyyy/64' # set interfaces switch switch0 description Local # set interfaces switch switch0 ipv6 dup-addr-detect-transmits 1 # set interfaces switch switch0 ipv6 router-advert cur-hop-limit 64 # set interfaces switch switch0 ipv6 router-advert link-mtu 1500 # set interfaces switch switch0 ipv6 router-advert managed-flag false # set interfaces switch switch0 ipv6 router-advert max-interval 600 # set interfaces switch switch0 ipv6 router-advert other-config-flag true # set interfaces switch switch0 ipv6 router-advert prefix '240b:xxxx:xxxx:xxxx::/64' autonomous-flag true # set interfaces switch switch0 ipv6 router-advert prefix '240b:xxxx:xxxx:xxxx::/64' on-link-flag true # set interfaces switch switch0 ipv6 router-advert prefix '240b:xxxx:xxxx:xxxx::/64' valid-lifetime 2592000 # set interfaces switch switch0 ipv6 router-advert reachable-time 0 # set interfaces switch switch0 ipv6 router-advert retrans-timer 0 # set interfaces switch switch0 ipv6 router-advert send-advert true
IPv6のデフォルトゲートウェイを対岸のルータとする。
set protocols static route6 '::/0' next-hop 'fe80::xxxx:xxxx:xxxx:xxxx' interface eth0
IPIPトンネルを張る
enひかりから通知された固定IP情報に記載されている[固定IPアドレス]と[BRアドレス]を使用する。
# set interfaces ipv6-tunnel v6tun0 address [固定IPアドレス] # set interfaces ipv6-tunnel v6tun0 description v6plus-static # set interfaces ipv6-tunnel v6tun0 encapsulation ipip6 # set interfaces ipv6-tunnel v6tun0 firewall in name WAN_IN # set interfaces ipv6-tunnel v6tun0 firewall local name WAN_LOCAL # set interfaces ipv6-tunnel v6tun0 local-ip '240b:xxxx:xxxx:xxxx:yyyy:yyyy:yyyy:yyyy' # set interfaces ipv6-tunnel v6tun0 mtu 1452 # set interfaces ipv6-tunnel v6tun0 multicast disable # set interfaces ipv6-tunnel v6tun0 remote-ip '[BRアドレス]' # set interfaces ipv6-tunnel v6tun0 ttl 64
NAT・ルーティングの設定
set service nat rule 5010 outbound-interface v6tun0 set service nat rule 5010 type masquerade set protocols static interface-route 0.0.0.0/0 next-hop-interface v6tun0
mss-clampの設定
set firewall options mss-clamp interface-type all set firewall options mss-clamp mss 1412
NDProxyによるIPv6環境
以下を参考にndppdを導入する
速度測定
EdgerouterのCPU性能がボトルネックになってるよう...
次はx86_64なPCでVyOSを使ってやってみたいな
*1:自宅鯖(80/443)や一部のゲームで使用できない場合があるそう