今天在总结OSPF的时候,看到有一条是这么说的“路由器双方接口要么都为手工配置地址(Numbered),要么都为借用地址(Unnumbered),否则无法建立邻居。”这里面有个借用地址的概念,问了群里的兄弟给了我一个链接,进去一看发现,从来没听说过这个概念,看完大概理解了,然后开始做实验,做了实验才知道,原来还是有不少疑问的。
环境:R1的S0/0连接R2的S0/0,R1上有一个lo0,ip为10.1.1.1/24,R1的S0/0配置成借用接口,R2的S0/0 ip10.1.1.2/24,另有lo0设置两个网段,3.3.3.3/24,4.4.4.4/24
研究:
R1上:int lo0
ip add 10.1.1.1 255.255.255.0
int s0/0
ip unnumbered interface lo0
no sh
R2上:int s0/0
ip add 10.1.1.2 255.255.255.0
no sh
int lo0
ip add 3.3.3.3 255.255.255.0
ip add 4.4.4.4 255.255.255.0 secondary
配置完成,来测试连通性,发现ping 10.1.1.2,ping不通,5个icmp包都超时了。于是到R2上直接ping 10.1.1.2,5个icmp包依然超时了。ping 3.3.3.3 和 4.4.4.4 却是通的。R1上查看sh ip int brief,地址借用已成功,状态和协议是双up的。链路都是没问题的,为什么会ping不通呢,是同网段的啊。。。怀疑是不是模拟器的问题或者地址的问题,换了100.1.1.1/24,还是不行问题依旧,奇怪了,这是为什么?如果是借用地址的问题,对R2应该不影响的啊。GNS3全部删除掉再重新建立新路由器,新连接问题依旧,看来不是模拟器的问题。
然后我把R1上的借用接口no掉,配上ip地址,把loopback口shutdown,ping 10.1.1.2,立马就通了。R2ping自己也是通的。对嘛,这样才应该是正常的。
这个问题我一定要搞明白,再次求助群里,群里的哥们再次出手相助,说试着配成ppp封装试试看。同时我又在网上找到了相关的答案,也说是封装成ppp。
听了哥们说的,就试试看呗。。。于是把配置恢复到最初,R1还是有lo0和借用接口,s0/0封装成ppp,R2的s0/0封装成ppp,再ping 10.1.1.2,通啦!!!再查看R1和R2的路由表,发现都多了一条10.1.1.0/32的主机路由。这条主机路由是哪里来的??这条主机路由是直连的。
疑问:
1、Serial口的默认封装是HDLC的,经验证,配置借用接口后,无法与对端通信,并且R2自己也ping不通自己。这是为什么?
2、封装改成ppp后,就可以与对端通信了,这是为什么?封装成frame-relay行不行的,还有什么其他封装可以适用于借用接口。
3、封装成ppp后,查看路由表多了一条10.1.1.0/32的主机路由,这条主机路由是如何产生的,跟ppp有关吗?我把所有接口都宣告进了OSPF的area 0当中。
感谢一下群里哥们的帮助与解答~~~非常感谢
另外以上问题,请达人帮忙解答。。。谢谢。