配置网桥后没有网络连接的ubuntu KVM访客

qlvxas9a  于 2023-10-17  发布在  其他
关注(0)|答案(2)|浏览(163)

我正试图添加KVM客户机(Ubuntu 18. 04)到本地网络像其他真实的服务器在网络中。我在主机系统(Ubuntu 18.04)中配置了KVM桥接接口,它可以正常工作。主机系统可通过本地网络连接到其他服务器。
主机系统的网络计划配置:

  1. $ cat 01-netcfg.yaml
  2. # This file describes the network interfaces available on your system
  3. # For more information, see netplan(5).
  4. network:
  5. version: 2
  6. renderer: networkd
  7. ethernets:
  8. eno1:
  9. dhcp4: false
  10. bridges:
  11. br0:
  12. interfaces: [eno1]
  13. addresses: [192.168.1.105/24]
  14. gateway4: 192.168.1.1
  15. nameservers:
  16. addresses: [x.x.x.x, x.x.x.x]
  17. dhcp4: false

ip a输出显示桥接器接口:

  1. 10697: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
  2. link/ether 62:cb:37:3c:c0:70 brd ff:ff:ff:ff:ff:ff
  3. inet 192.168.1.105/24 brd 192.168.1.255 scope global br0
  4. valid_lft forever preferred_lft forever
  5. inet6 fe80::60cb:37ff:fe3c:c070/64 scope link
  6. valid_lft forever preferred_lft forever

我使用网桥br0创建了KVM网络接口
virsh net-edit br0输出:

  1. <network>
  2. <name>br0</name>
  3. <uuid>d277e3d1-b34e-4b1f-ae69-6a3c8f75626c</uuid>
  4. <forward mode='bridge'/>
  5. <bridge name='br0'/>
  6. </network>
  1. developer@serv31:~$ virsh net-list
  2. Name State Autostart Persistent
  3. ----------------------------------------------------------
  4. br0 active yes yes
  5. default active yes yes

KVM访客域的接口信息:

  1. <interface type='network'>
  2. <mac address='52:54:00:14:dc:af'/>
  3. <source network='br0'/>
  4. <model type='rtl8139'/>
  5. <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
  6. </interface>

在访客虚拟机中,我配置了网络计划,为它给予一个静态IP。它使用配置的IP进行了 Boot 。

  1. $ cat 50-cloud-init.yaml
  2. network:
  3. version: 2
  4. ethernets:
  5. ens3:
  6. addresses: [192.168.1.50/24]
  7. gateway4: 192.168.1.1
  8. nameservers:
  9. addresses: [x.x.x.x, x.x.x.x]
  10. dhcp4: false

访客虚拟机ip a输出:

  1. $ ip a
  2. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
  3. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  4. inet 127.0.0.1/8 scope host lo
  5. valid_lft forever preferred_lft forever
  6. inet6 ::1/128 scope host
  7. valid_lft forever preferred_lft forever
  8. 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
  9. link/ether 52:54:00:14:dc:af brd ff:ff:ff:ff:ff:ff
  10. inet 192.168.1.50/24 brd 192.168.1.255 scope global ens3
  11. valid_lft forever preferred_lft forever
  12. inet6 fe80::5054:ff:fe14:dcaf/64 scope link
  13. valid_lft forever preferred_lft forever

访客虚拟机能够访问(ping、telnet)主机系统,主机系统可以访问访客虚拟机。但是网络中没有其他服务器可以访问访客VM,访客VM也无法访问Internet。请帮我修理一下。让我知道如果你需要更多的信息。

lskq00tm

lskq00tm1#

  1. sudo iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
  2. sudo iptables -A FORWARD -i br0 -o virbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT
  3. sudo iptables -A FORWARD -i virbr0 -o br0 -j ACCEPT
  4. sudo iptables -I FORWARD 1 -i br0 -o br0 -j ACCEPT

以上规则解决了这个问题。

8zzbczxx

8zzbczxx2#

我刚刚在一个新的ubuntu22.04安装上配置了这个,这是我第二次这样做,第二次我基本上明白了我在做什么。这是我的笔记。
有多种方法可以做到这一点。我使用nminstall,命令行界面到网络管理器。这似乎很容易理解,而且很有效。我有一个桥接界面,运行一个虚拟管理器Windows 10客户机和一个22.04 Ubuntu客户机。
我在这台机器上有两个虚拟机,给予我自己一个用于我所有虚拟机的虚拟桥的奢侈品。我不知道如何做到这一点,只有一个网卡,使用一些从虚拟网卡的桌面。

使用网络管理器创建专用物理网卡的虚拟网桥

(我安装了bridge-utils包)
1.首先,确保要添加到网桥的网络接口(假设eno2,小写0,而不是零)由NetworkManager管理。您可以通过运行以下操作来检查此情况:

  1. nmcli device status

如果eno2不受NetworkManager控制,您可以让NetworkManager管理它:

  1. sudo nmcli device set eno2 managed yes

1.创建新的桥接连接(br0):

  1. sudo nmcli connection add type bridge autoconnect yes con-name br0 ifname br0

此命令创建一个名为br0的新网桥,并创建一个对应的连接br0
1.然后,将网络接口添加到网桥:

  1. sudo nmcli connection add type bridge-slave autoconnect yes con-name br0-slave ifname eno2 master br0

此命令创建一个新连接br0-slave,将eno2添加到网桥br0
1.您可以打开桥接:

  1. sudo nmcli connection up br0

这些设置保存在/etc/NetworkManager/system-connections中

早期设置中的持久化配置示例,其中网桥设备为br 10:

  1. root@indigo:/etc/NetworkManager/system-connections# more br10.nmconnection
  2. [connection]
  3. id=br10
  4. uuid=a...e
  5. type=bridge
  6. interface-name=br10
  7. [bridge]
  8. [ipv4]
  9. method=auto
  10. [ipv6]
  11. addr-gen-mode=stable-privacy
  12. method=auto
  13. [proxy]

持久化配置示例:从设备(bridge-slave-eth2.nmconnection)

root@靛蓝:/etc/NetworkManager/system-connections#更多bridge-slave-eth2.nmconnection

  1. id=bridge-slave-eth2
  2. uuid=d...d
  3. type=ethernet
  4. interface-name=eth2
  5. master=br10
  6. slave-type=bridge
  7. [ethernet]
  8. [bridge-port]

所以如果你有这样的文件,它工作。
在我目前的机器上:

  1. tim@black:~$ nmcli device status
  2. DEVICE TYPE STATE CONNECTION
  3. eno1 ethernet connected Wired connection 1
  4. br0 bridge connected br0
  5. wlp9s0 wifi connected rumahtumi
  6. virbr0 bridge connected (externally) virbr0
  7. eno2 ethernet connected br0-slave
  8. p2p-dev-wlp9s0 wifi-p2p disconnected --
  9. lo loopback unmanaged --

现在在virtual-manager中编辑NIC。创建网络源网桥设备并键入虚拟网桥的名称(br 0)
设备名称virtio IP地址将显示未知,这是确定的。
当我启动虚拟机时,比如Ubuntu,登录后需要几秒钟才能激活网络连接,但它确实激活了,它从我的局域网的DHCP服务器获得了一个IP地址,一切都很好。
回到主机上,NIC在网络连接中显示为br 0-slave。

展开查看全部

相关问题