拓扑描述:
公司A网络拓扑如图所示,现根据 要求做如下配置:
R2、R3和R4运行OSPF,R3、R4和R5运行ISIS;
实验要求:
1、将与R5直连的网段10.0.x.0/24引入到ISIS 中
2、配置静态路由引入
①R1与R2之间使用静态路由实现互通
②将网络172.16.x.0/24引入到ospf中,ospf域只能学习到172.16.0.0/24和172.16.2.0/24的路由。使用filter-policy和ACL命令,实现最优配置
3、在R3和R4上实现路由的双向引入
4、配置策略优化路由
①当网络发生变化时,避免环路发生
②使R4能通过最优路由访问172.16.X.0/24,使路径最优
5、R3和R4在ospf域中,将网络10.0.X.0/24汇总为10.0.0.0/16,并充分避免环路
6、进一步优化网络,配置需求如下:
①来自10.0.0.0/24和10.0.1.0/24的流量访问182.16.X.0/24时经由R3
②来自10.0.2.0/24的流量访问172.16.X.0/24时,经由R4
配置如下:
首先配置好底层的IP,ospf和ISIS
1、将与R5直连的网段10.0.x.0/24引入到ISIS 中
配置完后,可在R3或R4上进行查看:
2、配置静态路由引入
①R1与R2之间使用静态路由实现互通
②将网络172.16.x.0/24引入到ospf中,ospf域只能学习到172.16.0.0/24和172.16.2.0/24的路由。使用filter-policy和ACL命令,实现最优配置
可在R3或R4上查看是否有172.16.0.0/24和172.16.2.0/24的路由
3、在R3和R4上实现路由的双向引入
• 通过路由协议的相互引入之后,R4到网络172.16.X.0/24出现了次优路径。
产生次优路径主要原因是:R3将OSPF路由先行分发入ISIS区域,于是R4从OSPF和ISIS中同时学到了172.16.X.0/24的路由,因为OSPF外部路由的优先级为150,而ISIS的优先级为15,所以R4就选择了ISIS路由前往172.16.X.0/24网段,于是产生了次优路由。
4、配置策略优化路由
①当网络发生变化时,避免环路发生
可以使用Tag实现对双点双向引入路由的控制,从而避免环路。
如图所示,对于ospf到ISIS中的路由,在R3上标记为Tag=100;在R4上标记为Tag=200
对于ISIS到ospf中的路由,在R3上标记为Tag=300;在R4上标记为Tag=400
同时,在R3上拒绝标记为100和300的路由
在R4上拒绝标记为200和400的路由
R3上的配置:
R4上的配置 :
最后调用策略,重新进行双向引入。
【注意】使用Tag标记仅仅是为了发生故障时,避免路由环路,并不能消除次优路径。
②使R4能通过最优路由访问172.16.X.0/24,使路径最优。
【分析】次优路径主要是因为双点导入时,R3/R4中的某一台路由器同时从两侧都得到了172.16.X.0/24的路由,但因为ISIS的路由优先级低于OSPF的外部路由优先级(越小越优),导致R3/R4其中一台选择了次优路由。要解决此问题,需修改OSPF的外部路由条目的优先级,只要使OSPF_ASE路由的优先级小于ISIS路由的优先级,就可以解决此问题了。
考虑到合理性的问题,不建议将OSPF_ASE路由的优先级设置的比OSPF内部路由优先级perference(10)还小,此处取OSPF_ASE的优先级为12。
可以现在R2上将引入的静态路由打上标记,方便直接抓取:
在R3/R4上进行ospf外部优先级的修改:
查看R4/R3的路由表,发现到达172.16.X.0/24的路由下一跳为R2,恢复正常
5、R3和R4在ospf域中,将网络10.0.X.0/24汇总为10.0.0.0/16,并充分避免环路
首先,R3/R4在ospf域对10.0.X.0/24的路由进行汇总
• 当仅仅进行路由汇总,发现存在两个问题。第一个问题,R5学习到了该汇总的路由;第二个问题,在R2 ping 一个不存在的地址时产生环路,即路由黑洞。
• 第一个问题产生原因,主要是R3和R4学习到对方的汇总后,再引入到ISIS域中产生的。此处,R3首先进行OSPF汇总配置,通过传递给R4。R4将该OSPF汇总路由引入到ISIS,通告给了R5。
• 第二个问题产生原因,是因为R2上面有2条等价的10.0.0.0/16的路由,下一跳分别为R3和R4。当tracet的端口号发生变化的时候,tracert报文UI被发送给R3或R4。
(1)tracert报文发给R4时:R4晚于R3进行的ospf路由汇总,所以R4只有一条R3通告的ospf聚合路由,所以R4对于10.0.0.0/16,下一跳为R2,形成环路。
(2)tracert报文发送给R3时:R4生成ospf聚合路由后。通过R2通告给R3;R3生成ospf聚合路由后,通过R2传给R4,R4将该ospf聚合路由引入到ISIS,通过R5通告给R3。所以R3会收到两条16位掩码的路由,通过比较优先级,R3会优选ISIS,下一跳为R5。R5的下一跳为R4。而R4晚于R3进行的ospf路由聚合,所以R4有R3通告的ospf聚合路由,所以R4对于10.0.0.0/16,下一跳为R2,形成环路。
• 为了解决上述问题,我们需要保证R3和R4既不能学习对方产生的汇总路由,又不能将该路由引入到ISIS路由域,所以,我们只需在R3和R4上把他们学习到对方的汇总路由过滤即可。
在R3/R4上增加过滤策略,不从ospf接收特定的汇聚路由。保证该汇聚路由不再重新导入到ISIS路由域。避免环路。
6、配置策略路由(PBR)
①来自10.0.0.0/24和10.0.1.0/24的流量访问172.16.X.0/24时经由R3
②来自10.0.2.0/24的流量访问172.16.X.0/24时,经由R4
【注意】需要在R5上配置 ip local policy-based-route R3/4 。该命令应用的策略只对路由器本地发起的数据包起作用。如果不是本地发起的数据包,需要做策略路由的话,可以使用QOS。
在R5上进行结果的检验:
【扩展】:举一个例子,要求来自172.16.0.0/24的流量在访问10.0.X.0/24的路由经由R3;
来自172.16.2.0/24的流量在访问10.0.X.0/24的路由经由R4;
同理,在R2上先对这两个流量使用ACL分别进行抓取:
在R2上使用policy-base-route:
观察是否起作用:
可以看到明显这块的policy-base-route没有起作用
所以,这里在R2上使用QOS来改变下一跳,并应用在 R2 的 0/0/0 的入接口方向:
测试结果: