EdgerouterXにNDプロキシーを入れてLAN側もIPv6通信をできるようにしてみた。
自宅内の LAN 側も IPv6 対応して、WAN 側と IPv6 通信を可能にしたいと思います。WAN 側は、IPoE(IPv6)通信でしたが LAN 側は IPv4 の通信となっていました。我が家の環境は、NTT 光(ひかり電話はなし)のため、LAN 側に IPv6 のアドレスを配布できないので、EdgeRouterX に ND プロキシー機能を追加して WAN 側と IPv6 の通信を可能にしたいと思います。
LAN 側に IPv6 を割当てます
switch0 に接続された LAN 側に IPv6 の設定を追加したいと思います。その他 FireWall や DNS などの設定は前回のものEdgeRouterX を IPoE と PPPoE にしてみた。と同じです。
interfaces {
:
switch switch0 {
address 192.168.1.1/24
description LAN2
firewall {
in {
modify LAN_PBR
}
}
ipv6 {
address {
eui64 2409:xx:xx:xx:xx:xx:xx:xx/64 ← eth0に割り振られたアドレスを設定
}
dup-addr-detect-transmits 1
router-advert {
cur-hop-limit 64
link-mtu 1500
managed-flag false
max-interval 600
other-config-flag true
prefix ::/64 {
autonomous-flag true
on-link-flag true
valid-lifetime 2592000
}
reachable-time 0
retrans-timer 0
send-advert true
}
}
:
}
}
EdgeRouterX に ND プロキシーのインストール
このままでは、WAN 側と IPv6 通信できませんので EdgeRouterX に ND プロキシーをインストールしたいと思います。ND プロキーが動作していない場合は IPv6 が割り振られても ND(Neighbor Discovery)が流れてこないので WAN 側と IPv6 の通信をすることはできません。
今回は、Edgerouter X(ER-X) 用に ndppd をカンタンにビルドする (ひかり電話なし)を参考に EdgeRouterX に ND プロキシーをインストールします。コンパイルは、Docker サーバ(Podman)で Ubuntu サーバを立ち上げて MIPS(Little Endian)でビルドしました。こういう時は Docker サーバを持っていると楽だと感じます。ビルドしたらこれを EdgeRouterX に持っていきます。コピー先は、/bdppd/local/sbin とします。このディレトクリに ndppd と ndppd.initscript を配置します。また自動起動できるように/config/scripts/post-config.d に起動ようのスクリプトを作成します。
#!bin/bash
/ndppd/local/sbin/ndppd.initscript start
次に cdppd.con を作成します。WAN 側が eth0、LAN 側が switch0 の場合以下のようになります。
proxy eth0 {
router no
timeout 500
autowire yes
keepalive yes
retries 3
ttl 30000
rule ::/0 {
iface switch0
}
}
proxy switch0 {
router yes
timeout 500
autowire yes
keepalive yes
retries 3
ttl 30000
rule ::/0 {
auto
}
}
EdgeRouterX を再起動して ndppd が起動します。
IPv6 での通信のテスト
早速、IPv6 のテストをしたいと思います。まずクライアント Mac のネットワークを確認したいと思います。IPv6 のアドレスが 2 つ設定されています。OK です。
以上で LAN 側からも IPv6 通信が可能となりました。