利用路由策略解决双点单向引入的环路问题

环路问题的产生——双点双向引入优先级不同的路由协议

我们知道路由选路的原则是

  • 1.最长掩码匹配原则
  • 2.路由协议的管理距离
  • 3.度量值(cost)

这就造成了我们在进行双电双向引入不同的路由协议,由于路由协议优先级的差别可能会产生环路。本实验将通过以下拓扑详细分析环路的产生原因及其解决办法。主要用到的方法是路由策略

实验拓扑

利用路由策略解决双点单向引入的环路问题_第1张图片

实验需求如下:

某公司内部网络环境部署规划如图所示,公司网络中有两部分路由区域,一部分运行OSPF,另外一部分运行RIP。你作为公司的网络管理员,请根据需求完成项目部署。

           1.为了方便管理员管理设备,请按图示修改设备名称;

           2.根据各网段IP地址规划、配置相应接口IP(例如:R1接口设置为192.168.12.1,R2则为192.168.12.2),并测试直连网段的连通性。R1、R7上分别存在三条外部条目用环回口表示(用Loopback 1,2,3写三个环回口);

          3.在R1,R2上运行OSPF,且属于区域1,在R2,R3,R4,R5上运行OSPF,且属于区域0,并通告相应网段,实现OSPF区域网络互联(配置OSPF时注意手动指定RID,如R1为1.1.1.1)。在R4,R5,R6,R7上运行RIPv2,并通告相应网段,实现RIP区域网络互联;

    前三部分为基础配置,具体的配置方法会附在后面的基础配置文档里,在配置的时候可以直接导入。

           4.根据业务需求、现需要将外部条目引入并进行相关的属性调整,具体需求如下:

          1.在R1上将外部条目导入到对应的OSPF条目中,但是只导入/24掩码的条目同时将导入的条目cost修改为5(限定方法:只写一条ip ip-prefix且route-policy只能写一个节点,然后通过import-route修改cost);

配置思路:由于方法限定,所以在写路由策略的时候不需要写apply,只需要先写前缀列表锁定目标,在策略里抓取,然后在引入路由的时候应用即可。

配置命令:

ip ip-prefix L-R1 permit 192.168.0.0 16 greater-equal 24 less-equal 25
route-policy L-R1 permit node 10
if match ip-prefix L-R1
q
ospf 1
import-route direct cost 5 route-policy L-R1

在R2上查看实验现象:

  从上图中我们可以看到引入的外部路由优先级为150,开销为5。 

          2.在R7上将外部条目导入到对应的RIP条目中,在R6上查看导入的三条外部路由条目度量值分别为3、4、5(限定方法:通过ACL抓取目标路由信息、route-policy修改度量值);

配置命令:(本实验所有的配置命令,脚本会附在文末)

配置ACL
Basic ACL 2000, 1 rule
Acl's step is 5
 rule 5 permit source 10.1.1.0 0.0.0.255 (8 matches)

Basic ACL 2001, 1 rule
Acl's step is 5
 rule 5 permit source 10.1.2.0 0.0.0.255 (5 matches)

Basic ACL 2002, 1 rule
Acl's step is 5
 rule 5 permit source 10.1.3.0 0.0.0.255 (2 matches)
配置策略
Route-policy : L-R7
  permit : 10 (matched counts: 8)
    Match clauses : 
      if-match acl 2000
    Apply clauses : 
      apply cost 2 
  permit : 20 (matched counts: 7)
    Match clauses : 
      if-match acl 2001
    Apply clauses : 
      apply cost 3 
  permit : 30 (matched counts: 3)
    Match clauses : 
      if-match acl 2002
    Apply clauses : 
      apply cost 4 
引入时调用
 import-route direct route-policy L-R7

 实验现象:(eNSP上可能会出现开销值没改变的情况,保存配置后重启路由器即可,要对自己的配置有自信。)

利用路由策略解决双点单向引入的环路问题_第2张图片

实验现象对比说明:

在R1和R7的两次引入中,我们用了两种不同的方法,在R1的引入中,我们直接在引入的时候更改为5。但是在R7的路由引入时为了让R6上的开销为3,4,5。我们在做策略的时候做了cost减一操作,这是因为不同路由协议间路由引入时度量值不同造成的。

  • OSPF引入外部路由:OSPF引入外部路由师,默认采用Type2的方式,即不计算外部的开销,但是引入时使用Type1时则计算路由域外部的开销
  • 一般来说,OSPF中引入RIP协议的时候,默认的外部开销为1,RIP中引入其他的外部路由协议时,默认的内部开销为0
  • 对于ISIS协议来说,内部的开销默认条件下为10,引入的外部路开销到ISIS路由域的时候会在默认值上叠加一个64的外部开销值

           3.在R6上通过Filter-policy和ACL进行过滤,让R5和R4不学习到10.1.3.0的条目;

实验配置

ACL抓取目标
Basic ACL 2000, 2 rules
Acl's step is 5
rule 5 deny source 10.1.3.0 0.0.0.255 (2 matches)
rule 10 permit (17 matches)
在RIP里进行filter-policy过滤
filter-policy 2000 export(只能做出方向过滤)

实验现象

利用路由策略解决双点单向引入的环路问题_第3张图片

可以看到10.1.3.0已经被过滤

         4.在R5上将OSPF的路由直接引入到RIP中,同时在R4上将RIP的条目直接引入到OSPF中,在R7上tracert 192.168.1.1和在R1上tracert 10.1.1.1,分析网络中产生的环路及原因;

实验现象

利用路由策略解决双点单向引入的环路问题_第4张图片

     我们可以看到R7在tracert192.168.1.1时产生了环路

利用路由策略解决双点单向引入的环路问题_第5张图片

      R1tracert10.1.1.1时没有,这是为什么呢?

     通过对拓扑进行分析,结合前面所说的路由选路原则可知。

在R4,R5上做引入之后;在R4上,因为同时从OSPF的外部路由和RIP出获得192.168.1.0的路由,优先级分别为150,100,所以R4选择rip获得的路由。即R4去往192.168.1.0的路径为R6-R5-R3。即次优路径;

然后R3上,因为从OSPF外部路由获得的192.168.1.0的开销为5,而从R4处获得的外部路由条目192.168.1.0的路由开销为1,所以R3去往192.168.1.0的路由是R3-R4;因此环路产生了

     那么如何解决这个问题呢?主要思路如下:

   1.在R4上更改RIP的优先级,使其大于150

   2.使用路由过滤,过滤掉来自R6发给R4关于192.168.0.0/24网段的更新

     5.使用Route-policy(只写一个节点)和使用最少条目的ACL在R4上过滤相关的路由信息避免路由环路。环路解决后,在R4上通过Tracert访问R1环回口条目,查看路径会产生次优路径,并进行分析;

实验配置

配置ACL,锁定目标
Basic ACL 2000, 2 rules
Acl's step is 5
rule 5 deny source 192.168.0.0 0.0.255.255 (2 matches)
rule 10 permit (88 matches)
配置路由策略抓取目标
Route-policy : R6-R4
  permit : 10 (matched counts: 88)
    Match clauses : 
      if-match acl 2000
应用
import-route rip 1 route-policy R6-R4

实验现象:

利用路由策略解决双点单向引入的环路问题_第6张图片

次优路径产生的原因:在R4,R5上做引入之后;在R4上,因为同时从OSPF的外部路由和RIP出获得192.168.1.0的路由,优先级分别为150,100,所以R4选择RIP获得的路由。即R4去往192.168.1.0的路径为R6-R5-R3。即次优路径;

我们在上一步过滤掉来自192.168.0.0/16网段的更新只在引入的时候阻隔,实际上仍然有将更新发送给R4。所以R4在访问192.168.1.1时仍然存在次优路径

            6.在R4上修改路由优先级避免次优路径,之后测试R4通过Tracert访问R1环回口条目没有次优路径;

实验配置:

配置ACL
acl number 2000  
 rule 5 deny source 192.168.0.0 0.0.255.255 
 rule 10 permit 
配置路由策略
Route-policy : R4-R3
  permit : 10 (matched counts: 36)
    Match clauses : 
      if-match acl 2001
    Apply clauses : 
      apply preference 160 
应用
 preference route-policy R4-R3

  实验现象:

利用路由策略解决双点单向引入的环路问题_第7张图片

           7.通过Traffic-policy实现以下需求:

             R1使用192.168.1.1去访问R7的10.1.1.1的时候,通过R4去访问;

             R1使用192.168.2.1去访问R7的10.1.2.1的时候,通过R5去访问。

配置命令

[AR3]acl 3000
[AR3-acl-adv-3000]rule permit ip source 192.168.1.1 0 destination 10.1.1.1 0
[AR3]acl 3001
[AR3-acl-adv-3000]rule permit ip source 192.168.2.1 0 destination 10.1.2.1 0
创建流分类:
Traffic classifier R3-R4
If-match acl 3000
Traffic classifier R3-R5
If-match acl 3001
创建流行为:
Traffic behavior R3-R4
Redirect ip-nexthop 192.168.34.4
Traffic behavior R3-R5
Redirect ip-nexthop 192.168.35.5
策略路由关联流分类,流行为:
Traffic policy R3R4
Traffic R3-R4 behavior R3-R4
Traffic R4-R5 behavior R4-R5
接口调用:
Int g0/0/0
Traffic-policy R3R4 inbound

实验现象:

利用路由策略解决双点单向引入的环路问题_第8张图片

附加思考题:

先在R7上将物理接口G0/0/0关闭再打开,再测试第八步需求,分析现象。

现象:会产生环路

产生环路的原因:断掉R7的物理口,R6并不知道这一情况,仍然向R4和R5发送更新报文。更新报文中的路由信息仍然又R7的条目。这些路由信息会被发送给ospf,最后转发给R6,但是下一跳不可达,此时会产生环路。

解决方法:先不要将ospf引入到rip中,等待rip收敛完成再进行引入

 

实验配置脚本链接如下:

https://pan.baidu.com/s/1lv3bD6GvB4ZXMA9jxeOFdw 提取码:1hay

 

你可能感兴趣的:(计算机网络)