拓扑准备:
设备接口配置IP地址
PCA(config)#int f0/0
PCA(config-if)#ip add 172.18.96.100 255.255.255.0
查看IP地址是否配置正确,端口是否UP
其他接口同理配置
备注:PC1和PCB是用路由器模拟PC,要现在配置模式下关闭路由功能
PCA(config)#no ip routing
第一部分:分析ARP解析过程
ARP(Address Resolution Protocol)地址解析协议(网络层):
————功能:根据IP地址获取物理MAC地址(show arp查看arp表项)
————条件1:ARP代理功能开启,思科默认开启(arp-proxy enable)
————条件2:路由表有目的段路由条目(show ip route)
先在接口下开启抓包功能
此时PCA上的ARP表项中只存在关于自己的IP地址ARP表项
这时候去ping直连同网段IP
可以看到PCA和Router1的mac地址如下
打开抓包工具,查看刚才抓到的ping报文
可以看到最开始有一个ARP解析过程:谁有172.18.96.1的MAC地址,告诉172.18.96.100
ARP询问的时候是个广播包,源mac是PCA,目的MAC是广播,全F
回复时候是个单播包,源mac是Router1,目的MAC是单播,PCA的mac地址
这时候在PCA上查看arp表项,可以看到多出一条源IP为172.18.96.1+ mac的表项
总结:ARP过程
将ARP请求广播到网络上所有主机,接受回复封装代理路由的接口MAC地址,并将IP地址和物理地址存入本机ARP缓存且保留一定时间。
ARP请求,发送的是广播包,目的MAC全为F
ARP回复,回复的是单播包,源MAC是回复方
第二部分:Ping过程
这时候PCA要去ping PCB,发现ping不通
接口抓包发现,PCA在请求PCB的ARP,没有收到ARP回复
查看Router1的路由表,没有存在192.168.225.0网段的路由
因此手工配置一条静态路由,下一跳地址指向12.2(Router1给PCA指了一条通向PCB的明路)
Router1(config)#ip route 192.168.225.0 255.255.255.0 12.12.12.2
此时依然ping不通
查看抓到的包,
发现一个ARP代理的过程:PCA请求PCB的ARP,回复的mac地址是Router1的f0/1。PCA要去跨路由器ping一个PCB,此时Router1充当的是PCA的网关的角色。(网关:A网段访问B网段必经的三层路由IP。)即Router1告诉PCA你要去访问PCB,交给我就好,剩下的事情我来处理。
以及5个没有被回复的icmp request包
分析:在另一个端PCB抓包
发现PCB收到了PCA发来ICMP,request报文。开始准备回复,却发现没有PCA的MAC地址,因此开始进行对PCA的ARP请求,但是没有收到PCA的ARP回复
不难猜到,Router2上没有去往172.18.96.0网段的路由条目。同样手工在Router2上给PCB指条通往PCA的明路
Router2(config)#ip route 172.18.96.0 255.255.255.0 12.12.12.1
这时候再去Router1和Router2之间抓包查看
此时PCA和PCB可以互通
抓包可以看到icmp request报文得到icmp reply报文的回复
由此可见,爱情需要双向奔赴,通信也是!
总结:
PC有配网关:对网关地址进行一次ARP请求,生成一条以网关地址为下一跳的默认路由(匹配所有路由)
PC无网关(即直连网段):对当前访问的目的IP进行ARP请求,以出接口的形式发包,发送数据。
ARP代理:
——————1)数据封装时为了二层的封装(ARP请求)。
——————2)代理的路由器有目的端的路由条目
——————3)代理功能开启(思科默认开启)
ICMP(Internet Control Message Protocal)网络控制报文协议:
用于在IP主机、路由器之间传递控制消息,用于检测网络痛不痛、主机是否可达、酷游是否可用等
Ping中用到的两种消息类型:
————icmp echo request
————icmp echo reply
————两个都没有or只有ICMP request,结果为 …
————UUUU:目标不可达(有回包),请求不成功。
————————————1. ACL拒绝。
————————————2. 中间路由器没有去往目标的条目
思考题:
所有设备清除ARP表项。或者所有接口shutdown 关闭 再 no shutdown 打开
Router1#clear arp-cache
为什么这次ping通前面有两个点,而不是5个感叹号呢?
答案揭晓:
第一个点,在PCA和Router1之间丢包,96.100对96.1做一个ARP解析过程
第二个点,在Router1和Router2之间丢包,12.1对12.2做一个ARP解析过程
扩展知识:
无故ARP:(当主机的地址被分配到新的地址是会执行)
用自己的IP地址作为目的IP地址,发送ARP请求,目的是检查地址重复。
ICMP重定向:
ICMP重定向过程:
PC要去访问1.1.1.1,而默认网关为A时
————1)PC将ICMP包发给默认网关A
————2)A发现符合ICMP重定向条件
————3)将ICMP包发往B,且发送ICMP重定向给主机
ICMP重定向触发条件:
————1.重改接口接受的ICMP包又从同一个接口发送出去
————2.源IP地址和下一跳地址是同网段