環境
脱PPPoEをするためにIPv4 over IPv6を使おうと思うのだが、一般に広く使われているv6プラス(MAP-E)や、transix(DS-Lite)などは、一つのIPv4アドレスを複数の契約者で共有するため利用できるポートが限られてしまう。 (自宅鯖(80/443)や一部のゲームで使用できない場合があるそう)
そこで、固定IPオプションをつけることにより一つのIPv4アドレスを占有することができ任意のポートを使用できる。
https://www.jpne.co.jp/service/v6plus-static/
https://www.mfeed.ad.jp/transix/staticip/
これらは全てNGN網から固定IP終端装置に対してIPIPトンネルを張る。
v6プラス固定IP、transix固定IPのどちらかを選ぶことになるのだが、どうやら
transix固定IPでは制限がかけられているらしいのでv6プラス固定IPを使用する。
しかし、v6プラス固定IPサービスを提供している事業者は数少ない。
https://www.jpne.co.jp/v6plus-static_list/
今回引っ越した新居には光コンセントがあったので小型ONUを簡単に出してくれるらしいフレッツコラボのenひかりを契約した。
前提
今回は光電話を契約しなかったため、/64
プレフィックスがRAにより配布されているため、EdgerouterでNDproxyを導入する必要がある。
説明に用いている表記は、
# (configureモード)
$ (通常モード)
となっていて、configureモードから通常モードに移行した際はcommit; save; exit
をしている。
RA Prefixの取得
回線の開通が済んだら、IPv6のPrefixを取得する。
ここで必要になるのは、
- 隣ルータのリンクローカルアドレス :
fe80::xxxx:xxxx:xxxx:xxxx
- IPv6 Prefix :
240b:xxxx:xxxx:xxxx::/64
の二つ。
$ 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を使ってやってみたいな