分析ARP
ARP协议:ARP(Address Resolution Protocol,地址解析协议)是根据IP地址获取数据链路层地址的一个TCP/IP协议。ARP是IPv4中必不可少的一种协议,它的主要功能是:
1、将IP地址解析为MAC地址;
2、维护IP地址与MAC地址的映射关系的缓存,即ARP表项;
3、实现网段内重复IP地址的检测。
ARP的基本功能与分析(上述两点)
配置AR1与AR2的IP地址
<Huawei>sys
[Huawei]sys AR1
[AR1]int gi 0/0/0
[AR1-GigabitEthernet0/0/0]ip add 192.168.1.1 24
<Huawei>sys
[Huawei]sys AR2
[AR2]int gi 0/0/0
[AR1-GigabitEthernet0/0/0]ip add 192.168.1.2 24
然后AR1去pingAR2,并抓包
[AR1]ping 192.168.1.2
PING 192.168.1.2: 56 data bytes, press CTRL_C to break
Reply from 192.168.1.2: bytes=56 Sequence=1 ttl=255 time=70 ms
Reply from 192.168.1.2: bytes=56 Sequence=2 ttl=255 time=30 ms
Reply from 192.168.1.2: bytes=56 Sequence=3 ttl=255 time=30 ms
Reply from 192.168.1.2: bytes=56 Sequence=4 ttl=255 time=20 ms
Reply from 192.168.1.2: bytes=56 Sequence=5 ttl=255 time=20 ms
--- 192.168.1.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 20/34/70 ms
分析ARP报文
AR1先发送了ARP的request报文,观察方框部分可见是一个广播报文,且源MAC地址是AR1的GE0/0/0口,在观察箭头部分发送方IP地址和MAC地址是AR1的GE0/0/0口的IP地址,接收方IP地址是AR2的GE0/0/0口地址,目的地MAC地址由于不知道是全0
再观察ARP的reply报文
看方框部分由此可见是单播报文(MAC地址的第8个bit为0代表支持单播,1代表组播),源MAC地址是AR2的GE0/0/0,目的MAC地址是AR1的GE0/0/0,再观察箭头部分,发送方的MAC地址与IP地址都是AR2的GE0/0/0,接收方的MAC地址与IP地址是AR1的GE0/0/0
此时我们观察一下AR1和AR2的arp缓存表
[AR1]dis arp
IP ADDRESS MAC ADDRESS EXPIRE(M) TYPE INTERFACE VPN-INSTANCE
VLAN/CEVLAN PVC
------------------------------------------------------------------------------
192.168.1.1 00e0-fcb7-129c I - GE0/0/0
192.168.1.2 00e0-fca5-80bb 16 D-0 GE0/0/0
------------------------------------------------------------------------------
Total:2 Dynamic:1 Static:0 Interface:1
[AR1]
[AR2]dis arp
IP ADDRESS MAC ADDRESS EXPIRE(M) TYPE INTERFACE VPN-INSTANCE
VLAN/CEVLAN PVC
------------------------------------------------------------------------------
192.168.1.2 00e0-fca5-80bb I - GE0/0/0
192.168.1.1 00e0-fcb7-129c 16 D-0 GE0/0/0
------------------------------------------------------------------------------
Total:2 Dynamic:1 Static:0 Interface:1
[AR2]
都有了对方的缓存,这样AR1就可以把目的MAC地址封装进ICMP报文里了,同时AR2在回复AR1的ICMP也可以把AR1的MAC地址封装进去
ARP表的有效期是180s,超时要重新发起ARP请求
ARP的第2个功能(无辜ARP【也叫免费ARP】):检测IP地址是否冲突
清除AR1的GE0/0/0配置后抓包再重新配置IP地址
[AR1]int gi 0/0/0
[AR1-GigabitEthernet0/0/0]und
[AR1-GigabitEthernet0/0/0]undo ip add
[AR1-GigabitEthernet0/0/0]
[AR1-GigabitEthernet0/0/0]ip add 192.168.1.1 24
[AR1-GigabitEthernet0/0/0]
我们看方框部分由此可见是一个广播报文,在看箭头部分,发送的IP地址和接收端IP地址都是同一IP地址,以检测该IP地址是否已使用;无回复报文,由说明可正常使用;Target MAC是缺省字段用全0表示