2024年5月7日发(作者:)
今天去完美面试,面试官问到我一个问题:什么情况下ospf建立邻居后,一条路由能进入路由
器的lsdb,但是不能进入路由表?
我当时思考了一下,觉得确实没有遇到过这个问题,后来回来研究了下,还有根据王淘同学的
实验结果支持,回来我又进一步进行扩展,得出以下实验结论:
两个路由器能建立ospf邻居的5要素:
1,hello和dead interval一致
2,两路由器直连
3,mtu一致
4,认证不认证或者认证方式一致
5,stub flag一致
只要满足以上5个条件,ospf就能建立邻居关系,根你路由器两边配置的网络类型无关.
通过以下实验证明:
环境说明:r1与r2 s1/1口直连,接口地址为192.168.1.0/24网段,两路由器的loopback口地址如
图.
我左边路由器r1的s1/1口我输入ipospf network broadcast把类型改为广播类型,右边路由器
r2的s1/1口我输入ipospf network non-broadcast类型,然后两边正常配置ospf,所有的接口全
部划分到区域0,由于大家是知道的,点到点和广播类型网络ospf的默认hello和dead interval
分别是10s,40s,而其他类型是30s,120s.所以邻居建不起来,但是我在右边路由器s1/1接口输入
命令,ipospf hello-interval 10 和ipospf dead-interval 40,让两边hello和dead interval时间一致
后,两路由器达到full状态.
在r1和r2上看到的结果分别如下:
由次可知,ospf两边网络类型不一致也能达到full状态.
然后我们继续做实验,还是上面那拓扑图,r1还是类型设置为广播,但是r2设置为点到点类型
(使用命令ipospf network point-to-piont),然后两边路由器依然把所有的网段都启动ospf,并且
都划分到区域0,结果是两路由器邻居关系起来了,并且形成full(因为点到点和广播类型hello
和dead interval一致).
但是在r1上和r2上看到的lsdb和路由表分别如下:
r1上:
r2上看到:
由此可以看到,r1和r2的lsdb中都有对方loopback口的网段地址1.1.1.1和2.2.2.2但是路由
表中并没有对方的网段,这应该就是面试官所提到问题的一种产生情况.
我个人推导他产生的原因是:
r1的网络类型是广播,所以要选dr和bdr,但是他认为r2的router-id大,所以r2应该为dr,他自
己为bdr,但是r2的类型是点到点,不需要dr和bdr,导致整个网络只有bdr,而没有dr接收和发
布ospf的lsa,所以相互学习不到路由.
发布评论