juniper MAC地址绑定

在Netscreen防火墙的资料中没有明确地说具有IP/MAC地址绑定功能,但我们是否能通过其他办法来实现,又是基于什么机理来实现呢?借助NS的debug功能,我们分析MAC地址绑定中信息包的流动,找出实现的方法并推测出其实现的机理。
假设在内网Trust zone的E1端口接有计算机PC1,它的IP是192.168.0.52, MAC是0000e26e4743,端口E3在Untrust zone,接外网。
执行命令set arp 192.168.0.52 0000e26e4744 e1,在E1端口对PC1的IP地址作一个静态MAC地址绑定,但绑定的是一个错误的MAC地址0000e26e4744。
从PC1去ping外网的一台计算机,如果MAC地址绑定功能起作用的话,应该不能ping通。然而我们发现却可以ping通。
通过debug看到,出去的包穿过防火墙,返回包也到达防火墙。在返回包中目的IP(192.168.0.52)的MAC地址是 0000e26e4743,自然返回包可以到达PC1。我们知道Netscreen默认返回包的目的MAC是取自session表中出去包的源MAC地址 (即0000e26e4743),它并不扫描ARP表,所以即使你将地址192.168.0.52错误地绑定到0000e26e4744,也不会起作用。
于是我们想到应该再执行命令set arp always-on-dest,强迫防火墙通过ARP扫描来获得目的MAC地址,由于已经将地址192.168.0.52作了静态ARP绑定,因此ARP 扫描将首先从静态ARP表取目的MAC地址0000e26e4744,而这是个错误的MAC地址,所以返回包无法到达PC1。
在我们将绑定的MAC地址改为正确的0000e26e4743后,返回包正确到达PC1,宏观上表现出IP/MAC地址绑定的功能。
由此看来,可以借助Netscreen静态ARP绑定功能来实现MAC地址绑定,但它并不是阻挡信息包通过防火墙,而是控制返回包能否正确到达。
实现MAC绑定功能需要三个步骤:
1.作ARP静态绑定:set arp 192.168.0.52 0000e26e4743 e1
2.强迫执行ARP目地IP扫描:set arp always-on-dest
3.设置一个地址组group,它只包含做MAC地址绑定的那些IP地址。然后设置一个策略,只让这个地址组group通过。
使用MAC地址绑定要注意两点:
* 只有那些和端口在同一网段的IP地址才能进行MAC地址绑定,仅适合单一网段的环境。
* 很多软件可以轻而易举地改变计算机信息包的MAC地址,防火墙无法识别真假MAC地址,由此造成系统不安全。
据我们测定,不少防火墙也是采用这个方法实现MAC地址绑定的。但也有一些防火墙是先判断MAC地址是否匹配,然后再做策略匹配。我们认为这种方法比较合理,效率也高。

相关文档
最新文档