IPv6編

旧回線(フレッツ光ネクストギガプラン)ではひかり電話を導入してなかったので、上流のルータから/64のRoter Advertisement(以下RA)が直接ふってくる構造だった。ということで、IPv6だけ通すbridgeを作ってそのまま内側のLANにもRAを流すようにしていた。

だが今回は、上流からDHCPv6でPrefix Delegationされる形式になるのでDHCPv6-PDを受けてLAN内にRAを流すようなルーターを作りましょうということになる。これをどう実現するかという話になるのだけど、一番手っ取り早そうなのでsystemd-networkdに任せることにした。設定自体は systemd-networkd のドキュメントにある exmaple 3 がほぼそのまま使える。

https://www.freedesktop.org/software/systemd/man/systemd.network.html#id-1.57.4

上流側例えば wan.network として以下のように設定する。ここでは上流側のネットワークインタフェースの名前をeth-wan0とした。

[Match]
Name=eth-wan0

[Network]
DHCP=ipv6
DHCPPrefixDelegation=yes

[DHCPv6]
WithoutRA=solicit

[DHCPPrefixDelegation]
UplinkInterface=:self
SubnetId=0
Announce=no

元々の例のコメントにもあるがXpassの場合はまさにそれで、Management bit がたってるRAをトリガにDHCPv6を動かす形になるので、 IPv6AcceptRA=yes (ディフォルトでyesなので例から該当行を削除)しておく。

また、上流側のインタフェースではRAを流す必要がないので Annountce=no にする。
外側のインタフェースに割り当てるアドレスはPDでわりあてられたレンジならどれでもいいのだけど、わかりやすくSubnetId=0とた。

続いてLAN側のインタフェースの設定。lan.networkとして以下の内容を書いておく。なお、インタフェース名は eth-lan とした。

[Match]
Name=eth-lan

[Network]
DHCPPrefixDelegation=yes
IPv6SendRA=yes
IPv6AcceptRA=no

[DHCPPrefixDelegation]
UplinkInterface=eth-wan
SubnetId=1
Announce=yes

DHCPv6-PD を利用するので DHCPPrefixDelegation=yes、自身がルータとなってLAN側へのアナウンスをするのでIPv6SendRA=yes、自身がRAを流すので自身でRAを受ける必要性はないので IPv6AcceptRA=no

上流のインタフェースはこのルータではeth-wanになるので UplinkInterface=eth-wan としする。SubnetIdはさきほど設定したwan側とかぶらなければいいので、ここではわかりやすく1 としています。RAを流すので Announce=yes 。

基本的にはこの2つの .network ファイルの設定のみで DHCPv6-PD を受けてLAN側にRAを流す IPv6 ルータとして機能する。

ただし、この例の設定のみだとIPv6パケット全部素通しなので、パケットフィルタリング等ファイアウォール的なものは別途設定しましょう。

コメントを残す