文章目录
重发布
在一个网络中,若运行多种路由协议或者相同协议的不同进程;因为协议之间不能直接沟通计算,进程间也是独立进行转发和运算的,所以需要重发布来实现路由共享。
条件
- 必须存在ASBR。ASBR同时连接两种协议或同时运行相同协议的两个进程,同时学到两边的路由,之后进行路由共享
- 关注种子度量值:由于不同协议的度量计算逻辑不同,重发布后,无法直接使用原协议的开销值。故在将A协议重发布到B协议时,ASBR将不携带A协议原先所定的开销值,而是在共享到B协议时,由ABSR在路由中添加一个新的起始度量值
规则
- 将A协议重发到B协议时,是在ASBR上的B协议进行配置
- 将A协议发布到B协议上,是将ASBR上所有通过A协议学到的及ASBR宣告在A协议的所有直连网段的路由,全部共享到B协议中。
点和向
- 点即两个网路中的ASBR的数量,有单点、双点、多点
- 向即重发布的方向,只将A协议重发布到B协议即单向发布,A协议和B协议互相重发布即双向重发布
单点重发布配置
重发布可以将A协议发布到B协议中,也可以将直连、静态路由发布到B协议中。
将OSPF协议重发布到RIP中
- 将OSPF协议共享到RIP中,RIP在重发布获取其他协议的路由后,会将其种子度量值默认设置为0,种子度量值可以修改。
[r1]rip 1
[r1-rip-1]import ospf 1 --- 将本地通过OSPF学到的路由导入到RIP中
[r1-rip-1]default-cost 2 --- 在ASBR进程中修改默认种子的度量值,这个修改将影响所有往RIP重发布的路由
[r1-rip-1]import-route ospf 1 cost 3 --- 在ASBR上执行重发布时修改种子度量,这个修改仅影响本次重发布的路由
将静态路由重发布到RIP中
- 将ASBR上静态路由共享到RIP中
[r1-rip-1]import-route static
- 缺省路由无法直接通过重发布导入到B协议中。
- 种子度量值也默认为0。修改方法同上
将直连重发布到RIP中
- 将ASBR上未宣告到RIP的接口宣告到RIP中
[r1-rip-1]import-route direct
- 直连导入的默认种子度量值0。
- 若ASBR进行了A->B的重发布,同时进行了直连路由到B的重发布,并且,里面包含相同的路由信息,则优先选择直连重发布的路由信息而不看开销值。
将RIP重发布到OSPF中
[r1-ospf-1]import-route rip 1
- OSPF重发布获取其他协议路由时,默认会将其种子度量值设为1,度量值类型设备类型2。
- 修改种子度量和开销值类型的方法
[r1-ospf-1]default cost ? ---- 在ASBR的OSPF进程中,修改默认种子度量值
INTEGER<0-16777214> Cost value
[r2-ospf-1]default type ? ---- 在ASBR的OSPF进程中,修改默认的开销值类型
INTEGER<1-2> Type value
- 注意:以上两种方法修改将影响所有导入OSPF进程中的路由的初始种子度量值和开销值类型。
[r1-ospf-1]import-route rip 1 cost ? --- 在重发布时修改种子度量
INTEGER<0-16777214> 24-bit cost value
[r1-ospf-1]import-route rip 1 type ? --- 在重发布时修改开销值类型
INTEGER<1-2> Type value
- 注意:以上两种方法,仅影响本次重发布进来的路由的种子度量值和开销值类型。
将静态路由重发布到OSPF中
[r1-ospf-1]import-route static
- 缺省路由无法直接通过重发布导入到B协议中。
[r1-ospf-1]default-route-advertise --- 该命令的实质是将路由表中的缺省路由重发布到OSPF进程中。
- 种子度量值也默认为1,开销值类型为类型2。修改方法同上
<r1>display ospf 1 routing --- 查看OSPF进程路由信息
将直连重发布到OSPF中
[r1-ospf-1]import-route direct
- 将ASBR上未宣告到OSPF中的直连重发布到OSPF中
- 种子度量值也默认为1,开销值类型为类型2
- 若ASBR进行了A->B的重发布,同时进行了直连路由到B的重发布,并且,里面包含相同的路由信息,则优先选择直连重发布的路由信息而不看开销值。
路由策略
- 在单点重发布中,两个网络的通信仅依靠一个ASBR,虽不会出现选路不佳的状况,但可靠性不高,一旦ASBR瘫痪,则两个网络就为无法通信,所以一般使用双点或多点重发布,但由于重发布后会删除原协议的开销值而添加种子度量,这可能导致选路不佳甚至是环路的情况。所以我们需要使用路由策略来干涉选路。
- 路由策略:在控制层流量转发的过程中,截取流量,之后,修改流量中的参数或直接不转发,最终影响路由器路由表的生成,以达到干涉选路的目的。
路由反馈
- 在上图中配置双点双向重发布,先在R2上配置重发布,配置完成后R2的环回接口路由信息就发布到了OSPF域中,R4和R3都会学到这条路由信息,此时R3即通过RIP学到了R2环回的路由信息,也通过R2学到了R2环回的路由信息,由于OSPF的优先级小于RIP,所以R3就会将R2发来的路由信息加表;然后在R3上配置重发布,R3也会将通过OSPF学到的R2环回重发布到RIP中,此时R1可以收到R2发来的关于R2环回的路由信息,也可以收到R3发来的关于R2环回的路由信息,由于默认情况下这两条路由信息的开销值都是1,所以R1到R2环回会选择负载均衡,造成选路不佳。
- 默认RIP和OSPF协议若进行双点重发布,由于两者的优先级不同,故第一台ASBR的重发布动作结束后,将影响其他ASBR设备的路由表。使得路由可能被传回到源协议,发生路由回馈,A协议的路由重发布到B协议后,又被B协议重发布回A协议。
- 所以需要消除路由回馈,华为设备的消除方法是将OSPF协议内部路由的默认优先级设计为10,但是重发布进来的路由(5类/7类LSA学到的)的优先级设置为150。150的优先级大于所有IGP协议的优先级。通过这种方法,可以避免路由回馈的产生。
- 注意:OSPF的环回接口默认是以主机路由在OSPF域内传递,但如果ASBR将本地宣告在OSPF域内的环回接口重发布到RIP中时,重发布的掩码为24位,该条路由信息又从会RIP域回馈到OSPF域内,R3就会认为到3.3.3.0/24找R2,R2认为到3.3.3.0/24找R1,而R1认为到3.3.3.0/24找R3,形成了环路。
控制层流量与数据层流量
- 控制层流量就是路由协议发送路由信息是产生的流量。
- 数据层流量就是设备访问目标地址时产生的流量。
抓取流量
想修改流量的参数或直接不转发流量都需要先抓取控制层面的流量,这里我们介绍两种抓取控制层面流量的方法。
通过ACL列表进行抓取
- ACL可以抓取控制层面的流量,但主要用来抓取数据层面的流量,由于通配符的设计,导致其无法精确匹配控制层流量。
[r1]acl 2000
[r1-acl-2000]rule permit source 192.168.1.0 0.0.0.255
- 上述命令可以抓取前24位是192.168.1.0的路由信息,掩码可能是24,也可以是25、26等
通过前缀列表进行抓取 – IP-Prefix
[r1]ip ip-prefix aa permit 192.168.1.0 24 --- ip ip-prefix 列表名 动作(permit/deny) 网络号 掩码
- 前缀列表默认是以10为步调自动添加,便于插入和删除规则。
[r1]display ip ip-prefix aa --- 查看前缀列表aa中已存在的规则,
- 前缀列表的匹配规则:自上而下,逐一匹配,一旦匹配上将按照该规则执行,而不再向下匹配。末尾隐含拒绝所有。
[r1]ip ip-prefix aa index 15 permit 192.168.3.0 24 --- 通过序号插入规则
[r1]undo ip ip-prefix aa index 15 --- 通过序号删除规则
- 前缀列表不仅可以精确匹配掩码,还可以进行范围匹配
[r1]ip ip-prefix aa permit 192.168.3.0 24 less-equal 28 ---- less-equal:小于等于,匹配路由的网络位范围在24 - 28位之间
[r1]ip ip-prefix aa permit 192.168.4.0 24 greater-equal 28 --- greater-equal 大于等于
这里前面是24位网络位,后面是大于等于28位网络位,前后矛盾,此时又如何匹配
- 前后如果矛盾,则见按照后面的为准,前面的数字含有将不再代表掩码长度,而代表前24位为固定位。
[r1]ip ip-prefix aa permit 192.168.5.0 24 greater-equal 28 less-equal 30 --- 匹配前24位固定,掩码长度在28到30之间的路由信息
[r1]ip ip-prefix aa permit 192.168.6.0 24 greater-equal 28 less-equal 28 --- 匹配前24位固定,掩码长度必须为28位的路由网段。
[r1]ip ip-prefix aa permit 0.0.0.0 0 greater-equal 32 -- 匹配所有主机路由
[r1]ip ip-prefix aa permit 0.0.0.0 0 less-equal 32 -- 匹配所有路由
[r1]ip ip-prefix aa permit 0.0.0.0 0 --- 匹配缺省路由
路由策略
抓取到流量后,就需要对这些流量进行操作,可以是修改其中的一些参数,也可以直接过滤该流量。接下来我们使用如下拓扑
该拓扑中,各个路由器都有一个环回接口,依次为1.1.1.1/24、2.2.2.2/24……,左边运行RIP,右边运行OSPF,在执行了双点双向重发布后,由于原度量在重发布后被洗,所以导致R4到RIP域内的所以网段都是负载均衡,R1到OSPF域内的所有网段都是负载均衡,此时我们要通过路由策略来干涉选路。
[r1]display ip routing-table protocol rip
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : RIP
Destinations : 5 Routes : 9
RIP routing table status : <Active>
Destinations : 5 Routes : 9
Destination/Mask Proto Pre Cost Flags NextHop Interface
2.2.2.0/24 RIP 100 1 D 12.1.1.2 GigabitEthernet
0/0/0
3.3.3.0/24 RIP 100 1 D 13.1.1.2 GigabitEthernet
0/0/1
RIP 100 1 D 12.1.1.2 GigabitEthernet
0/0/0
4.4.4.4/32 RIP 100 1 D 13.1.1.2 GigabitEthernet
0/0/1
RIP 100 1 D 12.1.1.2 GigabitEthernet
0/0/0
24.1.1.0/24 RIP 100 1 D 13.1.1.2 GigabitEthernet
0/0/1
RIP 100 1 D 12.1.1.2 GigabitEthernet
0/0/0
34.1.1.0/24 RIP 100 1 D 13.1.1.2 GigabitEthernet
0/0/1
RIP 100 1 D 12.1.1.2 GigabitEthernet
0/0/0
RIP routing table status : <Inactive>
Destinations : 0 Routes : 0
[r4]display ip routing-table protocol ospf
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
Destinations : 4 Routes : 7
OSPF routing table status : <Active>
Destinations : 4 Routes : 7
Destination/Mask Proto Pre Cost Flags NextHop Interface
2.2.2.0/24 O_ASE 150 1 D 24.1.1.1 GigabitEthernet
0/0/0
O_ASE 150 1 D 34.1.1.1 GigabitEthernet
0/0/1
3.3.3.0/24 OSPF 10 1 D 34.1.1.1 GigabitEthernet
0/0/1
12.1.1.0/24 O_ASE 150 1 D 24.1.1.1 GigabitEthernet
0/0/0
O_ASE 150 1 D 34.1.1.1 GigabitEthernet
0/0/1
13.1.1.0/24 O_ASE 150 1 D 24.1.1.1 GigabitEthernet
0/0/0
O_ASE 150 1 D 34.1.1.1 GigabitEthernet
0/0/1
OSPF routing table status : <Inactive>
Destinations : 0 Routes : 0
RIP的merticin和merticout
- 在思科设备中,merticin和merticount也被称为偏移列表,该策略只能应用在距离矢量协议上,且只能增加开销值,链路状态型协议是无法使用的。这里我们使用该策略使R1去往24.1.1.0/24选择通过R2,而不是负载均衡
[r1]ip ip-prefix aa permit 24.1.1.0 24 ---- 抓取24.1.1.0/24流量
[r1]interface g 0/0/1 --- 偏移列表是在接口上配置,增加接口发出或收到的某条路由信息的开销值
[r1-GigabitEthernet0/0/1]rip metricin ip-prefix aa 10 --- rip metricin(入方向)/metricout(出方向) ip-prefix 列表名 添加的开销值
- 上述命令就是在R1上添加在g 0/0/1口收到的关于24.1.1.0/24的路由信息的开销值,也可以在R3上的 g 0/0/0口做出方向的配置,R1收到相同网段的路由信息,选择开销值小的。
- 增大R2发往R1的关于34.1.1.0/24的路由信息的开销值,使R1去往34.1.1.0/24选择通过R3,可以在R2发送路由信息时增加开销值,也可以在R1收到路由信息时增加开销值。
[r2]interface g 0/0/0
[r2-GigabitEthernet0/0/0]rip metricout ip-prefix aa 10
filter-policy:过滤列表
- 和偏移列表不同,过滤列表会直接将流量干掉,路由器不会转发该流量,这次我们过滤掉R3发往R4关于12.1.1.0/24的路由信息,使R4去往12.1.1.0/24时选择通过R2。
[r3]ip ip-prefix bb deny 12.1.1.0 24 --- 注意:过滤列表在抓取流量是使用的动作是拒接
[r3]ip ip-prefix bb permit 0.0.0.0 0 less-equal 32 ---- 前缀列表末尾隐含拒接所有,所以我们需要添加一条允许所有的规则
[r3]ospf 1 --- 过滤列表是在进程中配置,影响该进程的收发路由
[r3-ospf-1]filter-policy ip-prefix bb import --- filter-policy ip-prefix 列表名 import(入向)/outport(出向)
-
上述命令使OSPF在接收路由信息时,拒接接收前缀列表所拒接的路由
-
注意:过滤列表可以在距离矢量型协议上使用,也可以在链路状态型协议中使用。但是,在链路状态型协议中使用时,在一个区域内,过滤列表是没有办法过滤拓扑信息,所以只能在入方向进行调用(过滤后,并不是将拓扑信息过滤掉,自己可以收到拓扑信息,但不能将该路由加表,依然会将该拓扑信息发给其他邻居),如果想在出方向进行调用,可以在ABR或者ASBR上针对三类,五类,七类LSA进行过滤。
Route-policy:路由策略
-
在前面两种路由策略,偏移列表只能在距离矢量协议上使用,且只能增加开销值;过滤列表只能将路由过滤,过滤掉路由虽然使得选路更佳,但少了一条备份路径;所以我们要介绍一种更强大、更灵活的路由策略:Route-policy,它可以过滤流量,也可以修改路由的各种参数,如开销值、度量类型、标记位等等。
-
这里我们使用如下拓扑进行演示
-
要求:将RIP重发布到OSPF中,然后对R1的四个环回网段做策略,其中拒绝1.1.1.0/24的路由信息、将2.2.2.0/24路由信息的度量类型改为类型1、将3.3.3.0/24路由信息即增加开销值由修改度量类型、将4.4.4.0/24路由信息的tag修改为666,在R2配置重发布时调用策略,在R3上观察结果。
# 首先抓取流量,由于对四个路由的策略不同,所以我们需要四个列表,这里我们使用两个ACL和两个前缀列表
[r2]acl 2000
[r2-acl-2000]rule permit source 1.1.1.0 0
[r2]acl 2001
[acl-2001]rule permi source 2.2.2.0 0
[r2]ip ip-prefix aa permit 3.3.3.0 24
[r2]ip ip-prefix bb permit 4.4.4.0 24
# 配置路由策略
[r2]route-policy aa deny node 10 --- route-policy 策略名字 大动作(permit/deny) node 序号
# 该命令进入策略列表,详细编写序号为10的规则
- 创建一个名为aa的route-policy,route-policy是一个列表,可以承载多个策略,第一次配置该命令不仅会创建route-policy,而且还会进入规则视图;deny是该条规则的大动作,deny即拒接某路由信息,如果大动作是permit,即允许通过某路由信息,还可以有一些小动作来修改路由的参数;node即该规则在策略列表的编号,route-policy是自上而下,逐一匹配,一旦匹配上将按照该规则执行,而不再向下匹配,我们一般也是以10为步调手工添加node。
[r2-route-policy]if-match acl 2000 --- 声明该规则需要匹配的流量
- 由于序号10的大动作为deny,进入规则后只需匹配流量,即拒绝该路由
[r2]route-policy aa permit node 20 --- 编写aa列表中的序号为20的规则
[r2-route-policy]if-match acl 2001 --- 匹配ACL2001所抓取的流量
[r2-route-policy]apply cost-type type-1 --- apply 小动作 --- 将ACL2001所抓取的路由改为类型一
- 如果大动作是permit,在规则视图里还可以配置小动作,可以配置多个小动作。
[r2]route-policy aa permit node 30
[r2-route-policy]if-match ip-prefix aa
[r2-route-policy]apply cost 10 --- 修改aa抓取的路由信息的开销值
[r2]route-policy aa permit node 40
[r2-route-policy]if-match ip-prefix bb
[r2-route-policy]apply cost-type type-1 --- 将bb抓取的路由信息修改为类型一
[r2-route-policy]apply tag 666 --- 将bb抓取的路由信息的tag修改为666
- 策略中如果存在多个小动作或者匹配规则,则他们之间将按照“与”关系来执行。而规则之间则按照匹配原则,满足“或”关系即可。
在重发布中进行调用
[r2-ospf-1]import-route rip 1 route-policy aa
ROUTE-POLICY的配置指南
1,即便要拒绝一个流量,在抓取时也使用允许,之后在路由策略中进行拒绝。
2,在一条规则中,若没有进行流量匹配的动作,则代表匹配所有流量;如果没有相应的应用(小动作),则仅对匹配的流量执行大动作即可;因此,大动作为允许的空表,代表允许所有。