我有一个三个接口的Linux桥梁,例如tap0,tap1和tap2。 我想要做的是以下面的方式修改标准的桥梁行为:
如果L2广播是从tap0发起的,那么这只应该被转发到tap2(tap1应该放弃它)。
如果L2广播是从tap1发起的,那么这只应该被转发到tap2(tap0应该放弃它)。
如果L2广播是从tap2发起的,那么这应该像普通网桥一样被转发到tap0和tap1。
是否有可能在linux中以这种方式控制桥接行为?
干杯
丹尼尔
看一下控制Linux桥接转发的ebtables :
# forward tap0 broadcasts to tap2, do not forward to tap1 ebtables -A FORWARD -i tap0 -o tap2 -d ff:ff:ff:ff:ff:ff -j ACCEPT ebtables -A FORWARD -i tap0 -o tap1 -d ff:ff:ff:ff:ff:ff -j DROP # forward tap1 broadcasts to tap2, do not forward to tap0 ebtables -A FORWARD -i tap1 -o tap2 -d ff:ff:ff:ff:ff:ff -j ACCEPT ebtables -A FORWARD -i tap1 -o tap0 -d ff:ff:ff:ff:ff:ff -j DROP # forward tap2 broadcasts to tap0 and tap1 ebtables -A FORWARD -i tap2 -o tap0 -d ff:ff:ff:ff:ff:ff -j ACCEPT ebtables -A FORWARD -i tap2 -o tap1 -d ff:ff:ff:ff:ff:ff -j ACCEPT