linux arp命令
本章我们简单介绍一下Linux中的arp命令,在此做一个记录。
1. arp指令
arp指令用来管理系统的arp缓冲区,可以显示、删除、添加静态mac地址。ARP以各种方式操作内核的ARP缓存,主要选项是清除地址映射项并手动设置。为了调试目的,ARP程序还允许对ARP缓存进行完全转储。
此命令的适用范围:RedHat、RHEL、Ubuntu、Centos、SUSE、openSUE、Fedora。
1.1 基本语法
SYNOPSIS arp [-vn] [-H type] [-i if] [-ae] [hostname] arp [-v] [-i if] -d hostname [pub] arp [-v] [-H type] [-i if] -s hostname hw_addr [temp] arp [-v] [-H type] [-i if] -s hostname hw_addr [netmask nm] pub arp [-v] [-H type] [-i if] -Ds hostname ifname [netmask nm] pub arp [-vnD] [-H type] [-i if] -f [filename]
1.2 模式(mode)
1) 当不指定任何mode时,arp指令会打印当前的缓存条目。我们可以通过指定硬件地址类型、网络接口名称或者主机地址来打印对应的条目。
2) -d address
通过此模式来从ARP缓存表中删除一个条目。要执行此操作,我们通常需要具有root或者netadmin权限。
3) -s address hw_addr
通过此模式来设置一个arp缓存条目。其中hw_addr的格式取决于硬件类型。例如,对于Ethernet类型的硬件,hw_addr通常是一个6
字节的hexadecimal,中间以冒号分割;
1.3 选项列表
1) -n, --numeric
适用数字方式显示地址信息
2) -H type, --hw-type type, -t type
当设置或读取ARP缓冲区时,本选项用于告诉ARP命令获取哪一种类型的entries。本参数的默认值为ether(比如硬件代码0x01表示
IEEE 802.3 10 Mbps以太网)。Other values might include network technologies such as ARCnet (arcnet) ,
PROnet(pronet) , AX.25 (ax25) and NET/ROM (netrom)
3) -a
使用BSD风格输出结果
4) -e
使用默认的Linux风格输出结果
5) -D, --use-device
使用对应网卡接口的名称来指定arp命令应该访问的entry,而不是使用该网卡的hw_addr。
6) -i If, --device If
用于选择指定的网络接口。当打印ARP缓冲条目时,通过此选项指定打印哪个网卡接口;当设置永久或临时的ARP条目时,将entry绑定到
指定的网卡接口;假如未使用本选项,则内核会基于路由表来猜测此选项的值。
7)-f filename, --file filename
与-s选项类似,只是此时地址信息取自于filename。当我们要建立大量的ARP entries时,我们可以使用此选项导入。通常filename的
名称未/etc/ethers。而文件的格式也很简单,每一行为hostname和硬件地址,中间以空格分割。
1.4 实例
1) 添加静态映射
# arp -i eth0 -s 192.168.1.6 ff:ee:ee:ee:ee:ee //将目标ip地址映射固定mac # arp –a //查看arp缓冲区 ? (10.0.2.2) at 52:54:00:12:35:02 [ether] on eth0 ? (192.168.1.6) at ff:ee:ee:ee:ee:ee [ether] PERM on eth0
2) 以数字方式显示
# arp -vn Address HWtype HWaddress Flags Mask Iface 192.168.180.1 ether 00:50:56:c0:00:08 C ens33 192.168.180.2 ether 00:50:56:e2:b3:2e C ens33 192.168.180.254 ether 00:50:56:fe:de:86 C ens33 Entries: 3 Skipped: 0 Found: 3
[参看]