镜像:为什么配置二层远程端口镜像需要关闭MAC学习功能
镜像:为什么配置二层远程端口镜像需要关闭MAC学习功能
[SwitchB] vlan 10
[SwitchB-vlan10] mac-address learning disable
首先了解一下二层远程端口镜像如何将镜像报文转发到监控设备。
如图所示,在二层远程端口镜像中,镜像报文会通过VLAN10转发到中间设备SwitchB。SwitchB是没有任何镜像配置的,镜像报文只能通过一般二层通信流程转发到Server。而且,由于镜像报文的目的MAC与原始报文目的MAC相同,不是监控设备的MAC,也就是说,镜像报文不能通过MAC表进行转发,而是依赖未知单播的处理流程——广播方式进行转发。只要VLAN10对应的MAC表中不包含镜像报文目的MAC对应的表项,镜像报文就可以通过广播方式转发到Server。
二层远程端口镜像中镜像报文转发示意图
绝大多数二层远程镜像场景中,在中间设备上,用于转发镜像报文的VLAN是不会学习到镜像报文的目的MAC的,即镜像报文可以通过广播的方式转发到监控设备。但是在如下的场景,因为VLAN内有镜像报文目的MAC对应的MAC表项,而导致二层远程镜像失败。
原始的业务流与复制后的镜像流用同一个VLAN转发
原始业务流与镜像流用相同VLAN转发导致二层远程端口镜像失败
如图2所示,某公司为了监控研发部员工访问DNS
Server的流量,在SwitchA上配置二层远程端口镜像,并且研发部与DNS
Server通信的流量、镜像流量都通过VLAN10转发。此处以HostA访问DNS
Server为例,当SwitchA收到来自HostA的报文,就会复制一份镜像报文,向VLAN10转发,目的MAC和原始报文一样,都是DNS
Server的MAC地址。由于HostA与DNS Server之间的通信会学习到DNS Server
MAC地址对应的MAC表项,所以当SwitchB在VLAN10内收到目的地址为DNS
Server的MAC地址的镜像报文时,就会按MAC表进行转发,二层远程端口镜像失败。
解决方法:
配置二层远程端口镜像时不要用同一个VLAN转发普通业务流量和镜像流量,如图3所示。如果必须要使用同一个VLAN,可以在SwitchB上用mac-address
learning disable命令将VLAN10的MAC学习功能关闭,但是这会导致链路带宽的浪费,尤其是用户接入比较多的情况下。
图3 不同VLAN转发原始业务流量和镜像流量
发送端不同的镜像流用同一个VLAN转发
图4 发送端不同的镜像流用同一个VLAN转发导致二层远程镜像失败
如图4所示,某公司为了监控研发部与市场部之间的通信流量,分别在SwitchA和SwitchC上配置了二层远程端口镜像,并且用于转发镜像流量的VLAN都是VLAN10,部门之间通信用的是其他VLAN。当SwitchA和SwitchC的镜像端口收到来自于下游主机的流量时,它们就会镜像一份向VLAN10转发。由于两个方向镜像报文的源MAC是各自Host的MAC地址,会在SwitchB上学习到会对应的MAC表项。而它们的目的MAC地址又是对方Host的MAC地址,就会在MAC表中查到对应的表项,镜像报文就会按MAC表转发,二层远程镜像失败。
通过下面三种方法之一都可以解决上面的问题:
在SwitchB上通过mac-address learning disable命令将VLAN10的MAC学习功能关闭,如图5所示。
图5 在SwitchB上关闭VLAN10的MAC学习功能
将镜像功能配置在SwitchB上,连接SwitchA、SwitchC的接口作为镜像端口,连接Server的接口作为本地观察端口,如图6所示。
图6 在SwitchB上配置本地端口
用两个不同的VLAN转发镜像流量,如图7所示。
图7 不同VLAN转发两个方向的镜像流量
镜像(列表、list、全)
http://www.zh-cjh.com/wenzhangguilei/1006.html
文章归类、所有文章列表、LISTLIST
http://www.zh-cjh.com/wangzhangonggao/2195.html
2、本资源基本为原创,部分来源其他付费资源平台或互联网收集,如有侵权请联系及时处理。
3、本站大部分文章的截图来源实验测试环境,请不要在生产环境中随意模仿,以免带来灾难性后果。
转载请保留出处: www.zh-cjh.com珠海陈坚浩博客 » 镜像:为什么配置二层远程端口镜像需要关闭MAC学习功能
作者: cjh
手机扫一扫,手机上查看此文章: |
一切源于价值!
其他 模板文件不存在: ./template/plugins/comment/pc/index.htm