mirror

 

今天在测试mirror功能时,发现一个大问题,原本以为mirror功能只是简单的复制,结果大错特错了,总结了一下几点:(DUT -->被测试的设备,IXIA -->一种发包工具,DUT 的1,2,3接口分别连接IXIA 的1,2,3接口)

 

Case 1, mirroring 出口转发数据包的情况
DUT 接口1 为mirroring port,DUT port 2 为mirrored port ,DUT port 2 加入到vlan 10 中,并从vlan1 中移除,只把DUT port 1的出口数据包mirrored 到 DUT 接口2,从IXIA 接口3向 DUT port 1 发送数据流
   把DUT接口1加入到vlan 1,2,3,4中,并且标记为untagged ,其mirroring 和mirrored port接收到的数据包类型如下。
 

IXIA 接口3(发送数据包类型)
IXIA 接口1(接受数据包类型)
IXIA 接口2(接收数据包类型)
Untagged
Untagged
Tagged 1
Tagged 1
Tagged 1
Tagged 1
Tagged 2
Tagged 2
Tagged 2
Tagged 3
Tagged 3
Tagged 3
Tagged 4
Tagged 4
Tagged 4

 
如果mirroring port是untagged port ,mirrored 后 转发是会打上tag,以便区分是从哪个vlan转发过来的。对于同样的数据包,只是vlan标签不一样的,假如mirrored 只是简单的把mirroring port接受到得数据流复制一份到mirrored接口上时,则很难说清这个数据包来自于哪个vlan,因为从untagged接口出来的数据包都是untagged,所以在mirror untagged 接口上的数据包时,会打上发送者的vlan标签,以区分来自于哪个vlan的,在此要注意,不是数据包简单的复制。Mirrored 和mirroring port接收到的数据包有变化的。对于mirrored 打上的tag 于mirroring 接口上的pvid 无关,至于发送到mirroring接口上的数据流的tag有关,
 
 
   把DUT接口1加入到vlan 1,2,3,4中,并且标记为tagged ,
 

IXIA 接口3(发送数据包类型)
IXIA 接口1(接受数据包类型)
IXIA 接口2(接收数据包类型)
Untagged
Tagged 1
Tagged 1
Tagged 1
Tagged 1
Tagged 1
Tagged 2
Tagged 2
Tagged 2
Tagged 3
Tagged 3
Tagged 3
Tagged 4
Tagged 4
Tagged 4

 
对于mirroring port是tagged 很好理解,出来的数据包需要打上tagged
这个就是简单的复制,就可以区分了。当IXIA 接口3发送untagged数据包时,与DUT port1 上的pvid无关,都会打上tagged 1 。
Case 2 mirroring 入口转发数据包的情况
DUT 接口1 为mirroring port,DUT port 2 为mirrored port ,DUT port 2 加入到vlan 10 中,并从vlan1 中移除,只把DUT 1的入口数据流mirrored 到DUT 接口2,
不管mirroring 接口是tagged 还是untagged ,对于mirroring入口的数据包和mirrored后的数据包是完全一样的,直接复制从mirroring接口进口的数据包到mirrored接口,不会做其他的处理,与mirroring port上的pvid 没有关系。那么从从IXIA 接口1 发送untagged数据流,IXIA 接口2收到的数据包也是untagg的,不会打上tag标记,这个出口数据包不一样。