![桥接器上的 KVM 虚拟机无法获取 IP 地址](https://linux22.com/image/227882/%E6%A1%A5%E6%8E%A5%E5%99%A8%E4%B8%8A%E7%9A%84%20KVM%20%E8%99%9A%E6%8B%9F%E6%9C%BA%E6%97%A0%E6%B3%95%E8%8E%B7%E5%8F%96%20IP%20%E5%9C%B0%E5%9D%80.png)
我有一台带有 4 个以太网端口的主机。我想将eno1分配给VM1,eno2分配给VM2,依此类推...
eno1、eno2、eno3 和 eno4 都有静态 IP。我希望VM01拥有eno2的静态IP。为此,我设置了一个桥并将 eno2 添加到桥中。到目前为止看起来还不错。
之后我使用 cockpit 安装了 VM。在安装过程中,我将配置设置为默认 enp1s0(使用适用于 IPv4 的 DHCP)。
安装后启动界面未获取IP地址。我期待 eno2 IP 在将 eno2 添加到网桥后显示在网桥上,应该显示在该接口上。
在虚拟机客户端上
nmcli 连接状态
来自 KVM 主机:我相信 vnet0 来自 VM 安装。相关输出如下:
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br2 state UP group default qlen 1000
link/ether 20:67:7c:d6:07:a5 brd ff:ff:ff:ff:ff:ff
19: br2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 20:67:7c:d6:07:a5 brd ff:ff:ff:ff:ff:ff
inet 123.112.147.147/26 brd 135.193.167.191 scope global noprefixroute br2
valid_lft forever preferred_lft forever
22: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br2 state UNKNOWN group default qlen 1000
link/ether fe:54:00:e6:ef:b1 brd ff:ff:ff:ff:ff:ff
inet6 fe80::fc54:ff:fee6:efb1/64 scope link
valid_lft forever preferred_lft forever
# bridge link show
3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br2 state forwarding priority 32 cost 100
22: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br2 state forwarding priority 32 cost 100
here is the xml portion from VM:
<interface type='bridge'>
<mac address='52:54:00:e6:ef:b1'/>
<source bridge='br2'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</interface>
答案1
我在一座桥上才知道:
- 物理网卡不能有IP。
- 网桥可以有一个IP——它是可选的。如果有,则可以使用该 IP 访问物理主机。否则,ppl 无法访问 intfc/IP 上的 phy 主机。
- 虚拟 NIC 应该有一个 IP(静态或 DHCP)。当 vNIC(或 VM)启动时,对该 IP 的 ping 操作将会响应。并且只有虚拟机才能使用该 IP 进行访问。
所以我有以下仅有的在虚拟网卡上:
IPADDRESS
PREFIX
GATEWAY
DEFROUTE=yes