您的位置:首页 > 运维架构 > Linux

linux下的arp命令详解

2016-03-10 17:20 567 查看
我们先看一下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地址)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: