桥接网络的正确隔离

桥接网络的正确隔离

桥接网络的正确隔离

我正在尝试建立一个与公共网络空间隔离的专用网络空间。

在公共空间中,我希望我的来宾操作系统 NIC 通过 DHCP 服务器获取其 IP 地址。

这是我想到的网络拓扑:

网络图

问题

我遇到的问题是ens3并且ens4没有被正确隔离。当我启动来宾虚拟机时:

ens3 IP: 192.168.1.60  <-- Good, ens3 is getting it's IP via DHCP server!

ens4 IP: 192.168.1.61  <-- Uh-Oh, ens4 is also getting IP via DHCP Server.  Networks are not properly isolated!

交通必须从ens3ens4 或者br0br1不知何故。

通过 iproute2 设置 br0

以下是我的设置方式br0 (不应允许主机服务器和来宾虚拟机之间的流量):

# ip link set eth3 up
# ip link add br0 type bridge
# ip link set dev eth3 master br0
# ip tuntap add dev tap0 mode tap
# ip link set tap0 master br0
# ip link set dev br0 type bridge vlan_filtering 1
# bridge vlan del dev br0 vid 1 self
# ip link set dev br0 up

通过 iproute2 设置 br1

以下是我的设置方式br1 (允许主机服务器和来宾虚拟机之间的流量):

# ip link set eth2 up
# ip link add br1 type bridge
# ip link set dev eth2 master br1
# ip tuntap add dev tap1 mode tap
# ip link set dev tap1 master br1
# ip link set dev br1 up

通过 qemu 启动来宾 VM

这是我的 qemu 启动命令:

$ qemu-system-x86_64 \
   -m 4G \
   -enable-kvm \
   -cpu host \
   -smp 2 \
   -net nic,macaddr=52:54:00:00:00:05 \
   -net tap,ifname="tap0",script=no,downscript=no \
   -net nic,macaddr=52:54:00:00:00:10 \
   -net tap,ifname="tap1",script=no,downscript=no \
   -vga virtio -display gtk,gl=on \
   -drive format=qcow2,file=disk.cow,index=0,if=virtio

当我的来宾虚拟机运行后,我将水龙头设置为向上

# ip link set dev tap0 up
# ip link set dev tap1 up

问题

如何使用 iproute2 正确设置此网络以将br0eth3tap0、 & ens3)与主机服务器的其余部分和我的专用网络空间隔离?

相关内容