この記事の概要
- フレッツ光のHGW配下に設置したLinuxサーバに、NGN網内からアクセスできるようにIPv6アドレスを以下のように設定したかったが、思った以上に躓いた。その時の解決策のメモ
- 前半64Bit、プレフィックス部分:フレッツ光でもらえるアドレス(2408:210:XXX・・・)
- 後半64Bit、インタフェース部分:わかりやすい任意の数字(::100、::2222)
- 本記事のOSは「Ubuntu 18.04」で実験した
試行錯誤の過程
- 筆者の構築したUbuntuサーバは、なぜか
/etc/netplan
などの設定ファイルもそもそも無ければ、無理やりGUI(デスクトップ)で起動・設定しても、NetworkManagerをいじり倒しても、うまくいかなかった- 通常、リンクローカルを手動設定すれば、当該IFのプレフィックスが自動で設定されるはずである
- 例えば、筆者の大好きなCiscoルータであれば、以下のような設定である。
interface GigabitEthernet0
ipv6 address autoconfig default
ipv6 address FE80::100 link-local
最終的な解決策
- IPv6アドレス設定をNetworkManagerで「自動」に設定した上で、以下のコマンドを打てば設定できた。どうやら、Linuxには「IPv6トークン」なる概念があるようだ
- Ciscoルータにも、そのような設定が暗黙的にあるのかも。。
- 入力したいプレフィックスには「::100」のように入れればよい
nmcli c m "<IF名>" ipv6.token <入力したいプレフィクス>
エラーが出た場合
- 筆者の環境では、以下のようなエラーが出た
# エラー: 接続 '<IF名>' の変更に失敗しました: ipv6.token: EUI64 アドレス生成モード でのみ、意味が通じます
- そんなときは、SLAACのモードを変えると解決する
nmcli c m "<IF名>" ipv6.addr-gen-mode eui64
- IPv6は奥が深い、、
参考記事
https://docs.oracle.com/cd/E19253-01/819-0380/gbvsf/index.html
https://manual.sakura.ad.jp/vps/network/ipv6/ubuntu18.html
https://qiita.com/maccadoo/items/84c8ebaa4ad541ccea3b
https://ktaka.blog.ccmp.jp/2020/05/linuxslaac-ipv6.html
以上