作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

目前几乎所有的应用都会跟网络打交道,所以我们了解和熟悉网络对我们后续的排错是很有必要的,我这里讲解的部分主要是我个人理解来进行讲解。
前面我们介绍了arp协议的基本情况,今天我们来介绍arp在实际运维中的相关命令和应用。
1.查看ARP信息
一般家庭都是建议路由器,所以这里会显示成网关,而31.73则是局域网里面的另外一台网络设备。
Address:这里主要是目前和本机有通信产生arp缓存的地址。
HWtype:网关设备属性(这里是以太网类型)。
HWaddress:对应机器设备的的 MAC 地址(理论全球唯一)。
Flags Mask:该条目的属性(这里是缓存系统通过 ARP 协议动态获取,重启或超时后会失效)。
Iface:通信设备,本机通过eth0网卡和其他网络设备通信。
[root@localhost ~]# arp
Address HWtype HWaddress Flags Mask Iface
gateway ether 44:f7:70:11:2b:94 C eth0
192.168.31.73 ether 0c:9d:92:c1:de:c2 C eth0增加两台和其他设备通信,再次查看arp表就会发现增两条arp记录,但是只有一条成功的获取了arp地址,失败的没有获取arp地址。
[root@localhost ~]# ping 192.168.31.47
PING 192.168.31.47 (192.168.31.47) 56(84) bytes of data.
64 bytes from 192.168.31.47: icmp_seq=1 ttl=64 time=0.190 ms
64 bytes from 192.168.31.47: icmp_seq=2 ttl=64 time=0.110 ms
--- 192.168.31.47 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.110/0.150/0.190/0.040 ms
[root@localhost ~]# arp
Address HWtype HWaddress Flags Mask Iface
192.168.31.47 ether 22:02:4d:07:19:6d C eth0
gateway ether 44:f7:70:11:2b:94 C eth0
192.168.31.43 (incomplete) eth0
192.168.31.73 ether 0c:9d:92:c1:de:c2 C eth02.常见的ARP问题
ARP 是局域网故障的重灾区,运维遇到「主机不通网、网速慢、IP 冲突」时,优先查 ARP。
#不加-n 则显示主机名
arp -n查看网关 IP 对应的 MAC 不是真实网关 MAC。笔者早期(web1.0时代)处理过很多arp攻击的情况就是一个局域网里面很多机器,如果其中一个机器主动或者被动(中毒)发起arp欺骗,其他机器的请求就可能被劫持。

服务器A正常的流量经过交换机出互联网,但是如果交换机(网关)被服务器劫持,所有发往互联网的都需要经过服务器B,服务器B把所有经过他的流量都附带附带了恶意请求,这样服务器A的就被污染。
当时的解决办法就是手动通过其他节点进入服务器手工绑定网关固定的mac地址,当然由于设备更新及网络隔离已经较少听到类似的问题。
#绑定固定arp地址
arp -s 192.168.31.1 44:f7:70:11:2b:94
#删除arp缓存
arp -d 192.168.31.732. 故障 2:IP 地址冲突
arp -n,查看冲突 IP 对应的 MAC 地址;display mac-address;思科:show mac-address-table),通过 MAC 找到对应的交换机端口,定位另一台冲突主机;如果没有权限则会比较麻烦,但是可以通过人肉识别找相互冲突的两台电脑或者服务器。
我们在介绍ARP协议的是介绍过两种网络传输协议,这两种协议在网络通信(包括但不限制于计算机网络)里面使用得很广泛。
单播是一台设备向另一台特定设备发送数据(一对一),
广播是一台设备向同一局域网内所有设备发送数据(一对所有)。