RIP与OSPF双点双向重分布
- 格式:doc
- 大小:338.50 KB
- 文档页数:5
关于重分布的几个重点:
1、关于重分布进distance vector协议的时候,除了静态与connected 不需要手工指定metric以外,其余的需要手工指定,否则会认为是无穷大的路由通告。
2、重分布进OSPF的路由默认为OE2类型,send metric 为20,BGP除外。
3、在ISIS中分为level 1 和level 2的路由,前者称为内部路由缺省度量为0,0~63 而后者为外部路由,64~128度量,缺省为64 ,如果默认不指定的话,那么就是level2的路由,所以在做重分布的时候,向level 1重分布的时候需要指定level的类型
在cisco路由器上,做RIP与OSPF双点双向重分布的时候,由于度量值的原因,会导致次优路由的出现。
如上面的图,基本配置就这些,当在RIP与OSPF中重分布各自协议后,R2与R1之间运行RIP 收到13.1.1.0/24 和1.1.1.1/32 度量值为120,由于R3也重分布进RIP的路由,经过R4传递给R2 13.1.1.0/24和 1.1.1.1/32 的路由度量值为110,同一条路由条目,管理距离低的进路由表,R3也同样收到R4传递过来的12.1.1.0/24 和1.1.1.1/32 ,那么也会优于之前从RIP学到的路由,这样当R3想到达12.1.1.0网段的时候,经过的不是
R3---R1,而是R3----------R4----------R2,饶着过来,解决的办法,可以通过Distirbute-list 过滤掉、通过distance 修改AD
方法一:Disribute-list
R2上:access-list 1 permit 34.1.1.0 0.0.0.255
access-list 1 permit host 4.4.4.4
router ospf 1
disribute-list 1 in
R3上 access-list 1 permit 24.1.1.0 0.0.0.255
access-list 1 permit host 4.4.4.4
router ospf 1
distribute-list in
这时候在看下路由表
各自的路由域都正常收到路由,没出现次优路由的问题。
分析下思路:造成这个原因是因为双ASBR的原因,彼此传递给对方的路由,优于RIP的路由,所以出现了问题,而用ACL permit OSPF只能存在的路由,在OSFP中调用。比如R2,在OSPF中只需要收到34.1.1.0 网段和4.4.4.4的路由,而24.1.1.0 是直连不算在内,用ACL 抓出来,在进程下的in方向过滤掉ACL中没有的路由。但是,缺点是,一旦网络一多,需要写的ACL也会非常多。在卷一中,它的案例还会给出在RIP中也用ACL过滤掉不需要的路由,但是感觉在OSPF中调用就够了。
方法二、distance :
RIP中 R2:distance 109 12.1.1.1 0.0.0.0
R3:distance 109 13.1.1.1 0.0.0.0
造成这个原因就是因为管理距离次于OSPF造成的,虽然把从邻居发送过来的RIP路由,管理距离都改成109,比110小,从而解决这个问题
OSPF: R2/R3:disatance ospf external 121
修改各自进程下收到的外部路由,管理距离改为121,这里注意的是,可能有些书上使用的是ACL 匹配出来,然后distance 121 3.3.3.3 0.0.0.0 1 在链路状态协议中写的是指定的RID,因为是链路状态协议,在database中显示这些LSA的信息 RID标识的为ASBR,所以只需指定RID就行了。而在链路状态协议中后面指定的是直连的邻
居。 0.0.0.0 用于精确匹配这个指定的邻居或者RID。
关于利用tag过滤,这个拓扑中是解决不了的,如果换做是卷一Jeff所说的那个例子,就可以用Tag技术来解决。
distance的应用比较广泛:比如就上面那个图,如果全是ospf域的话,R1上有两个网段,那么可以在R4上看到的一定是负载均衡了,如果某些情况下要求去往R1的第一个网段走R3----R1,第二个网段走R2----R1,除了PBR之外,还可以利用distance 来解决,用两个ACL抓取这两个网段,用两条disatance 109 2.2.2.2 0.0.0.0 1(acl) distance 109 3.3.3.3 0.0.0.0 2 (acl) 这样由于管理距离不同,所以就没有负载均衡了。
另外一种应用可能是路由迁移,在一种公司合并的情况下,由于对方使用的是H3C的设备运行OSPF,而这边是cisco的EIGRP,老板希望在不中断原本的业务上,平滑的过度为全是用OSPF,使得全网通信,方便以后扩展。这时候需要做的是,在cisco设备上,全部运行ospf,当在database中能看到所有条目的时候,利用distance 来改变AD,使得OSPF的AD比EIGRP少,当全部路由器执行完毕后,可以No 掉EIGRP的进程,这样完成过度机制,注意的是不能在eigrp中执行distance,因为它执行了会导致邻居的重置,这样业务就会中断,而OSPF的改变,并不影响。
distribute-list 的应用,在多进程下可以过滤不需要的路由,这个无论是距离矢量还是链路状态都实用,但是在同一路由域内,距离矢量使用distribute-list不会出现什么问题,而链路状态而只能调用在in方向,并且过滤的是路由表而不是database中的LSA,Out
方向不准调用的原因是,同一区域内的LSA必须保持同步,所以在发出这些LSA的时候,不允许过滤。 In方向的执行是在进入database之后,通过SPF算法想放入路由表的时候被过滤掉,所以被过滤的是路由表中的,而不是LSA, OSPF的LSA过滤只能在ABR或者ASBR 上进行,ASBR就不说了,ABR上过滤的话,需用用到prefix,它只支持调用prefix 。在进程下 area 0 filter-list prefix test out | in :它的方向取决于你ABR上连接了哪些区域,如果为in方向的话,那么匹配了prefix中的条目,就不会进入area 0里面,而out方向,就是匹配这条条目的路由,不会向外发送。
EQ R1------------------R2-----------------------R3
area 1 area 0
R1上通告了1.1.1.1的路由,R3的database中有关于1.1.1.1 路由的3类LSA