我在基于 Debian 的防火墙后面有一个 Ubuntu 16.04 KVM 管理程序,并且我正在尝试使来宾 VM 可访问 IP,最好匹配我用于该机器集合的子网。
防火墙托管 10.4.0.0/16 网络,并成功地 NAT'ing 并接受适用的流量。
管理程序位于10.4.20.250 ,virsh 网络配置如下所示。值得注意的是,我扩展了网络掩码以尝试将客户端与主机分开:
<network>
<name>default</name>
<uuid>02b5de1a-cde4-45dd-b8f5-a9fdfa1c6809</uuid>
<forward mode='route'/>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:a3:f0:e9'/>
<ip address='10.4.20.20' netmask='255.255.255.128'>
</ip>
</network>
管理程序 (10.4.20.250) 还具有以下内容:
# ip r
default via 10.4.0.1 dev enp0s25 onlink
10.4.0.0/16 dev enp0s25 proto kernel scope link src 10.4.20.250
10.4.20.0/25 dev virbr0 proto kernel scope link src 10.4.20.20
169.254.0.0/16 dev enp0s25 scope link metric 1000
# brctl show
bridge name bridge id STP enabled interfaces
virbr0 8000.fe54009e64d0 yes vnet0
# ip link show virbr0
3: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether fe:54:00:9e:64:d0 brd ff:ff:ff:ff:ff:ff
# virsh domiflist myguest
Interface Type Source Model MAC
-------------------------------------------------------
vnet0 bridge virbr0 virtio 52:54:00:9e:64:d0
10.4.20.25的来宾(“myguest”)可以访问整个互联网;它配置有:
ip r
default via 10.4.20.20 dev eth0
10.4.0.0/17 dev eth0 proto kernel scope link src 10.4.20.25
从连接到管理程序 (10.4.20.250) 的终端会话中,我可以 ping 自身、10.4.20.20 的网桥、10.4.20.25 的访客、10.4.0.1 的防火墙和整个互联网。
从防火墙 (10.4.0.1) 我可以 ping 管理程序 (10.4.20.250) 和网桥 (10.4.20.20) .. 但对客户端 (10.4.20.25) 的 ping 丢失。同样,从 10.4 网络上的另一台机器,我可以 ping 防火墙、管理程序和网桥,但不能 ping 客户端。我设置了以下规则:
ip r
default via 10.4.0.1 dev enp4s0 onlink
10.4.0.0/16 dev enp4s0 proto kernel scope link src 10.4.2.1
10.4.20.0/25 via 10.4.20.20 dev enp4s0
192.168.15.0/24 dev enp1s0 proto kernel scope link src 192.168.15.242
任何帮助我可能缺少什么配置以使我的客户端可以从远程设备访问?
注意,我尝试将转发模式设置为“打开”,但 virsh net-edit 给了我以下错误: 错误:不支持的配置:未知转发类型“打开”