Q:在上面拓扑图中,R2和R3模拟PC的时候,R2和R3是可以互通的,但是如果将R3正常用做路由器,f0/0口还是一样的地址,但不配置路由,此时R2是ping不同R3的f0/0接口地址的,是何原因?
A:IP路由选择过程:
- R2发送一个ICMP请求,ICMP将这一有效符合递交给IP协议,IP使用其创建第一个分组,包含源IP,目的IP和值为0x01h的协议字段
- 分组创建后,IP协议判断目标IP地址位置,知道这是一个跨网段的请求,要到达远程网络,需要发送给默认网关,于是要知道网关的硬件地址,查ARP表,如果有就直接使用,如果没有则发送ARP广播请求获悉R1的f0/0接口硬件地址(用于数据帧的封装)
- 接下来是帧的组建、拆分、在R1上重组,将分组从帧中取出,交给IP处理,检查目的IP地址是否和路由器接口上的IP匹配,如果匹配直接发送,如果不匹配,查路由表,从对应接口发出去(如果不存在远程网络的路由条目,则直接丢弃该分组),找到接口后,查ARP表是否存在R3的MAC地址,如果不存在,从f1/0发送ARP广播请求,获悉R3的接口硬件地址
- R3收到请求后会响应该ARP请求,IP收到ICMP分组后,将有效负荷递交给ICMP,ICMP做出应答,然后又是分组的组建,IP同样判断这是远程子网,直接将分组递交给默认网关处理。
在R3模拟PC的时候,是由IP进行判断,如果是远程网络,则将分组递交给网关进行处理,在R3作为路由器使用的时候,IP进行判断的时候,会查目的IP是否为路由器上的某个接口的IP地址,如果不是则需要查路由表,如果没有该远程子网的路由表,则会将该分组丢弃,所以在模拟PC的时候R1和R3能互访,在R3作为路由器使用的时候,如果R3上面没有R2的网段的路由表的时候是不能互通的。
本文由 Ethan 创作,采用 知识共享署名4.0 国际许可协议进行许可。
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。