当前位置:Linux教程 - Linux综合 - 在linux路由上设置IP和MAC绑定

在linux路由上设置IP和MAC绑定

  在有些系统中有这样的需求,希望内部网中的某几个IP地址连接互联网,而又希望这些 IP地址不被非法用户盗用。可以通过下面的解决办法实现: 1. 首先使用ipchains或者iptables来设定只允许合法的IP地址连出。 对于合法IP建立IP/MAC捆绑。要讨论这个问题我们首先需要了解ARP协议的工作原理, ARP协议是地址解析协议(Address Resolution Protocol)的缩写,其作用及工作原理如下: 在底层的网络通信中,两个节点想要相互通信,必须先要知道源与目标的MAC地址。 为 了让系统能快速地找到一个远程节点的MAC地址, 每一个本地的内核都保存有一个即时的查 询表(称为ARP缓存)。 ARP中有影射远程主机的IP地址到其对应的MAC地址的一个列表。地 址解析协议(ARP)缓存是一个常驻内存的数据结构, 其中的内容是由本地系统的内核来管 理和维护的。默认的情况下, ARP缓存中保留有最近十分钟本地系统与之通信的节点的IP地 址(和对应的MAC地址)。 当一个远程主机的MAC地址存在于本地主机的ARP缓存中, 转换远程节点的IP地址为MAC 地址不会遇到问题。然而在许多情况下,远程主机的MAC地址并不存在于本地的ARP缓存中, 系统会怎么处理呢?在知道一个远程主机的IP地址,但是MAC地址不在本地的ARP缓存中的时 候,以下的过程用来获取远程节点的MAC地址: 本地主机发送一个广播包给网络中的所有的节点,询问是否有对应的IP地址。一个节点 (只有一个)会回答这个ARP广播信息。在回应的信息包里就会包含有这个远程主机的MAC地 址。在收到这个返回包后, 本地节点就会在本地ARP缓存中记录远程节点的MAC地址。 如果我们将IP/MAC对应关系建立为固定的, 也就是对那些合法IP地址建立静态的MAC对 应关系, 那么即使非法用户盗用了IP地址,Linux路由器在回应这些IP发出的连接请求时则 不会通过ARP协议询问其MAC地址,而是使用linux建立的静态MAC地址、发出应答数据。这样, 盗用IP者则不会得到应答数据,从而不能使用网络服务。 建立静态IP/MAC捆绑的方法是:建立/etc/ethers文件, 其中包含正确的IP/MAC对应关 系,格式如下: 192.168.2.32 08:00:4E:B0:24:47 然后在/etc/rc.d/rc.local的最后添加: arp -f 即可 2. 2.4内核的iptables可以对IP和MAC同时进行限定,使用该功能对合法IP的规则同时限定 IP地址和MAC地址即可。 --- end

(出处:http://www.sheup.com)