我试图过滤由GOOSE协议生成的第2层多播包(没有IP报头)。
下面的命令已被使用(ebtable和iptables),但没有起作用。有人能给点建议吗?
我使用ebtables是因为我读到iptables不能打开没有ip报头的包(至少3层)。数据包从机器A发送到机器B(客户机/服务器软件)。
a.电子表格-输入-j DROP
ebtables-A输出-j DROP
b.iptables-A输入-m pkttype--pky类型多播-j DROP
iptables-A OUTPUT-m pkttype--pky类型多播-j DROP
我尝试了上面所有的命令,但是我不能停止我的多播包(DROP只是用于测试目的)
谢谢你在高级。。。
最佳答案
对于将来遇到同样问题的人,我设法解决了这个问题,首先,现在iptables不能过滤不使用ip报头的protocole,所以在我的例子中,我的protocole是第2层(比如arp),最好的工具是ebtables。
我已经意识到的DROP测试不起作用,因为我在一个正常的惰性面中使用了ebatbles,这是ebtables的一个问题,他不接受,你应该在使用ebtables之前配置一个桥接口。
这是我键入的创建网桥的命令:
brctl addbr br0
brctl stp br0 off
brctl addif br0 eno16777736
ifconfig br0 10.0.0.131 netmask 255.255.255.0
ifconfig eno16777736 0 0.0.0.0
ip route add default via 10.0.0.1
ebtables -t broute -A BROUTING -j DROP
跳吧这对将来的人有帮助
关于linux - 过滤第2层多播数据包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37860794/