我们先看一下linux下的arp命令(如果开始arp表中的内容为空的话,需要先对某台主机进行一个连接,例如ping一下目标主机来产生一个arp项
Linux Arp命令显示和修改地址解析协议(ARP)使用的“IP 到物理”地址转换表。 ARP -s inet_addr eth_addr [if_addr] ARP -d inet_addr [if_addr] ARP -a [inet_addr] [-N if_addr] [-v]
-a 通过询问当前协议数据,显示当前ARP项。如果指定inet_addr,则只显示指定计算机的IP地址和物理地址。如果不止一个网络接口使用ARP,则显示每个ARP表的项。 -g 与-a相同。 -v 在详细模式下显示当前ARP项。所有无效项和环回接口上的项都将显示。 inet_addr 指定Internet地址(IP地址)。 -N if_addr 显示if_addr指定的网络接口的ARP项。 -d 删除inet_addr指定的主机。inet_addr可以是通配符*,以删除所有主机。 -s 添加主机并且将Internet地址inet_addr与物理地址eth_addr相关联。物理地址是用连字符分隔的6个十六进制字节。该项是***的。 eth_addr 指定物理地址。 if_addr 如果存在,此项指定地址转换表应修改的接口的 Internet 地址。如果不存在,则使用***个适用的接口。
示例: 添加静态项。这个很有用,特别是局域网中中了arp病毒以后 # arp -s 123.253.68.209 00:19:56:6F:87:D2 # arp -a …. 显示 ARP 表。
但是arp -s设置的静态项在用户登出之后或重起之后会失效,如果想要任何时候都不失效,可以将ip和mac的对应关系写入arp命令默认的配置文件/etc/ethers中
例如: 引用 root@ubuntu:/# vi /etc/ethers 211.144.68.254 00:12:D9:32:BF:44 写入之后执行下面的命令就好了
引用 arp -f /etc/ethers 为保证重起之后绑定仍然有效,需要把上述命令写入/etc/ethers
ARP(Address Resolution Protocol),或称地址解析协议。
本地机向"某个IP地址 — 目标机IP地址"发送数据时,先查找本地的ARP表,如果在ARP表中找到"目标机IP地址"的ARP表项,(网络协议)将把"目标机IP地址"对应的"MAC地址"放到MAC包的"目的MAC地址字段"直接发送出去; 如果在ARP表没有找到"目标机IP地址"的ARP表项,则向局域网发送广播ARP包("目的MAC地址字段" == FF:FF:FF:FF:FF:FF),目标机将向本地机回复ARP包(包含目标机的MAC地址)