UbuntuのIPv6ホストIP固定

Ubuntuのネットワーク設定ツールはNetplanです。IPv6はデフォルト設定では自動的にアドレスを取得しますが、GUIで"Manual"を選択すると固定IPも指定できます。
ただしこの場合、ネットワークプレフィクスの変更を自動的にキャッチアップできない挙動となります。

インターフェースIDのみスタティックに指定するには、/etc/netplan/ディレクトリにある デバイス別のconfigを編集します。
network.ethernets.<config-ID>.ipv6-address-tokenに、::1といった書式で固定値のインターフェースIDを設定します。この項目はnetwork.ethernets.<config-ID>.ipv6-adress-generationと競合し、いずれか1つしか指定できません。

ipv6-address-tokenを指定すると、ルーターから取得したネットワーク・プレフィクスと合成したアドレスを宣言する挙動になります。
config編集後にnetplan applyまたはシステム再起動すると反映されます。ip -6 addressコマンドでインターフェース別のIP6アドレスを確認できます。

パケットフィルタ設定によりインターネットから接続できる

ホストIPを固定するのは多くの場合、別の機器から接続する目的があります。
IPが一貫していれば、LAN経由アクセスを確保できます。

またインターネット接続が簡素な構成なら、インターネットにサービスを公開することも簡単にできます。
インターフェースIDのみスタティックに指定する方式では、取得するIPはグローバルIP(GUA)です。

ルーターのパケットフィルタリング機能の設定により、目的サービスのポート宛てパケットを通過させることでほぼ完結するでしょう。

旧来のIPv4ではグローバルIPが限られていたため、IPマスカレードを併用する必要があり、ルーター設定はより複雑でした。
IPマスカレードではルータの各ポート番号に複数サービスを登録できないため、サービスの数だけポート変換設定がありました。

IPv6でサービス公開する場合のポート番号は、サーバープロセスがlistenしているポート番号そのものです。

⁋ 2024/10/02↻ 2024/12/18
中馬崇尋
Chuma Takahiro