Dockerが実行されているとき、KVMクライアントにホストブリッジを持つDHCPはありません。

Dockerが実行されているとき、KVMクライアントにホストブリッジを持つDHCPはありません。

Ubuntu 20.04

QEMU macvtap(有効)

次のネットワーク構成を使用する場合:

network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      dhcp4: yes
      dhcp6: yes

KVMクライアントネットワークは「ホストデバイスeno1:macvtap」を使用し、IPv4とIPv6の両方が有効です。

tcpdump port 67 or port 68 -i eno1 -nNdhcp要求が表示され、私のdhcpサーバーのtcpdumpも着信要求を表示できます。

メインブリッジ付きQEMU(動作しない)

ただし、ホストブリッジネットワーク構成を使用する場合:

network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      dhcp4: false
      dhcp6: false
      optional: true
      link-local: []
  bridges:
    br0:
      parameters:
        stp: false
        forward-delay: 0
      interfaces:
        - eno1
      dhcp4: true
      dhcp6: true

また、KVMクライアントネットワークが「ブリッジ(ホストデバイスeno1)」を使用している場合、IPv6のみが有効であり、IPv4はDHCPを取得できません。

tcpdump port 67 or port 68 -i br0 -nNdhcp 要求は表示されますが、私の dhcp サーバーの tcpdump にはその要求は表示されません。

しかし、dhcpだけは機能しません。 IPv4アドレスとルーティングを手動で設定すると、着信および発信IPv4トラフィックの両方が機能します。


Dockerを完全に無効にすると、次のことがわかりました。

sudo systemctl diable docker.service containerd.service
reboot

これにより、ホストブリッジを持つqemuが完全に機能します。

Dockerを実行するときにホストブリッジでqemuを使用する方法は?

ベストアンサー1

Ubuntuを20.10にアップグレードした後、dockerモードとkvm + bridgeモードはクラッシュしなくなりました。

/etc/netplan/01-netcfg.yamlにbr0を作成しました。

network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      dhcp4: false
      dhcp6: false
  bridges:
    br0:
      interfaces: [eno1]
      dhcp4: true
      dhcp6: true

NIC:「ブリッジbr0:ホストデバイスeno1」を使用してKVMクライアントを作成/変更します。顧客は次のことができます。

  • IP4/IP6を取得
  • kvm クライアントは互いに SSH 経由で接続できます。
  • kvm クライアントは SSH 経由でホストに接続できます。
  • ホストはkvmクライアントにSSHで接続できます。

20.10にアップグレードしたか01-netcfg.yamlから追加の属性を削除したかどうかはわかりませんが、今はうまくいきます。

おすすめ記事