linux下的arp命令详解

我们先看一下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地址)

你可能感兴趣的:(linux下的arp命令详解)