HCNP Routing&Switching之路由引入导致的问题及解决方案

  前文我们了解了路由引入相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15359902.html;今天我们来讨论下由于路由引入所导致的问题以及怎么避免此类问题的解决方案;

  各路由协议在IP路由表中的默认优先级

  提示:以上是各路由协议在ip路由表中的优先级;我们知道对于路由器来说,它最终依靠的是ip路由表来转发数据;对于去往同一网络的路由,优先级数字越小,表示优先级越高;优先级越高,对应也就表示路由越优先;即对应路由优先存放在路由表;如果优先级相同,则此时才会比对开销,开销越小的路由,对应路由优先存放在ip路由表中,即在数据包转发选路时,优先选择开销小的路由;如果优先级、开销都一样,则两个路由对应的链路,负载分担对应网络流量;

  路由引入导致的次优路由

  提示:如上图所示,对于2.2.2.2这个网络的路由,首先RTD通过RIP向RTC和RTB发送,对应RTC和RTB都会通过RIP学习到对应路由信息;此时如果我们在RTC上把RIP的路由引入至isis中,那么对应2.2.2.2的路由会随之被引入之isis网络中;对于RTB来说,此时它既可以通过RIP学习到达2.2.2.2的路由,同时也可以通过ISIS学习到达2.2.2.2的路由;由于isis路由协议的优先级要高于RIP,所以RTB的路由表中只会存在ISIS学习到达2.2.2.2的路由;即RTB要想和2.2.2.2通信,它需要走RTB--->RTA--->RTA--->RTC--->RTD,很显然没有RTB--->RTD路径短;所以此时就会产生次优路由;

  解决次优路由方案-->利用路由过滤

  提示:解决类似次优路由的方法,我们可以在RTB上通过路由策略,将对应引入的路由过滤掉;这样一来RTB就不会通过ISIS学习到引入的路由,对应也就不会产生次优路由;

  解决次优路由方案-->调整路由协议优先级

  提示:如上图所示,我们还可以通过修改ISIS路由协议的优先级,从而来影响RTB上路由表中的路由条目;我们把RTB上ISIS的优先级调整至大于RIP默认优先级100即可解决次优路由;或者我们调整RIP优先级至小于ISIS默认优先级15也行;

  路由引入导致的路由环路

  提示:如上图所示,首先我们在RTA上将2.2.2.2的路由引入之OSPF中,并将对应开销更改为2,此操作会导致RTB、RTC、RTE通过ospf5类LSA学习到2.2.2.2的路由,对应路由的优先级为150,开销为2;我们在RTE上将ospf路由引入之ISIS中,此操作会导致RTD通过ISIS学习到达2.2.2.2的路由,优先级为15,开销为1(默认种子度量值为1),同时RTD也会通过LSP包向RTC更新路由;如果此时我们在RTC上将isis进程中的路由再次引入至ospf中,此时对应2.2.2.2的路由会随之被引入至opsf进程,其优先级为150,开销为1;此时RTB收到优先级相同,开销要小于RTA发送的LSA,此时RTB的路由表中就只会存放RTC发送到LSA更新,并计算对应路由存放在ip路由表中;这样一来RTB要访问2.2.2.2网络,此时路由环路就产生了;首先RTB访问2.2.2.2网络,它会把数据包发送至RTC,而不会发送至RTA,原因是RTC发送的LSA中对应路由的开销要小于RTA发送的LSA开销要小;所以对于RTB来说,它去往2.2.2.2的路由,其下一跳为RTC;对应RTC去往2.2.2.2的下一跳为RTD,RTD去往2.2.2.2的下一跳为RTE,RTE去往2.2.2.2的下一跳为RTB;最终直到对应数据包的TTL值减为0以后,对应数据包才会停止;

  解决路由环路方案-->利用路由过滤避免环路

  提示:路由环路形成最主要的原因是我们把引入的路由再次引入至原路由协议;我们可以通过路由策略将对应引入路由(原路由协议已经存在的路由),再次引入时将其过滤掉即可;如上图所示,我们可以在RTC上再次引入路由时,直接将原ospf中已经存在的2.2.2.2的路由过滤掉即可;

  解决路由环路方案-->调整路由协议优先级避免环路

  提示:我们知道路由引入的必要条件是对应路由必须存在于对应路由器的路由表中才可以执行路由引入;如果通过调整优先级将对应路由不存在路由表中即可解除环路;对应能影响RTC路由表中的信息,我们可以调整ISIS优先级至大于ospf外部路由默认优先级150即可;调整以后,对应RTC通过ISIS学习到的路由,就不会存放于路由表中,因为RTC通过ospf学习到达外部路由其优先级为150,对应通过isis学习到达路由优先级为160,所以RTC的路由表只会存放优先级略小的路由条目;这样一来RTC收到去往2.2.2.2的路由,其下一条为RTB,而RTB收到去往2.2.2.2的下一跳为RTA,RTA和2.2.2.2为直连;最终环路被破坏;

  实验:如下拓扑,通过配置路由引入,实现全网互通

  R1的配置

sys
sys R1
int g0/0/0
ip add 12.0.0.1 24
int g0/0/1
ip add 13.0.0.1 24

rip 1 
ver 2
net 12.0.0.0
net 13.0.0.0
View Code

  R2的配置

sys
sys R2
int g0/0/0
ip add 12.0.0.2 24
int g0/0/1
ip add 24.0.0.2 24

rip 1
ver 2
net 12.0.0.0

ospf 1 router-id 2.2.2.2
area 0
net 24.0.0.2 0.0.0.0
View Code

  R3的配置

sys
sys R3
int g0/0/0
ip add 13.0.0.3 24
int g0/0/1
ip add 34.0.0.3 24

rip 1
ver 2
net 13.0.0.0

ospf 1 router-id 3.3.3.3
area 0
net 34.0.0.3 0.0.0.0
View Code

  R4的配置

sys
sys R4
int g0/0/0
ip add 24.0.0.4 24
int g0/0/1
ip add 34.0.0.4 24
int s4/0/0
ip add 45.0.0.4 24

ospf 1 router-id 4.4.4.4
area 0
net 24.0.0.4 0.0.0.0
net 34.0.0.4 0.0.0.0
net 45.0.0.4 0.0.0.0
View Code

  R5的配置

sys
sys R5
int s4/0/0
ip add 45.0.0.5 24
int lo 1
ip add 5.5.5.5 32

ospf 1 router-id 5.5.5.5
area 0
net 45.0.0.5 0.0.0.0
View Code

  在R5引入直连路由5.5.5.5至ospf中

  验证:在ospf路由器上,查看路由表,看看对应路由器是否学习到5.5.5.5的路由?

  提示:可以看到ospf路由器都可以通过ospf学习到R5注入的直连路由5.5.5.5,对应路由的优先级为150,开销为1;此时R2、R3、R4都能正常和5.5.5.5通信;

  在R2上将ospf路由注入至RIP中

  验证:查看R3的路由表,看看对应5.5.5.5的路由下一条会是R1还是R4?

  提示:可以看到在R2上将ospf路由引入至RIP以后,对应R3的路由表中5.5.5.5的路由就从原来的ospf进程学习变为RIP学习到的,其原因是RIP的优先级要高于ospf外部引入优先级,所以在路由表中RIP学习到的路由优先ospf外部路由;从R3的路由表来看,此时次优路由就产生了;此时R3要想访问5.5.5.5,此时数据包会先发给R1--->R2---->R4----R5;

  验证:用tracert命令测试,看看R3到达5.5.5.5是怎么走的?

  提示:从上面的过程来看,可以明确知道R3访问5.5.5.5的流量首先发送给R1,然后在发送给R2,后面R4没有到达R1的路由,所以后面就不通;

  在R3上修改RIP优先级,避免次优路由

  提示:可以看到在R3上修改了RIP的优先级为160以后,对应5.5.5.5的路由的下一跳由原来的R1变为了R4;

  验证:在R3上用tracert命令测试去往5.5.5.5对应数据包走向

  提示:可以看到此时R3可以正常和5.5.5.5通信,对应数据包走向是R3<--->R4<--->R5;

  删除R3优先级调整

  在R2上新建路由策略,拒绝5.5.5.5的路由

  调用路由策略

  验证:查看R3的路由表,看看对应去往5.5.5.5的路由下一条是否有变化?

  提示:可以看到,我们在R2上通过路由策略过滤路由也可以避免次优路由的产生;、

  删除R2上的策略路由和acl

  在R3上将RIP路由引入至ospf中

  验证:查看R4的路由表,看看对应5.5.5.5的路由下一跳是否有变化?

  提示:可以看到我们在R3上将RIP进程路由引入至ospf以后,原来R4通过R5发送的5类LSA学习到5.5.5.5的路由,其下一跳从原来的45.0.0.5变为了34.0.0.3;在ospf中s4/0/0接口开销为48大于g0/0/1口开销,所以ospf认为从g0/0/1口学习到5.5.5.5的路由更优;

  验证:在R1或R2或R3或R4上任意台路由器上,用tracert测试到达5.5.5.5的路由走向

  提示:可以看到此时R1去访问5.5.5.5,对应数据包在R2、R4、R3、R1链路上来回跑,从上面的现象可以断定此时路由出现了环路;

  在R3上通过修改RIP优先级来避免环路

  提示:可以看到在R3上修改了RIP的优先级以后,对应去往5.5.5.5的路由下一跳由13.0.0.1变为了34.0.0.4;

  验证:查看R4的路由表,看看对应去往5.5.5.5的路由下一跳是否有变化?

  提示:可以看到此时R4到达5.5.5.5的下一跳也变为了R5;这是因为此时R3引入rip路由中就没有5.5.5.5的路由(因为在R3上RIP的优先级为160,而通过R4 这边学习到达5.5.5.5的路由优先级为150,所以此时路由表中的5.5.5.5的路由不是和RIP相关,所以把rip路由引入至ospf时,对应5.5.5.5的路由不包含其中);这样一来环路就破坏了;

  验证:在R1、R2、R3或R4任意一台路由器上测试去往5.5.5.5,看看对应网络是否还会有环路呢?

  提示:可以看到4个路由器都可以正常和5.5.5.5通信,并且环路也没有了;

  在R3上删除优先级调整,新建路由策略过滤5.5.5.5的路由

  调用策略之前R4去往5.5.5.5的下一跳

  调用路由策略进行路由过滤

  验证:查看R4的路由表,看看去往5.5.5.5的路由下一跳是否变化?

  提示:可以看到此时R4的路由去往5.5.5.5的下一跳为R5;这意味着环路被破坏;

  验证:在R1或R2或R3或R4上用tracert命令测试去往5.5.5.5的路由是否可以正常通信?

  提示:可以看到R3能够和5.5.5.5正常通信,这说明路由环路已经被破坏;但是R3和5.5.5.5的通信是次优路由;

  在R3调整RIP优先级解决次优路由

  提示:可以看到在R3上调整了RIP的优先级以后,对应次优路由没有了;对应环路也没有产生;

  总结:通过上述实验可以看到,路由引入主要容易产生次优路由和路由环路两大问题,这两个问题都可以修改路由协议优先级或使用路由策略过滤路由来避免次优路由和路由环路;

posted @ 2021-10-02 23:58  Linux-1874  阅读(1328)  评论(0编辑  收藏  举报