前回、EdgerouterX に ND プロキシーを導入し、自宅内の LAN 側も IPv6 対応しました。今回は、公開サーバ側のネットワークを PPPoE(IPv4)+IPoE(IPv6)にしたいと思います。前回の設定に公開サーバのネットワークを追加し IPv6 の Firewall に https ポートを追加し、最後に IPv6 テストサイトを活用して確認します。
公開サーバ LAN 側に IPv6 を割当てます
公開サーバ側 LAN1(eth1) に IPv6 の設定を追加したいと思います。内容は前回 swithc0 に設定した内容と同じです。これで LAN1 にも IPv6 のアドレスが設定されます。
interfaces {
:
ethernet eth1 {
address 192.168.10.1/24
description LAN1
duplex auto
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
}
}
speed auto
}
}
eht1 の ip アドレスを確認します。IPv6 のネットワークアドレスがローカル、グローバルが設定されていると思います。
$ ip addr show eth1
5: eth1@itf0: <BROADCAST,MULTICAST,ALLMULTI,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether f0:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 192.168.10.1/24 brd 192.168.10.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 2409:xx:xx:xx:xx:xx:xx:xx/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::xx:xx:xx:xx/64 scope link
valid_lft forever preferred_lft forever
ND プロキシーコンフィグファイルの修正
LAN1(eth1)にも ND(Neighbor Discovery)が通るように設定し、WAN 側と LAN1(eth1)側も IPv6 の通信をするようにします。 少し無理矢理感がありますが、eht1 を追加
proxy eth0 {
router no
timeout 500
autowire yes
keepalive yes
retries 3
ttl 30000
rule ::/0 {
iface switch0
}
rule 2409:xx:xx:xx:xx:xx:xx:xx { ← 公開サーバのIPv6のアドレスを指定
iface eth1
}
}
:
proxy eht1 {
router yes
timeout 500
autowire yes
keepalive yes
retries 3
ttl 30000
rule ::/0 {
auto
}
}
IPv6 の Firewall に https ポートを追加します。
roule 30 に https を追加して、WAN 側から IPv6 tcp/https が通過できるようにします。
ipv6-name WANv6_IN {
default-action drop
description "WANv6 to LAN"
enable-default-log
rule 10 {
action accept
description "Allow established/related"
state {
established enable
related enable
}
}
rule 20 {
action accept
description "Allow IPv6 ICMP"
protocol icmpv6
}
rule 30 {
action accept
description "Allow IPv6 https"
destination {
port https
}
protocol tcp
}
rule 40 {
action drop
description "Drop invalid state"
}
}
IPv6 テストサイトを活用して公開サーバをテストします。
テストの前に web サーバ(nginx)を IPv6 が利用できるように設定します。
:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2; ← こちらを追加します。
server_name www.akiboi.duckdns.org;
:
続いて、DNS に公開 Web サーバのグローバル IPv6 アドレスを登録します。私はDuck DNSを利用していますのでこちに登録しました。 これで準備が整いましたので、テストをしたいと思います。今回はhttps://ready.chair6.net/でチェックします。
公開サーバの URL を入力してテストします。結果は以下の通りでした。無事、公開サーバも IPv6 通信が可能となりました。