最近公司把核心交换机从H3C换成了华为,本来以为很简单,结果到了端口镜像这一块卡住了。H3C的配置方法和华为完全不一样,直接复制粘贴根本行不通,得重新学。我翻了不少资料,也问了几个朋友,总算搞明白了,今天就把这个过程写下来,给同样遇到这问题的朋友参考。

先说说H3C是怎么配的。H3C用的是“镜像组”的概念,就是建一个逻辑组,比如mirroring-group 1,然后在组里面指定哪个口是源端口,哪个口是目的端口。配置的时候,所有命令都是针对这个组的,感觉很集中,一个命令就能看到整个组的状态。但缺点就是,想改或者删的时候,得进到组视图或者系统视图里操作,不太灵活。
华为就不一样,它用的是“观察端口”的概念。先定义一个观察端口,比如observe-port 1,指定一个物理接口当观察口。然后到每个源接口下面,用port-mirroring to observe-port 1这样的命令,告诉这个接口把流量复制一份发到观察口。这种思路是“先定义资源,再引用资源”,感觉更灵活,可以单独控制每个源口的镜像方向,甚至一个源口可以镜像到多个观察口。
我实操的时候,发现有几个坑必须注意。第一个坑是VLAN配置。H3C里用的是port access vlan 66,华为里对应的是port default vlan 66。这个必须改对了,不然观察口抓到的包可能不对。第二个坑是观察口本身。华为的观察口定义好之后,最好加上一条observe-port 1 forwarding disable,防止这个口意外转发数据,造成环路。我一开始没加,后来听老同事说才知道,赶紧补上了。
第三步是配置源端口。我进到GigabitEthernet0/0/1接口,输入port-mirroring to observe-port 1 both,把双向流量都镜像。注意方向:both是双向,inbound是入方向,outbound是出方向。这个方向是以交换机端口为参照的,不是以服务器。我有个朋友就搞反了,抓了半天包没抓到,后来才发现方向选错了。
配置完一定要验证。用display observe-port看观察口,用display port-mirroring看所有镜像配置。最保险的办法是在观察口接的抓包电脑上开Wireshark,看能不能抓到源口的流量。这是唯一的标准,别信命令行显示的“Success”,抓包才是硬道理。
我遇到的另一个问题是端口名称不一致。脚本里写的是GigabitEthernet1/0/1,但实际设备上可能是GigabitEthernet0/0/1,所以手动改一下。别偷懒,直接复制脚本容易出错。
还有一点,观察口的带宽要够。如果源口流量很大,观察口带宽不够,肯定会丢包。这个没办法在配置上解决,只能提前规划。比如源口是千兆,观察口最好也是千兆,或者用多个观察口分流。
最后说个进阶技巧。华为支持基于VLAN的镜像,就是mirroring to observe-port vlan。如果我想监控整个“行政部”VLAN的流量,就不用一个个配端口,直接在VLAN接口下配置就行,省事很多。但要注意,这个命令和端口镜像不同,不能混用。
总的来说,从H3C换到华为,镜像配置的思维要从“组”转变到“对象”。理解了这个底层逻辑,后面的命令就顺了。迁移不是终点,正好借这个机会检查一下监控体系,看看有没有可以优化的地方。最后再强调一遍:观察口只接抓包电脑,别接任何业务设备,这是铁律,不管什么厂商都一样。