CentOS,KVM,VLAN和桥接

我需要帮助使用KVM为虚拟客户端设计网络.我的机器运行CentOS 7并有2个NIC.我想实现以下目标

>一个物理接口(em1)仅用于主机访问.主机将具有非常正常的配置,包括未标记的流量和静态IP地址.
>另一个物理接口(em2)接收不同VLAN的标记流量.
>虚拟机只能查看其特定VLAN的流量.不需要在KVM内完成访客间通信.
>我希望虚拟网卡上的流量不带标记,以确保访客不会更改其内部网卡配置以欺骗其他网络.

Link to concept graphic

我是libvirt的新手,也不习惯网络管理员.我搜索了文档,但发现了相互矛盾的信息,从是否可以通过网络管理器配置此桥接的问题开始.我还读到了让KVM进行切换的可能性.

我要感谢直接配置帮助或指向最新文档的指针,这些文档不使用(在CentOS 7上)不推荐使用的工具或解决方法,以解决同时删除的问题.

提前致谢.

你想要什么,虽然有用,但并不是非常直截了当.基本上,您有3种可能性:

>使用Open vSwitch堆栈虚拟化网桥/交换机
>为每个vlan使用专用软件桥
>在最近的内核上,可以使用“bridge VLAN filter”功能来拥有一个“智能”桥来统治它们

解决方案n.1(可能)是最完整的,但最难设置.

解决方案n.2是我在实验室测试中采用的.例如,对于VLAN 10和20,您确实创建了类似的设置:

eth0 (physical interface) -> eth0.10 (VLAN tagged) -> br10 (bridge with eth0.10 and the relative virtual qemu/kvm interface)
eth0 (physical interface) -> eth0.20 (VLAN tagged) -> br20 (bridge with eth0.20 and the relative virtual qemu/kvm interface)

请注意,如果您还需要在已标记的网桥上拥有未标记的流量,则必须发出以下ebtables规则:
ebtables -t broute -A BROUTING -i eth0 -p 802.1Q -j DROP
由于Linux网络堆栈管理传入数据包的方式,因此需要此规则.有关更多信息,请参阅here,herehere

解决方案n.3应该是聪明的,但你需要内核支持(还有libvirt). CentOS7应该有一个足够的最新内核,但我不知道是否所有其他软件都准备好了.

解决方案n.4(奖励一):如果您不需要访客/主机通信,请查看macvtap驱动程序.虽然我不使用它,但您应该能够设置类似的解决方案:

eth0 (physical interface) -> eth0.10 (VLAN tagged) -> MAC vtap on eth0.10
eth0 (physical interface) -> eth0.20 (VLAN tagged) -> MAC vtap on eth0.20

对我来说,与客人/主人沟通的不可能性太大了,但您的要求可能会有所不同.

最后,看看here,值得一读.

相关文章

文章浏览阅读903次。4.清除缓存目录(/var/cache/yum)下的软件...
文章浏览阅读1.5k次。Python 是一种高级解释性编程语言,已被...
文章浏览阅读2.6k次。打开终端或控制台,以root或具有sudo权...
文章浏览阅读744次,点赞24次,收藏26次。目标:通过AppSrv为...
文章浏览阅读1.1w次,点赞8次,收藏26次。chmod命令来自于英...
文章浏览阅读1.2k次。yum源的URL地址,本例中是文件系统的路...