CentOS下KVM网卡设置成网桥时获取镜像端口的流量

2021年09月15日 阅读数:1
这篇文章主要向大家介绍CentOS下KVM网卡设置成网桥时获取镜像端口的流量,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

首先,网桥配置好以后就能实现一个简单的交换机,而交换机的特色就是MAC地址学习,那么KVM的网卡设置成网桥以后,也就是至关于链接到了交换机上。html

此时若是要实如今二层交换机或三层交换机作端口镜像,并把这个镜像的流量转到这个虚拟机的网卡上,那么会出现没法实现的问题,下面我来分析一下缘由:linux

一、配置好网桥就成了一个交换机,注意,不是集线器。网络

二、那么镜像端口的流量只会到达物理网卡上,而物理网卡组成的交换机认得也就是物理网卡的MAC地址,那么此时KVM的网卡不会受到任何流量。由于KVM也是有MAC地址,而且这个MAC地址只会认为是交换机中的一台电脑而已。ide

三、那么若是此时要将物理网卡流量转到KVM的网卡上,实现思路估计也是在虚拟交换机上作端口镜像,而这种实现几乎是不可能的。学习

四、那换一种思路,将这个网桥作成的交换机作成集线器,集线器没有MAC地址学习,当有流量时会马上分发到各个端口的主机,也就是实现端口镜像。spa

经过以上分析,那么只须要这几个命令便可:htm

# 关闭br1的mac地址学习功能和下降转发延迟
brctl setageing br1 0 brctl setfd br1 0

注意:这几个命令写在开机启动项/etc/rc.local上使其开机生效。研究过了,没别的办法能够实现。blog

如下内容为转载:get

Bridge(桥)是 Linux 上用来作 TCP/IP 二层协议交换的设备,与现实世界中的交换机功能类似。Bridge 设备实例能够和 Linux 上其余网络设备实例链接,既 attach 一个从设备,相似于在现实世界中的交换机和一个用户终端之间链接一根网线。每当这个从物理网卡设备收到数据时都会把数据转发到 bridge 上,当 bridge 接收到此数据时,bridge进行一个和现实世界中的交换机相似的处理过程:判断包的类别(广播/单点),查找内部 MAC 端口映射表,定位目标端口号,将数据转发到目标端口或丢弃,自动更新内部 MAC 端口映射表以自我学习。而咱们关闭br1的mac地址学习功能,把br1做为一个hub来使用,使其直接把流量转发到链接到br1的虚拟网卡vnet1。若是不关闭mac地址学习功能,因为br1收到的镜像流量中数据包的目的mac地址不是虚拟机的mac地址,故会直接把收到的流量丢弃,再也不进行转发。虚拟机

 

参考:

http://blog.51cto.com/leejia/2147300(以上内容部分转自此篇文章)

http://www.just4coding.com/blog/2017/12/02/ovs-mirror/

https://docs.vmware.com/cn/VMware-NSX-T/1.1/com.vmware.nsxt.admin.doc/GUID-3D403B24-51F6-4A16-8266-0827BFE9FAA9.html

https://www.ibm.com/developerworks/cn/linux/1310_xiawc_networkdevice/index.html