やっと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に対応していない。
コメントを残す