您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > 静态路由指定下一跳为出站接口和ip地址在ethernet和点对点链路中的异同
静态路由指定下一跳为出站接口和ip地址在ethernet和点对点链路中的异同(原创)作者:仲万江我们探讨一下两种不同的配置其通信的过程,我们先讨论下一跳为自己出站接口的情况:当R1尝试去ping通2.2.2.2的时候,需要封装ICMP数据包,但是不知道2.2.2.2的MAC地址的话就无法完成封装,会出现encapsulationfailed!此时需要通过arp(同一个子网)或者代理arp(跨网段)获取2.2.2.2的MAC地址,由于把2.2.2.0/24看做一个直联网段,所以会直接封装一个目的地址为2.2.2.2/24,目的MAC为全F的arp数据帧,R2接收到此arp广播帧,由于目的ip是跨网段而且路由器关闭了代理arp,那么此帧解封装后被丢弃。R1没能获取2.2.2.2的mac地址,所以一直都是encapsulationfailed!自然不会ping通。此时如果从R2ping1.1.1.1却是能通的,与上面类似,第一个icmp包封装失败,然后R2发arp广播,由于R1未关闭代理arp,所以arp广播帧被解封装后R1发现目的ip在自己路由表中的loopback0,于是重新封装发送给1.1.1.1,但是由于此时不知道1.1.1.1的MAC地址,所以R1会向loopback0发送一个目的MAC为全F目的ip为1.1.1.1的arp广播,1.1.1.1收到后会发送给R1一个单播告诉它自己的Mac地址,然后R1就可以根据得到的MAC地址和1.1.1.1,把前面arp广播帧解封装后的数据进行封装发送给1.1.1.1,1.1.1.1.收到后再对R2作出回应,这样R2就知道了1.1.1.1的MAC地址和ip地址,就可以正常封装ICMP数据包,从而可以ping通。下面我们验证一下基本配置:R1(config)#interfaceLoopback0ipaddress1.1.1.1255.255.255.0interfaceFastEthernet0/0ipaddress10.1.1.1255.255.255.0R1(config)#iproute2.2.2.0255.255.255.0FastEthernet0/0R2(config)#interfaceLoopback0ipaddress2.2.2.2255.255.255.0interfaceFastEthernet0/0ipaddress10.1.1.2255.255.255.0R2(config)#iproute1.1.1.0255.255.255.010.1.1.1R2(config)#intf0/0R2(config-if)#noippro测试:R1#shiprouteCodes:C-connected,S-static,R-RIP,M-mobile,B-BGP…………………………Gatewayoflastresortisnotset1.0.0.0/24issubnetted,1subnetsC1.1.1.0isdirectlyconnected,Loopback02.0.0.0/24issubnetted,1subnetsS2.2.2.0isdirectlyconnected,FastEthernet0/010.0.0.0/24issubnetted,1subnetsC10.1.1.0isdirectlyconnected,FastEthernet0/0可以看出R1把2.2.2.0看做的是直连的网段R1#sharpProtocolAddressAge(min)HardwareAddrTypeInterfaceInternet10.1.1.1-c003.1148.0000ARPAFastEthernet0/0Internet10.1.1.225c002.1148.0000ARPAFastEthernet0/0可以看到R1未学习到2.2.2.2的MAC地址R1#ping2.2.2.2Typeescapesequencetoabort.Sending5,100-byteICMPEchosto2.2.2.2,timeoutis2seconds:.....Successrateis0percent(0/5)不通,正如我们的猜测下面切换到R2:R2#shiprouteCodes:C-connected,S-static,R-RIP,M-mobile,B-BGP……………………Gatewayoflastresortisnotset1.0.0.0/24issubnetted,1subnetsS1.1.1.0[1/0]via10.1.1.12.0.0.0/24issubnetted,1subnetsC2.2.2.0isdirectlyconnected,Loopback010.0.0.0/24issubnetted,1subnetsC10.1.1.0isdirectlyconnected,FastEthernet0/0R2#sharpProtocolAddressAge(min)HardwareAddrTypeInterfaceInternet10.1.1.11c003.1148.0000ARPAFastEthernet0/0Internet10.1.1.2-c002.1148.0000ARPAFastEthernet0/0R2#ping1.1.1.1Typeescapesequencetoabort.Sending5,100-byteICMPEchosto1.1.1.1,timeoutis2seconds:!!!!!Successrateis100percent(5/5),round-tripmin/avg/max=20/56/128ms发现R1-2.2.2.2不通,但是R2-1.1.1.1却是通的,进一步验证我们的想法R2#下面我们在R2的f0/0打开代理arpR2(config)#intf0/0R2(config-if)#ipproR2(config-if)#ipproxy-arpR2(config-if)#endR2#*Mar100:59:58.691:%SYS-5-CONFIG_I:ConfiguredfromconsolebyconsoleR2#ping1.1.1.1Typeescapesequencetoabort.Sending5,100-byteICMPEchosto1.1.1.1,timeoutis2seconds:!!!!!Successrateis100percent(5/5),round-tripmin/avg/max=20/67/124msR2#sharpProtocolAddressAge(min)HardwareAddrTypeInterfaceInternet10.1.1.121c003.1148.0000ARPAFastEthernet0/0Internet10.1.1.2-c002.1148.0000ARPAFastEthernet0/0打开代理arp之后R2基本没什么可见的变化下面在R1上测试:R1#ping2.2.2.2Typeescapesequencetoabort.Sending5,100-byteICMPEchosto2.2.2.2,timeoutis2seconds:.!!!!Successrateis80percent(4/5),round-tripmin/avg/max=16/52/76ms发现R1ping2.2.2.2.的时候第一帧封装失败,后面全通,和我们分析的是一致的R1#ping2.2.2.2Typeescapesequencetoabort.Sending5,100-byteICMPEchosto2.2.2.2,timeoutis2seconds:!!!!!Successrateis100percent(5/5),round-tripmin/avg/max=20/53/100ms再查看R1的arp表,发现有了变化,R1已经学习到了2.2.2.2的MAC地址,证实了我们的猜想是正确的。R1#sharpProtocolAddressAge(min)HardwareAddrTypeInterfaceInternet2.2.2.221c002.1148.0000ARPAFastEthernet0/0Internet10.1.1.1-c003.1148.0000ARPAFastEthernet0/0Internet10.1.1.253c002.1148.0000ARPAFastEthernet0/0其实以上过程全程都是可以抓包的,做实验测试的时候我也都是亲自试过的,wireshark上可以看到进出的情况:关掉R2代理arp之后在R1ping2.2.2.2在R2f0/0抓包:开启R2代理arp之后在R1ping2.2.2.2在R2f0/0抓包:接下来我们看一下下一跳为下一跳路由器的接口地址的情况:依然是上面的拓扑图,我们把配置做稍微的改动,R1(config)#noiproute2.2.2.0255.255.255.0f0/0R1(config)#noiproute2.2.2.0255.255.255.010.1.1.2同时我们打开R2的代理arp功能R2(config-if)#ippro在R1ping2.2.2.2:R1#ping2.2.2.2Typeescapesequencetoabort.Sending5,100-byteICMPEchosto2.2.2.2,timeoutis2seconds:.!!!!Successrateis80percent(4/5),round-tripmin/avg/max=24/42/76msR1#sharpProtocolAddressAge(min)HardwareAddrTypeInterfaceInternet10.1.1.1-c003.1148.0000ARPAFastEthernet0/0Internet10.1.1.21c002.1148.0000ARPAFastEthernet0/0下面关掉R2的代理arp,然后在R1ping2.2.2.2:R1#sharpProtocolAddressAge(min)HardwareAddrTypeInterfaceInternet10.1.1.1-c003.1148.0000ARPAFastEthernet0/0R1#ping2.2.2.2Typeescapesequencetoabort.Sending5,100-byteICMPEchosto2.2.2.2,timeoutis2seconds:.!!!!Successrateis80percent(4/5),round-tripmin/avg/max=20/60/96msR1#sharpProtocolAddressAge(min)HardwareAddrTypeInterfaceInternet10.1.1.1-c003.1148.0000ARPAFastEthernet0/0Internet10.1.1.20c002.1148.0000ARPAFastEthernet0/0抓包发现:以上可以看出,R1-2.2.2.2,目的ip是2.2.2.2,目的MAC却是R2的f0/0接口的MACR1#sharpProtocolAddressAge(min)HardwareAddrTypeInterfaceInternet10.1.1.1-c003.1148.0000ARPAFastEthernet0/0Internet10.1.1.27c002.1148.0000ARPAFastEthernet0/0比较两个过程,发现当下一跳为下一跳路由器接口ip地址的时候,关不关代理arp都一样,因为根本就没用到,目的ip是2.2.2.2目的MAC是R2f0/0的Mac,R2的f0/0作为了2.2.2.2的网关,全权代理了所有到2.2.2.2的数据。自始至终R1都没有学习到2.2.2.2.MAC地址
本文标题:静态路由指定下一跳为出站接口和ip地址在ethernet和点对点链路中的异同
链接地址:https://www.777doc.com/doc-3771693 .html