web-dev-qa-db-ja.com

Netplanブリッジを使用したHetznerのネットワーク接続が失われました

Ubuntu 18.04をインストールし、メインインターフェイスを直接使用する代わりにブリッジインターフェイスをKVM仮想化:

インストール後のNetplanのデフォルト設定は次のとおりです。これはうまく機能しました。

----
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    enp4s0:
      addresses: [ 176.9.199.230/27 ]
      gateway4: 176.9.199.225
      nameservers:
          addresses:
              - "8.8.8.8"

Netplanのドキュメントを読んだ後、ブリッジモードで次の設定を試しました。

---

network:
  version: 2
  renderer: networkd
  ethernets:
    enp4s0:
      dhcp4: no
      dhcp6: no
  bridges:
    vmbr0:
      dhcp4: no
      dhcp6: no
      interfaces: [ enp4s0 ]
      addresses: [ 176.9.199.230/27 ]
      gateway4: 176.9.199.225
      nameservers:
        addresses:
          - "127.0.0.1"
      parameters:
        stp: false
        forward-delay: 1
        hello-time: 2
        max-age: 12

IPアドレスからわかるように、サーバーはHetznerでホストされています。

Ubuntu 16.04では、ブリッジはifupdownでうまく機能しましたが、Ubuntu 18.04にはifupdownではなくNetplanが含まれているため、Netplanでブリッジを構成する方法を知る必要があります。

2
sweb

Netplanのブリッジ構成でMACアドレスを明示的に設定しない場合、MACアドレスはランダム化されます。

正しく思い出せば、HetznerはサーバーのMACアドレスに割り当てられているIPアドレスを制限しているため、ブリッジのMACアドレスを物理インターフェイスのMACアドレスに設定する必要がある場合があります。

物理インターフェイスのMACアドレスを取得するには、次のコマンドを実行します。

cat /sys/class/net/enp4s0/address

(必要に応じて、enp4s0を適切なインターフェイス名に置き換えます。)

Netplan構成ファイルで、次のようにブリッジインターフェイス名の下にMACアドレスを追加します。

macaddress: xx:xx:xx:xx:xx:xx

Netplanの構成は次のようになります。

---
network:
  version: 2
  renderer: networkd
  ethernets:
    enp4s0:
      dhcp4: no
      dhcp6: no
  bridges:
    vmbr0:
      macaddress: xx:xx:xx:xx:xx:xx
      dhcp4: no
      dhcp6: no
      interfaces: [ enp4s0 ]
      addresses: [ 176.9.199.230/27 ]
      gateway4: 176.9.199.225
      nameservers:
        addresses:
          - "127.0.0.1"
      parameters:
        stp: false
        forward-delay: 1
        hello-time: 2
        max-age: 12

構成を適用します。

Sudo brctl delbr enp4s0
Sudo netplan apply

これで、ホスト接続が機能するブリッジができました。

3
Deltik