water0313 发表于 2014-04-17 14:41

如何阻止报文从交换芯片的其中一个端口发送?

目前在做二层交换机的开发项目,遇到这样一个问题,不知道如何解决,具体问题是这样的:
现在交换机有3个端口,其中两个端口(Port 0 ,Port 1)与PC机相连,另一个端口与CPU控制器连接。
(1)当Port 0接收到一个特定的多播报文后,交由CPU进行处理,但是报文的源地址跟目的地址都不会改变,CPU改写特定参数后再转发出去。
(2)由于报文的目的地址为多播地址,导致修改后的报文会从Port 0 和Port 1两个端口都转发出去,
如何使修改后的报文只能Port 1端口转发,而避免从Port0 转发?
希望知道该如何解决这个问题的前辈给予指教,谢谢~

tc1989tc 发表于 2014-04-17 15:14

修改目的mac,可以吗

water0313 发表于 2014-04-17 15:25

目的MAC跟源MAC地址都不能修改
回复 2# tc1989tc


   

tc1989tc 发表于 2014-04-17 20:13

二层有vlan吧?把端口划分到不同的vlan即可

kastin 发表于 2014-04-18 15:55

这属于开发层面了吧?

rainfinity 发表于 2014-04-26 22:38

维护一个all interface list (port0, port1), 维护一个 multicast incoming interface(port0), 那 multicast outgoing interface list (OIL) = all interface list (port0, port1) - incoming interface(port0)

简言之,就是记住multicast 的入接口, 然后转发的时候把它剪掉。

lokyes 发表于 2014-04-28 09:18

交换芯片应该支持组播的 flood mask吧。如果不支持的话,支持vlan吗,vlan应该也可以做。另外,如果支持芯片header的话,可以考虑在报文前加header,告诉switch这个报文从哪个port出去?
LZ这是做什么项目
页: [1]
查看完整版本: 如何阻止报文从交换芯片的其中一个端口发送?