一、 路由引入问题
引入规划不当,会导致次优路由、路由环路等问题。
华为所有路由协议优先级表:
二、路由引入不当的问题1-次优路由
1、RTD 通过RIP 发送给RTB,RTB学习到了2.2.2.2; 2、RTD 通过RIP发送给RTC,RTC做了一个路由引入RIP,此时RTA、RTB都学到了2.2.2; 3、此时RTB共收到了2个方向的2.2.2.2路由,此时选路会根据优先级; 4、ISIS优先级15,RIP优先级100,所以最终路由发送变成了RTD-RTC-RTA-RTB-RTA-RTC-RTD,其实RTD直接到RTB就可以了,由于优先级比较大所以不是最优选路。
二、路由引入不当的问题2-路由环路
1、RTA注入外部直连路由进RTB开销为2,RTB、RTC、RTE运行OSPF协议,所以B、C、E均收到了RTA注入的直连路由2.2.2.2;
2、在RTE中引入OSPF外部路由进ISIS,RTC、RTD、RTE运行ISIS协议,所以C、D、E均收到了RTE注入的OSPF外部路由2.2.2.2;
3、在RTC中引入ISIS路由进OSPF,RTB、RTC、RTE运行OSPF协议,所以B、C、E均收到了RTC注入的ISIS路由和OSPF外部路由2.2.2.2;
4、当RTC引入ISIS进OSPF时,因为RTC、RTB、RTE都是运行OSPF协议,所以优先级比较cost,默认接口没有改开销值开销为1;
5、对于B来说收到RTA的开销值为2的2.2.2.2路由,他会把下一跳给RTC,因为这个还有个2.2.2.2开销值为1;
6、最终导致RTB的下一跳为RTC,RTC下一跳为RTD,RTD下一跳为RTE,RTE下一跳为RTB,最终导致路由环路
注:引入外部路由后,路由表中是ospf的外部类型,所以优先级都是相同的,再看cost,cost值小的为下一跳,先比较优先级再比较开销值。
三、引入问题解决方法
1、过滤:充分利用route-policy,过滤不需要、不发送的路由; 2、优先级:更改优先级 3、标签: 通过给路由打上tag标签,用于多个网段批处理
四、引入问题模拟
环路问题:
此环境,从AR5注入直连路由到AR1的,AR2注入OSPF进RIP,AR4注入RIP进OSPF,模拟环路故障,拓扑如下:
1、R5注入直连路由进OSPF:
定义ACL 2000,内容允许5.5.5.5通过 定义dire路由策略内容为匹配acl 2000 在R5的OSPF 进程1中注入直连路由并设定路由策略dire 在AR2上查看是否学习到5.5.5.5,ping是否正常,都正常说明注入成功。
R2注入OSPF进RIP: 为了模拟环路,OSPF注入也只注入5.5.5.5做测试。 定义路由策略匹配acl2000 定义acl2000 只允许5.5.5.5通过 在rip 进程中注入ospf调用路由策略dire 此时AR3可以学习到AR5的5.5.5.5,验证: 注:对于AR4来说通过AR2把OSPF引入进RIP的直连路由学习到了5.5.5.5,又通过自身OSPF学习到了5.5.5.5,这就造成了次优路径,AR4通过AR1学习到直连路由为OSPF外部路由优先级为150,通过AR2学习到的直连路由为RIP优先级为100,查看AR4的路由表针对5.5.5.5: 路由表中5.5.5.5的协议是rip优先级100,下一跳是34.0.0.3,所以此环境AR2引入OSPF影响了AR4的选路,导致次优路由出现。
把RIP引入OSPF: 定义acl2000 只允许5.5.5.5通过 定义路由策略匹配acl2000 在ospf 进程中注入rip调用路由策略dire 正常情况下AR1的下一跳应该是AR5,下一跳如果是AR4就环路了,上下都发送,查看AR1的路由表: 在AR4抓包验证: 在AR1ping5.5.5.5 发送2个包 查看抓包: 明显环路。
至此环境即出现了次优路由,也出现了路由环路,下面看看如何避免这两种问题。
五、引入问题解决
此次实验要求:
1、配置基本地址信息和路由协议; 2、R2把OSPF引入RIP; 3、R4把RIP引入OSPF; 4、R5把直连引入OSPF; 5、R3把直连和静态引入RIP,不引入/25路由; 6、避免次优路由和环路。
注:优先级高路由往优先级低路由注入时,会导致路由次优路由发生。
上图环境所述:AR5注入直连路由进OSPF称为OSPF外部路由,优先级为150,从AR1到AR2到AR3到AR4一路下来优先级都是150,在优先级相同的情况下比开销,AR1上去往23、34、5.5.5.5下一跳为14.0.0.4就是AR4,去往23网段是就造成了选路次优。 正常选路AR1去往12、23网段下一跳应该给AR2,去往34应该给到AR4。 AR5注入直连路由5.5.5.5后由AR1去往AR2,AR2注入OSPF进RIP,AR4这一条路是正常的,在AR4注入OSPF的时候做策略又把5.5.5.5发送回来导致环路,验证AR5数据库:
解决方法: 第一种方法1、filter policy在out出方向是LSD5五类,这个拓扑直看ospf部分,AR4可以看作5类,所以可以直接在AR4的OSPF进程中调用 ,在AR4注入RIP的时候把收到的5.5.5.5的路由不注入回OSPF即可避免环路。
注:filter policy引入的时候过滤最后不发,在ospf 中只能作用于5类,如果不想把路由发出去就在路由表发送前做out。
先给AR5注入外部路由,只注入5.5.5.5
查看AR5得数据库
定义ip前缀列表,注:必须添加一条空规则,不然拒绝除index10意外所有规则。>
在ospf中调用 再查看AR5的数据库: 这样5.5.5.5的路由只有AR5来注入,使用AR1 tracert一下5.5.5.5:
一站直达,因为去往5.5.5.5的下一跳就是15.0.0.5,从AR1 ping 34段,链路正常,环路解决:
第二种方法: 使用filter-policy 在引入路由时做过滤
注销AR4之前的IP前缀列表 创建新的IP前缀列表
|