arp
arp指令用来管理系统的arp缓冲区,可以显示、删除、添加静态mac地址。ARP以各种方式操纵内核的ARP缓存。主要选项是清除地址映射项并手动设置。为了调试目的,ARP程序还允许对ARP缓存进行完全转储。
此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、语法
arp [-evn] [-H type] [-i if] -a [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 ifa [netmask nm] pub
arp [-vnD] [-H type] [-i if] -f [filename]
2、选项列表
选项 | 说明 |
--help | 显示帮助文档 |
--version | 显示命令版本 |
-H type --hw-typetype -t type | 在设置或读取ARP缓存时,这个可选参数告诉ARP应该检查哪类条目。此参数的默认值为ether(即IEEE 802.3 10 Mbps以太网的硬件代码0x01)。其他可能的值有,如ARCnet(Arcnet)、PROnet(PRINET)、AX.25(Axis 25)和Net/ROM(Netrom)。 |
-a[hostname] | --all [hostname] | 显示本机的arp缓冲区内容 |
-dhostname | --deletehostname | 从缓冲区删除指定的地址类型 |
-D | -use-device | 使用指定接口的mac地址 |
-e | 使用Linux风格显示 |
-i if | --device if | 显示指定设备的arp缓冲区 |
-shostnamehw_addr | 设置指定主机的mac地址映射 |
-f filename | --file filename | 类似于-s选项,只是这次地址信息是从filename设置的。数据文件的名称通常是“/etc/ether”,但这不是正式的。如果没有指定文件名“/etc/ether”作为默认值。该文件的格式很简单;它只包含带有硬件地址和由空格分隔的主机名的ASCII文本行。此外,还可以使用pub、temp和netmask标志。 |
-n | --numeric | 使用数字方式显示 |
-v | --verbose | 显示执行过程 |
在所有需要主机名的地方,人们也可以用虚线小数点表示法输入IP地址。作为兼容性的特例,主机名和硬件地址的顺序可以交换。ARP缓存中的每个完整条目都将被标记为C标志。永久条目用M标记,已发布的条目带有P标志。
1清理
arp缓存就是IP地址bai和MAC地址关系缓存列表。在Windows下du arp -d [$ip] 不指定IP地址时清除所有zhiarp缓存。
在Linux下 arp -d $ip 必须指定IP地址才能执行这条命令的此参数,所有在Linux系统下 arp -d $ip 命令只能清除一个IP地址的对应MAC地址缓存,当然可以使用组合命令操作,这也算是Linux的一个优点吧。
组合命令清除所有arp缓存:arp -n|awk '/^[1-9]/{system("arp -d "$1)}'其实Linux也有内部命令清除所有arp缓存,但是不太好记忆,用的人很少。以下命令清除eth0接口的所有arp缓存。
ip neigh flush dev eth0
[root@controller ~]# arp -a -e
Address HWtype HWaddress Flags Mask Iface
10.10.1.3 ether d4:5d:64:07:a8:ec C brq67c36339-a8
10.10.1.103 ether e4:54:e8:dc:27:d9 C brq67c36339-a8
gateway ether ac:75:1d:96:b1:d4 C brq67c36339-a8
10.10.1.4 ether 44:a1:91:e6:b6:4c C brq67c36339-a8
10.10.1.8 ether 00:0b:2f:18:66:05 C brq67c36339-a8
[root@controller ~]# arp -n|awk '/^[1-9]/{system("arp -d "$1)}'
[root@controller ~]# arp -a -e
Address HWtype HWaddress Flags Mask Iface
10.10.1.103 ether e4:54:e8:dc:27:d9 C brq67c36339-a8
gateway ether ac:75:1d:96:b1:d4 C brq67c36339-a8
[root@controller ~]# ip neigh flush dev brq67c36339-a8
[root@controller ~]# arp -a -e -i brq67c36339-a8
Address HWtype HWaddress Flags Mask Iface
10.10.1.103 ether e4:54:e8:dc:27:d9 C brq67c36339-a8
10.10.1.8 ether 00:0b:2f:18:66:05 C brq67c36339-a8
10.10.1.8 ether 00:0b:2f:18:66:05 C brq67c36339-a8
2生成
ARP信息是同网段通讯必须的啊,它就是一个MAC和IP的对应表,默认就会自动学习生成
实例
1)添加静态映射
[root@localhost ~]# arp -i eth0 -s 192.168.1.6 ff:ee:ee:ee:ee:ee //将目标ip地址映射固定mac
[root@localhost ~]# 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
一、什么是arp
1. 什么是arp
地址解析协议(Address Resolution Protocol),其基本功能为透过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。它是IPv4中网络层必不可少的协议,不过在IPv6中已不再适用,并被邻居发现协议(NDP)所替代。
说白了,就是把通过ip地址找到设备mac地址。
2. arp有什么作用
在计算机间通信的时候,计算机要知道目的计算机是谁(就像我们人交流一样,要知道对方是谁),这中间需要涉及到MAC地址,而MAC是真正的电脑的唯一标识符。
为什么需要ARP协议呢?因为在OSI七层模型中,对数据从上到下进行封装发送出去,然后对数据从下到上解包接收,但是上层(网络层)关心的IP地址,下层关心的是MAC地址,这个时候就需要映射IP和MAC,通过ip地址找到mac地址。
二、arp命令的使用
arp的命令一般有三个用法,就是查询显示、添加记录、与删除记录,这个在我们做网络项目时经常会用到。
1. arp -a ,当你需要显示当期ip地址对应的mac地址时使用
在命令提示符中输入“arp -a”并回车;自动在缓存中,读取IP地址和mac地址的对应关系表;
2. arp -s ,当你需要手动添加一条arp记录时使用。
手工输入一条ARP项目,格式为“ARP+空格+-a+IP地址+MAC地址”;
如下图,我特意用arp -a查询了ARP记录;
其实这个命令也叫作绑定mac地址的命令,例如一个公司的网络,员工经常喜欢改自己电脑的ip地址,经常会造成ip地址混乱,无法管理,那么这个时候你只需要把它的ip地址与它电脑mac地址进行绑定,那么下次出现网络故障,就可以直接mac地址定位到那几台电脑。
3. arp -d,当你觉得某条arp记录有问题时,可以删除。
功能为:删除所有ARP记录
其实如果想彻底清空ARP列表,需要您禁止所有网络连接,否则网络数据交互过程中仍然会产生新的ARP列表。
那么有朋友会问,这三条命令会有什么用呢?
其实用途挺大的,例如,当你网络中出了问题,可能是有某些ip地址发生冲突了,mac对应的ip地址有误,那么你可以对它进行删除这条arp记录,然后重新添加新的记录,网络问题就会得到解决。
三、什么arp攻击
1. 什么是arp攻击
ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的进行。基于ARP协议的这一工作特性,黑客向对方计算机不断发送有欺诈性质的ARP数据包,数据包内包含有与当前设备重复的Mac地址,使对方在回应报文时,由于简单的地址重复错误而导致不能进行正常的网络通信。
2. arp地址如何防御
一般情况下,受到ARP攻击的计算机会出现两种现象:
不断弹出“本机的XXX段硬件地址与网络中的XXX段地址冲突”的对话框。
计算机不能正常上网,出现网络中断的症状。
这类情况,在我们监控系统中或者用户较多的网络中出现的比较多,经常会出现ip地址冲突等问题,那么如何预防呢?
对于监控或网络系统中,一旦用户较多,就需要划分vlan或者对网络进行端口隔离,避免受到arp攻击后,扩散到其它设备上,通常有以下三个方法。
(1) ARP双向绑定
在pc端上 IP+mac 绑定, 在网络设备(交换路由)上 采用ip+mac+端口绑定
网关也进行IP和mac的静态绑定。
(2) 建立DHCP服务器
ARP攻击一般先攻击网关,将DHCP服务器建立在网关上,也可采用arp过滤的防火墙。
(3) 划分安全区域
ARP广播包是不能跨子网或网段传播的,网段可以隔离广播包。VLAN就是一个逻辑广播域,通过VLAN技术可以在局域网中创建多个子网,就在局域网中隔离了广播。。缩小感染范围。 但是,安全域划分太细会使局域网的管理和资源共享不方便。
3. 出现了arp攻击后如何解决
受到arp攻击后,网络可能已经断了,时查看此对照表发现,网关的Mac地址改变了。
(1) 然后输入 arp -a
可以看到所有网关的列表,但是正常情况下,应该只有一个网关,多出来的,肯定是arp攻击发起者的电脑伪装的网关。
(2) 然后arp -d.
清除所有网关,然后你的电脑会自己找网关。
(3) 在arp -a
列出新找的网关,如果仍有多个,再继续arp -d。直到arp -a只出现一条记录、
这个列表会显示网关的IP地址和MAC地址,就是你的网关。
(4) arp -s ,再重新绑定
输入 arp -s xxx.xxx.xxx.xxx ab-cd-ef-gh-ij-kl
xxx.xxx.xxx.xxx表示网关的IP地址,ab-cd-ef-gh-ij-kl表示网关的MAC地址。