我正在做一些关于使用ebtables
和iptables
在 KVM 主机上对 KVM 来宾 VM 执行即时防火墙限制的论文研究。
问题是:我在eth0
called上设置了一个网桥br0
。这很好用。然后我添加了两个自来水设备:tap0
并tap1
使用br0
.
由于 KVM GUI 中的一些奇怪原因,只有1个 tap 设备被识别为桥接设备。另一个在说macvtap
。我不明白为什么会这样。我不记得在我运行它的另一个系统上有这个问题,但我在 ThinkPad 上有这个问题。
下面是 GUI 的屏幕截图,显示了我在说什么:
为什么要tap1
获取“(Bridge 'br0')”标签而不是标签tap0
?它们都应该被视为桥梁。
我在 CentOS 6 上运行它,下面是ifcfg
taps 的文件:
对于tap0
:
DEVICE="tap0"
TYPE="Tap"
BRIDGE="br0"
对于tap1
:
DEVICE="tap1"
TYPE="Tap"
BRIDGE="br0"
从理论上讲,这应该有效......
编辑:重新安装 CentOS 是个好主意吗?我想知道是不是楼主的设置搞砸了……
编辑 2:我进一步检查了我的问题,但我仍然很困惑为什么只有一个 tap 接口被视为桥接接口。同样奇怪的是,br0
界面没有出现在该列表中。我记得在我的其他系统上,它也会列出。只是为了证明tap0
和tap1
在桥中,这里是brctl show
命令的输出:
bridge name bridge id STP enabled interfaces
br0 8000.001c25990400 no eth0
tap0
tap1
如您所见,eth0
、tap0
和tap1
被添加到br0
桥中……所以……这应该有效……
如果您的目标是使用网桥 br0 作为虚拟机的开关。您可以删除 tap0 和 tap1。在 virt-manager 中选择 Specify shared device name 并输入 br0 int textfield。
无需手动创建 tap0 和 tap1。只需如下图所示配置您的 VM。LibVirt 为您即时创建 vnet 设备。