不同的OSPF进程互相重分发
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
不同OSPF 进程之间的重分发
我们为什么需要在不同的OSPF 进程之间进行充分
发呢?
@过滤OSPF 路由
1、过滤“域内”路由:
一般情况下,我们是没有办法过滤域内路由的;因为在同一个OSPF区域中,计算域内路由使用的是1类LSA或者2类LSA。这些LSA在同一个区域中必须是相同的,为了实现构建一个完整的区域拓扑。属于邻接关系的两个路由器之间的数据库中的1类LSA和2类LSA必须是完全相同的;
如果想过滤的话,我们可以使用分发列表,作
用于将路由条目放入路由表的时候。
除此之外,我们还可以在同一个区域中,运行不同的OSPF进程,然后在不同的进程之间实现重分发,这样一来的话。虽然是在同一个区域,但是不同的OSPF进程之间的路由互相学习的时候会看做是不同
的路由,到了对方的进程中,是作为外部路由来出
现的,此时我们就可以在同一个区域中过滤之前的那种所谓的“O ”的路由了;其实现在已经变换成了" 外部路由"之间的过滤了;
2、过滤O IA 路由:
与其我们通过不同的OSPF进程来划分同一个区域,从而导致在重分发的过程中实现路由的过滤。还不如我们将同一个区域划分成不同的区域,这样的话,原来是与同一个区域的路由,现在学习时候就变成了O IA 的路由。此时此刻,我们可以在ABR 上实现3 类LSA的过滤;
我们可以理解ABR的功能:
@将非骨干区域中的内部路由转发到骨干区域中去;@将骨干区域中的内部路由以及从其他非骨干区域学习的域间路由
转发到其他的非骨干区域;
3、过滤外部路由;
因为到目前为止,我们还不可以实现5 类LSA 的过滤。如果想过滤外部路由的话,我们也可
以通过在OSPF内部路由上运行不同的OSPF进程,然后在进程之间实现重分发;
@划分OSPF 域;
要么出于管理的目的或者在“重分发点”上控制路由的角度来考虑,我们将一个完整的OSPF路由域通过不同的OSPF进程来划分,都是一个很正常的实现方案;此时,我们将不同的OSPF进程看做是完
全不同的“两个协议”。通过不同的OSPF进程学习到的路由在被一个路由处理的时候,不是比较他们
的路由的类型,而是通过AD比较出来的;
缺点:
通过这种方式实现了一个OSPF路由域的划分。不同的OSPF进程之间,我们可以看成是不同的OSPF路由域,那么学习路由的话,就只能通过不同进程之间的重分发。但是这样一来,一个OSPF 进程之间的不稳定性,也会通过 5 类LSA 的形式
传递到另外一个OSPF进程去;
解决方案:
所以在这样的情况下,我们最好的解
决方案不是在两个不同的OSPF 进程之间实现重分发;
我可以通过BGP协议来实现路由的传递以及管理。
因为BGP协议非常的稳定,并且在接收到频繁抖动的路由的时候呢,BGP有一个“惩罚机制”,这样一来的话,就可以将那些频繁抖动的路由不放入路由表,从而也就不会传递出来了;减小路由翻滚造成的影响;
@整合不同的协议域;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~
各种情况下的“不同OSPF进程之间的重分发”
@单点情况下的“不同 OSPF 进程重分发”
Router ospf 1
Redistribute ospf 2 subnets
!
Router ospf 2
Redistribute ospf 1 subnets
在这种单点重分发情况下,不会出现什么问题的;@ 多点单向重分发
拓扑描述:
@ A 与 B 通过 OSPF 1 收到内部路由 N ;
@在 A 上将OSPF 1 重分发进入到 OSPF 2 ;
@在 B 上将OSPF 1 重分发进入到 OSPF 2 ;
出现的问题:
容易出现次优路径,比如在Router- A 上去往网络N:packet -----> ospf 2 ----> B ----> ospf 1 ----> C !
Router-A
Router ospf 2
Redistribute ospf 1 subnets
!
Router-B
Router ospf 2
Redistribute ospf 1 subnets
!
路由分析:
此时我们在 A \ B 上看到路由N 属于内部路由;通过重分发之后,
Router-A通过OSPF 2 从Router-B学习到了一个路
由N,属于外部路由;
Router-B通过OSPF 2 从Router-B 学习到了一个路由N,属于外部路由;
此时,我们只看Router-A :
通过OSPF 1 学习到一个内部路由N ,AD=110;
通过OSPF 2 学习到一个外部路由N,AD=110;
对于不同的OSPF的进程学习过来的路由,我们可以看成是“不同的路由协议”之间学到的路由,
那么此时,我们在比较这样的两种路由的时候呢,只比较AD;小者优先!
但是对于OSPF而言,内部路由与外部路由的AD是
相同的。
那在Router-A上计算该路由时,是内部路由呢,还
是外部路由呢?
答案:此时就看Router-A是首先从哪个OSPF进程学习到的相应的LSA;
一旦收到之后,就会用它来计算路由,然后放入路由表中。即使再从其他OSPF 进程收到
表示同样路由的
一个LSA,那么也不会将该LSA计算出来的路由放入路由表,除非之前路由表中的哪个
路由条目失效了;
解决方案:
我们将Router-A 与Router-B上从OSPF 2 学习过来的外部路由的AD更改成大于从OSPF 1 学习过来的内部路由;
Router-A:
Router ospf 2
Redistribute ospf 1 subnets