IPv6 アドレス固定

やっとsystemd-networkdでIPアドレス固定の方法がわかった。

RAでgatewayは欲しい。dhcpv6でパラメータは配りたいがアドレスの管理はしたくない。
ネットワークで自動アドレス設定は有効にしたいがサーバーは固定アドレスにしたい。

RAはm_flag=off o_flag=onでほぼできるのだが、サーバーのような固定アドレスが欲しい時はSLAACが邪魔になる。

/etc/systemd/network/eth0.network で、AcceptRA=falseを入れるとゲートウェイが入らないとかプレフィックスがわからない。
Address=2001:0db8::1/64 とか入れてもSLAACが働いてアドレスが2つになってしまう。

そこで、[Network]セクションに IPv6Token=::1 とか書くと、RAでプレフィックスもらって、ホスト部を::1にしてくれる。

Address=を消してもいいんだけど、書いておくとRA受け取る前にアドレス有効になるので、重複するが書いておくとよさげ。
まあ、プレフィックス変わると書き換えないといけないんだけどね……

[Network]
Address=240b:0db8::aaaa/64
IPv6Token=::aaaa

更に、ユニークローカル(いわゆるプライベートアドレス)とグローバルアドレスがあって、内部サーバーとかだとグローバルアドレスいらないとか、外部用だとプライベートいらないとかの場合、RAを無視する必要があったりして、その場合はIPv6AcceptRAセクションを使う。

[Network]
Address=fd00::aaaa/64
IPv6Token=::aaaa
[IPv6AcceptRA]
BlackList=240b:0db8::

プレフィックスにLength付けれないので、多分64ビット全部書かないといけない。

ちなみにSQL server on Ubuntu 16.04 だとsystemd 229で、IPv6AcceptRAに対応していない。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です