↓ の続き。
naga-sawa.hatenadiary.org
フレッツ光ネクスト 光でんわ契約の HGW の配下に VyOS ルータを置いて、 IPv6 で通信できるようにする設定。
Internet <--> (WAN)[HGW](LAN) <--> (eth1)[VyOS](eth0.2) <--> [宅内LAN]
この構成で、宅内LAN側にも IPv6 を割り当てるようにして、 Internet と IPv6 で通信できるようにします。
宅内 LAN への IPv6 アドレス配布は SLAAC / RDNSS で実施します。
バージョンなど : VyOS 2026.05.30-0046-rolling
まずは例によって Firewall の設定です。
宅内LAN → Internet の通信にかけるフィルタ。ブラックリスト方式で出て行くと困る通信を止めます。必要に応じて drop ルールを追加してください。
set firewall ipv6 name INSIDE_to_OUTSIDE_v6 default-action 'accept' set firewall ipv6 name INSIDE_to_OUTSIDE_v6 rule 1 action 'drop' set firewall ipv6 name INSIDE_to_OUTSIDE_v6 rule 1 description 'DropWinFileShare' set firewall ipv6 name INSIDE_to_OUTSIDE_v6 rule 1 destination port '135-139,445' set firewall ipv6 name INSIDE_to_OUTSIDE_v6 rule 1 protocol 'tcp_udp'
続いて Internet → 宅内LAN の通信に欠けるフィルタ。ホワイトリスト方式で確立済みのセッションのみ通してます。(HGW の Firewall がありますが念のため)
set firewall ipv6 name OUTSIDE_to_INSIDE_v6 default-action 'drop' set firewall ipv6 name OUTSIDE_to_INSIDE_v6 rule 99 action 'accept' set firewall ipv6 name OUTSIDE_to_INSIDE_v6 rule 99 state 'established' set firewall ipv6 name OUTSIDE_to_INSIDE_v6 rule 99 state 'related'
宅内LAN用の HOME ゾーン をインタフェース eth0.2 に割り当てて、各ゾーン間のフィルタルールを設定します。
set firewall zone HOME member interface 'eth0.2' set firewall zone HGW from HOME firewall ipv6-name 'INSIDE_to_OUTSIDE_v6' set firewall zone VYOS from HOME firewall ipv6-name 'pass-all_v6' set firewall zone HOME from HGW firewall ipv6-name 'OUTSIDE_to_INSIDE_v6' set firewall zone HOME from VYOS firewall ipv6-name 'pass-all_v6'
以上で Firewall の設定が終わったので、 eth0.2 にリンクローカルアドレスを割り当てます。(VyOS の DNS フォワードを使用せず、外部 DNS を使用する場合はこの設定はとばしても大丈夫です)
set interfaces ethernet eth0 vif 2 ipv6 address no-default-link-local set interfaces ethernet eth0 vif 2 address fe80::1/64
続いて DNS 周りの設定。 フォワード先は例として google DNS にしていますので、必要に応じて変更してください。
set service dns forwarding listen-address fe80::1%eth0.2 set service dns forwarding allow-from fe80::/64 set service dns forwarding name-server 2001:4860:4860::8844 set service dns forwarding name-server 2001:4860:4860::8888
DNS の listen-address の設定ですが、リンクローカルアドレスを指定する場合はスコープID (%eth0.2 の部分) を指定しないと DNS フォワーダー(PowerDNS)がエラーを出して起動しませんのでご注意ください。 set 時も commit 時もエラーが出ず、裏でひっそりと PowerDNS が落ちます。 ( pdns_recursor cannot bind IPv6 link local address · Issue #8335 · PowerDNS/pdns · GitHub )
HGW からの DHCPv6-PD の受け取り周りの設定。 HGW はフレッツ側から DHCPv6-PD /56 (or /48)のアドレスレンジを受けているので、そこから VyOS に /60 を割り振らせます。 /60 なので /64 との差、 16 サブネットを VyOS 配下に作成可能です。
SLA-ID は VLAN ID と合わせておくと管理しよいです。 eth0.2 には prefix::1 を割り当ててます。
set interfaces ethernet eth1 dhcpv6-options pd 0 length 60 set interfaces ethernet eth1 dhcpv6-options pd 0 interface eth0.2 sla-id 2 set interfaces ethernet eth1 dhcpv6-options pd 0 interface eth0.2 address 1
最後に eth0.2 での RA: Router Advertisement を有効にします。
RDNSS は上で設定したように VyOS の DNS フォワーダー を fe80::1 で指定しています。外部 DNS などを使う場合は必要に応じて変更してください。
アドレスの有効期間は短めにしています。
set service router-advert interface eth0.2 name-server fe80::1 set service router-advert interface eth0.2 name-server-lifetime 600 set service router-advert interface eth0.2 prefix ::/64 preferred-lifetime 3600 set service router-advert interface eth0.2 prefix ::/64 valid-lifetime 3600 set service router-advert interface eth0.2 default-lifetime 600
これで宅内LAN 側にも IPv6 が割り振られ、 Internet と IPv6 で疎通するようになります。
IIJmioのサイトなどを開くと IPv6 で通信しているインジケータが出るので確認できます。
IPv6 アドレスの配布を止めたい場合は以下のコマンドを入れて RA を止めます。(commit してください)
set service router-advert interface eth0.2 no-send-advert
参考にしたサイト
- Router Advertisements — VyOS rolling release (current)
- RA 設定公式
- 私的メモ:LinuxルーターでHGWからDHCPv6-PD移譲の夢を見る #IPv6 - Qiita
- こういう風にアドレス委譲したかったのでしました
- VyOSで主にスマホを対象としたIPv6シングルスタック試験環境を作る設定のメモ書き(DHCPv6-PD編) #NAT64 - Qiita
- 全体的な設定の参考
- 光クロスでDHCPv6-PDを受ける VyOS編
- DHCPv6-PD の受け方
余談
set interfaces ethernet eth1 dhcpv6-options pd 0
の pd 0 の必要性と意味がよく分からないのです。
a unique identifier for the DHCPv6-PD request.
だそうですが。。。