路由注入(引入)问题分析
路由注入会产生环路,次优路径等问题
1. 引入环路问题
RT3上rip注入进ospf。RT4上ospf注入进rip。
正常情况下,RT2访问任何路由器是没有问题的,比如:访问35.0.0.5(RT5),因为是从RT3引入的rip,所以会下一跳是23.0.0.3->35.0.0.5
但是,如果这边的RT1引入了1.1.1.1直连会出现什么问题?
(acl过滤12.0.0.0.避免引入直连时把ospf宣告的网段也引入)
RT3在访问1.1.1.1时会先比较,发现ospf区域内引入的1.1.1.1优先级是150,rip引入的1.1.1.1优先级是100,所以会优先从rip区域绕路到1.1.1.1
但是,到达RT2时,RT2发现直连引入的1.1.1.1优先级是150,但是,rip里注入的1.1.1.1又从RT3引入回来了,并且优先级也是150,于是RT2决定比较开销,又发现开销也相同都是1,于是又决定比较内部开销,发现下一跳是RT1的开销大于下一跳是RT3的开销,因为连接RT1的链路类型是串行,开销是48,以太网只有1,所以又发回了RT3,于是形成了环路,直到TTL值为0
解决方法:
通过router-policy识别带有特殊tag的路由,在RT3引入rip里的1.1.1.1时,通过tag进行过滤,ospf内只接受从RT1引入的直连1.1.1.1
2.次优路径问题
环路问题解决后,RT2可以正常访问1.1.1.1和其他路由了,但是RT3在访问1.1.1.1时,正常情况从23.0.0.3->12.0.0.1更加方便,但是,因为RT3作为ASBR,又是翻译者,他身上既有ospf,也有rip的路由表,他判断出1.1.1.1从RT2走,优先级是150,而从RT5走优先级是100,所以他绕了一大圈到达1.1.1.1
解决方法:
通过修改外部路由优先级,使ospf内引入的1.1.1.1优先级小于rip里引入的1.1.1.1
这里的 preference ase route-policy pre 150 ,router-policy是一个整体,若router-policy里的优先级修改值没有匹配上,则继续使用一开始默认的150,当然后面的150也是可以修改的
如果两个翻译者都采用单点双向引入,对于RT2来说会产生选路的次优路径问题,比如,RT2要到35.0.0.5,从RT3上走比较方便,同理到45.0.0.5,从RT4走比较方便,因为生产环境拓扑里肯定还有很多跳和路由,同理RT4也是
解决方法:
修改cost,可以修改RT3的export放向的cost,因为LSA5是可以过滤的,
也可以修改RT2的import方向的cost值,在最优路由表生成之前,对路由进行修改,
或者也可以通过修改引入的路由的开销