首先,网桥配置好之后就能实现一个简单的交换机,而交换机的特点就是MAC地址学习,那么KVM的网卡设置成网桥之后,也就是相当于连接到了交换机上。

此时如果要实现在二层交换机或三层交换机做端口镜像,并把这个镜像的流量转到这个虚拟机的网卡上,那么会出现无法实现的问题,下面我来分析一下原因:

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

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

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

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

通过以上分析,那么只需要这几个命令即可:

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

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

以下内容为转载:

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

CentOS下KVM网卡设置成网桥时获取镜像端口的流量的更多相关文章

  1. CentOS下bond网卡聚合与网桥结合

    需求:服务器配置bond多网卡聚合,然后KVM需要使用到网桥,那么需要做到网桥绑定到bond网卡上. 实现核心: 1.bond配置参考:https://www.cnblogs.com/EasonJim ...

  2. mysql主键设置成auto_increment时,进行并发性能測试出现主键反复Duplicate entry 'xxx' for key 'PRIMARY'

    mysql主键设置成auto_increment时,进行并发性能測试出现主键反复Duplicate entry 'xxx' for key 'PRIMARY' 解决方法: 在my.cnf的[mysql ...

  3. (转)log4j日志级别设置成DEBUG时输出Html代码等问题:

    log4j日志级别设置成DEBUG时输出Html代码等问题: 问题: log4j日志级别设置成DEBUG时会输出很多信息,包括一些Html代码 解决方案: log4j的控制是树形,所以在log4j.p ...

  4. Tomcat设置成NIO时,使用的线程池

    设置成NIO时, <Connector port="8088" protocol="org.apache.coyote.http11.Http11NioProtoc ...

  5. Linux网卡设置为网桥模式

    Linux网卡设置为网桥模式 1.    添加网卡,并修改相关配置文件 1.1虚拟机添加网卡,并配置相关文件 如:eth2为新添加网卡 cd /etc/sysconfig/network-script ...

  6. centos下查看网卡,主板,CPU,显卡,硬盘型号等硬件信息

    centos下查看网卡,主板,CPU,显卡,硬盘型号等硬件信息 rose_willow rose_willow 发布于 2016/06/16 11:32 字数 902 阅读 405 收藏 0 点赞 0 ...

  7. Linux下双物理网卡设置成虚拟网卡

    为了提供网络的高可用我们须要将多块网卡绑定设置成一块虚拟的网卡对外提供服务,这样能够防止一块网卡损坏或者防止网线连接故障造成的连接中断. 以下我们使用eth0与eth1来虚拟成为bond0为例:--- ...

  8. VMware workstation CentOs 7 虚拟机网卡设置为NAT模式并设置固定IP

    一.背景知识      虚拟机网络模式 无论是vmware workstation,virtual box,virtual pc等虚拟机软件,一般来说,虚拟机有三种网络模式: 1.桥接 2.NAT 3 ...

  9. CentOS下多网卡绑定bond/多网卡聚合

    网卡bond我直接理解成网卡聚合了,就是把多张网卡虚拟成1张网卡,出口时,这张网卡无论哪个断线都不影响网络,入口时,需要结合交换机的端口聚合功能实现和网卡配置的bond模式进行负载均衡.bond需要在 ...

随机推荐

  1. [转载]Remote Desktop Manager 9.0.10.0 Enterprise 附企业版注册码 (强大的远程控制软件)

    http://www.52xiazai.net/pcsoft/network/yuanchen/20131206/2429.html

  2. java Runnable、Callable、FutureTask 和线程池

    一:Runnable.Callable.FutureTask简介 (1)Runnable:其中的run()方法没有返回值. ①.Runnable对象可以直接扔给Thread创建线程实例,并且创建的线程 ...

  3. 20155206 2016-2017-2 《Java程序设计》第8周学习总结

    20155206 2016-2017-2 <Java程序设计>第8周学习总结 教材学习内容总结 第十五章 通用API 15.1 日志 日志API简介 java.util.logging包提 ...

  4. 20155321 2016-2017-2 《Java程序设计》第八周学习总结

    20155321 2016-2017-2 <Java程序设计>第八周学习总结 教材学习内容总结 创建Logger对象 static Logger getLogger(String name ...

  5. 如何得到Slave应用relay-log的时间

    官方社区版MySQL 5.7.19 基于Row+Position搭建的一主一从异步复制结构:Master->{Slave} ROLE HOSTNAME BASEDIR DATADIR IP PO ...

  6. HTTP协议之响应头Date与Age

    HTTP没有为用户提供一种手段来区分响应是缓存命中的,还是访问原始服务器得到的.客户端有一种方法能判断响应是否来自缓存,就是使用Date首部.将响应中Date首部的值与当前时间进行比较,如果响应中的日 ...

  7. centos6.5环境Redis下载及编译安装

    centos6.5环境Redis下载及编译安装 1:官方站点: http://redis.io/download 下载最新版或者最新stable版 2:解压源码并进入目录 tar -zxvf redi ...

  8. AngularJS里面$emit, $broadcast,$on,$http.Jsonp,constant是使用笔记

    本片主要介绍$emit, $broadcast,$on经常开发的用法!

  9. mysql 某字段插入随机数

    UPDATE `表名` SET `字段名`=ceiling(rand()*500000+500000) WHERE (条件); 写入11位手机 UPDATE xm_user a SET a.user_ ...

  10. MyEclipse如何查找指定工程下所有或指定文件中特定字符串并且可进行批量替换

    查找操作步骤:(1)在myEclipse里菜单选择-Search-Search(快捷键:ctrl+h);(2)在弹出对话框中选File Search选项,然后在第一个文本框中输入“要查找的字符串”(为 ...