ブリッジインターフェイス用のIPv6 SLAACの設定

ブリッジインターフェイス用のIPv6 SLAACの設定

自宅のデュアルスタックネットワークは、ISPによって(ほとんど固定されている)委任された/ 56プレフィックスを使用してルーター広告を使用してIPv6用に構成されています。したがって、私のすべてのコンピュータには、ルータ広告を介して取得した予測可能なグローバルIPv6アドレスがあり、その一部はプレフィックスが変更されたときにDNSに公開されます。すべてが正常です。

最近、私は私のコンピュータの1つの設定を変更し、デフォルトのeth0インターフェイスをブリッジすることでこのブリッジからLXDコンテナを起動することができました。

この設定では、SLAAC用に設定されたeth0インターフェイスではなくbr0ブリッジになります。コンテナが起動すると、ブリッジに追加された veth インターフェイスの設定が変わり、IPv6 アドレス割り当てに使用された MAC アドレスが常に私の eth0 の MAC アドレスではなく、ホストの予測可能なグローバル IPv6 が消えることがあります。

コンテナインターフェイスのMACアドレスを強制的に適用できますが(キャップ​​コンテナが予測可能なパブリックIPv6を使用することを許可します)、ブリッジに追加されたアドレスはペアの反対側であり、そのMACアドレスは私が理解するとカーネルによってランダムに生成されます。 。正しい。また、ブリッジが「最も低い」MACを選択しているように見えるため、eth0のMACアドレスを「低い数字」に強制することも検討しましたが、それが機能するかどうかはわかりません。カーネル.... ....

そのコンピュータでグローバルIPv6アドレスをどのように予約できますか?

マシンはAlpine Linuxを実行しているため、システムネットワークソリューションは役に立ちません。

答え1

他のほとんどの仮想イーサネットに似たインターフェイスと同様に、ブリッジのMACアドレスを手動で強制できます。手動で設定すると、MAC アドレスは変更されなくなります。ブリッジポートに設定されたインターフェイスによる動的な変更は、もはや発生しません。

内部的には、作成時にこれを行うことができます。

ip link add name br0 address 12:34:56:78:9a:bc type bridge

またはそれ以降:

ip link set dev br0 address 12:34:56:78:9a:bc

以前のカーネルでは、MAC アドレスを変更する前にインターフェイスをシャットダウンする必要があります。

互換性のある設定を維持するには、物理​​インターフェイスのMACアドレスを再利用できますが、この場合は次のことを行う必要があります。

  • 太陽今後環境イーサネット0ブリッジフォートロ

    あるいは、MACアドレスが(動的に)継承されたアドレスと同じであるため、コマンドは実際にMACアドレスを変更しないため、MACアドレスを手動で設定したとは見なされず、ダイナミックモードになります。詳細については、私のSU Q / Aの回答をご覧ください。LinuxはブリッジデバイスのデフォルトMACアドレスをどのように決定しますか?

    修正する:OPが発見したとおり上下ならbridge-hwこの目的で使用されるキーワード(正確なバリエーションによって異なります)を許可し、bridge_hwブリッジが動的/継承モードに残らないように、作業順序を正しく処理する必要があります。

    対応する専用オプションがない場合はpre-up使用できますが、その段階でその仮想インターフェイスが存在しないpre-up場合はpre-up、まずブリッジを生成するコマンドが必要になる場合があります。物理インターフェイスをブリッジポートに設定する前に、ブリッジにMACアドレスを設定するには、順序を確認する必要があります。効果を冪等にするには、その|| true項目の末尾に一部を追加することをお勧めします。pre-up

  • IPv6を強制的に無効にするイーサネット0インターフェース - 現在ブリッジポートもはや独立したインターフェイスではありません。

    systemctl -w net.ipv6.conf.eth0.disable_ipv6=1
    

    システムのどの部分も難読化されていないことを確認してください。

追加の注意:最近実行されているシステムでは、インターフェイスのMACアドレスによる動的動作は発生しません。システムなぜならシステム仮想インターフェイスの作成が検出されるたびに(生成されたコマンドに関係なく)、ブリッジを含むすべての仮想インターフェイスに「任意の信頼性の高い」MACアドレスが動的に割り当てられ、ブリッジ動作をパッシブモードに切り替えます。詳細は私の答えで説明されています。Linuxに異なるPC上の異なるブリッジデバイス用に異なるMACアドレスを生成させる方法は?。 AlpineがOpenRCを実行している場合は、インターフェースに依存する基本的な動的動作が引き続き発生する必要があります(したがって、手動割り当てによってオーバーライドする必要があります)。今後環境イーサネット0ブリッジポートとして機能します(自己MACアドレスが再利用される場合)。

関連情報