iptables和控制子网上的主机之间的stream量

最近我在TP-LINK路由器上安装了OpenWrt。 现在我想控制同一子网上的某些主机之间的stream量。 由于iptables在基于OpenWrt的路由器上是可用的,我认为这应该是一个微不足道的任务。 我正在使用OpenWrt Chaos Calmer 15.05.1。

在我的第一次尝试,我只是想添加一个新的规则到networking/防火墙/stream量规则。 例如,我想根据主机A的MAC地址和主机B的IP,阻止主机A与主机B通话:

Any traffic From any host in lan with source MAC AA:AA:AA:AA:AA:AA (host A) To IP WXYZ in lan (host B) Discard forward 

这个规则已经使用OpenWrts的内置向导来设置。 由于这一部分被称为“交通规则”,我认为OpenWrts负责正确添加/插入规则。 但是,主机A仍然可以与主机B通话。

在我的下一个尝试中,我手动添加了一个iptables规则到“自定义规则”部分,这是在默认规则之后加载的:

 iptables -A FORWARD -p ALL -m mac --mac-source AA:AA:AA:AA:AA:AA -d WXYZ -j DROP 

到目前为止,我还没有能够得到这个工作。 对此有何想法? 另外,有人可以指出我的解决scheme,主机B仍然可以与主机A通话吗? 我的方法(如果工作的话)会closures任何沟通。

谢谢

你将不得不把主机A和主机B放在不同的子网上,路由器在它们之间。 如果他们在同一个子网上,他们直接对话,路由器甚至不会看到他们正在交换的IP数据包。 更确切地说,当我说“直接”的时候,我的意思是他们在第二层(数据链路)上相互交谈,以太网帧可能通过也可能不通过TP-LINK,但是它作为一个二层交换机。