一、重发布(路由引入)
1、背景:
一个网络拓扑中存在多种不同的路由协议,为了使多种不同的路由协议间能相互通信,出现了路由引入
为啥会存在多种不同的网络?
例如:OSPF由于区域架构的限制,最多只支持三级架构,这时肯定需要不只一个路由协议
当ospf的区域划分到各县区的时候,骨干区域已经不能和非骨干区域相连,区域规划失败,对于这种四级的场景,至少需要跑两个协议,比如可以在县区网络和市级网络之间可以配置静态协议、RIP协议等等。
2、路由引入的情形:
在边界设备(ASBR设备)上,同时运行多种路由协议。
需要将一种路由协议引入到另一种路由协议中学习;把路由在同种协议的不同进程间的引入
注意:关注两种协议起始度量值,引入时原路由
3、规则:
(1)将A协议发布到B协议中,在ASBR中的B协议上配置
(2)将A协议发布到B协议中,所有通过A协议学习到的路由及A的直连路由,B都可以学习到
重发布举例:
举例1:将OSPF路由引入RIP:
在rip进程视图下:[R2-rip-1]import-route ospf 1,
思考:此时10.3.3.0和10.1.1.0/24是否都被引入RIP中。
答案:10.3.3.0/24被成功引入RIP路由表中,但10.1.1.0/24未被引入,因为10.1.1.0/24是R2的直连路由,虽然属于OSPF区域的路由,但最终的本质是直连路由,而我们引入的是OSPF路由,所以10.1.1.0/24不会被引入。
要想直连也被引入:[R2-rip-1]import-route direct
如果不指定cost,路由重发布进RIP后,cost缺省为0 ;包括环回口。
举例:2:将RIP路由引入OSPF:在OSPF进程视图下:[R2-ospf-1]import-route rip 1
如果不指定cost,路由重发布进ospf后,cost缺省为1;type类型为E2;包括环回口 ;
举例3:将静态引入到动态协议中:[r2-rip-1]import-route static
如果不指定cost,路由重发布进动态后,cost缺省为0
举例4:将直连路由导入到动态路由协议中:[r2-rip-1]import-route direct
4、修改起始度量值命令:
进程当中对全局进行修改:[r2-rip-1]default-cost 2
针对本次重发布进行修改:[r2-rip-1]import-route ospf 1 cost 3
5、多协议网络规划
一般情况下,建议跑单协议
路由协议的规划规则:
(1)从边缘引入核心;
因为边缘设备的性能低,承受能力差,核心网络的路由器性能比较好,承受能力强。但核心的路由需要引入边缘,这时建议在边界路由器上下发一条缺省路由,以保证边缘的路由器可以通过这条缺省路由访问核心网络。
(2)从IGP引入到BGP
原因:
公网上路由太多了,要是将BGP公网上的路由引入内网的ospf中,会造成内网路由器承受不住。
所以一般建议从IGP引入到BGP,但我们仍然有学习BGP上路由的需求,所以从BGP引入IGP时,建议IGP内部通过配置默认路由或者路由聚合达到进入其他AS的路由。
6、引入方式
(1)单向路由引入
在OSPF进程视图下:import-route rip 1
(2)双向路由引入
双向引入可以知道对方的具体路由
注:只在一个边界路由器上做引入,当这个路由器故障时,会造成网络瘫痪。但在多个路由器上做引入,又会产生环路问题。
7、产生问题:
路由引入规划不当会导致路由环路问题和次优路径选择问题
环路产生分析:
在R5上做静态引入后,R2和R4会收到,在R2和R4上看到一条去往100.1.1.0/24的路由,此时这条路由指向R5;
在R2上做ospf引入后,会将此ospf路由表中,此静态路由的信息传给R1,R1会收到,在R1上看到一条去往100.1.1.0/24的路由,此时这条路由指向R2;
在R3上做rip引入后,会将此rip路由表中,此静态路由的信息传给R1,R1会收到,在R1上看到一条去往100.1.1.0/24的路由,此时这条路由指向R3;
同时在R3上也会收到通过R4传递过来的这条静态路由,此时这条路由指向R4;
问题出现了--------现在R3上出现了从两个方向传递过来的100.1.1.0/24这条规则,到底学谁传来的?此时需要对比下路由选择的规则:
规则1:去往同一目的地的路由,不同来源比较优先级,此时引入到rip的路由,优先级是100,引入到OSPF的路由,优先级是150,所以明显选择从R1传来的,因为优先级高
当R3选择R1后,由于在R3上做了路由引入,所以,R3又将100.1.1.0/24以RIP路由引入到OSPF中,此时对于R4来说,也面临着两个方向的选择。
对于R4来说,从R3传过来的路由,来源于ospf,优先级是150。
从R5传过来的路由,来源于ospf,优先级是150。
R4到底学谁,现在该看cost了,两者cost是等价的,此时会形成两条等价路由,一条指向R3,一条指向R5。
R4会继续传递100.1.1.0/24给R5,此时R5也会面临两个选择。
选择1:在R5上出现了,从R4学到的来自ospf的100.1.1.0/24,优先级是150
选择2:在R5上本身有去往100.1.1.0/24的静态路由,优先级180
对R5来说会选择走优先150的路由,指向R4,此时在R4和R5之间形成了互指的现象。但基于ospf天然的防环设计,R4会忽略R4指向R5这条道路,所以最终会在整个网络中形成去往100.1.1.0/24路由的环路。
解决方法1:使用Tag来进行选择性路由引入
在路由引入时加上Tag标记值,根据tag标记值来选择引出的路由
配置示例:将OSPF路由引入RIP中时,打上标记值
抓取流量:
[R2]acl 2000
[R2-acl-basic-2000]rule permit source 100.1.1.0 0.0.0.255
用路由策略修改路由属性:
[R2]route-policy aa permit node 10
[R2-route-policy]if-match acl 2000
[R2-route-policy]apply tag 99
[R2]route-policy aa permit node 20
调用策略
[R2-rip-1]import-route ospf route-policy aa
在R3做个筛选,对于含有99标记的路由不引入
route-policy bb deny node 10
if-match tag 99
route-policy bb permit node 20
[R3-ospf-1]import-route rip route-policy bb
解决方法2:合理规划引入路由的初始度量值,避免引入次优路由
规划引入路由的优先级,避免引入次优路由
抓取流量:
[R3]acl 2000
[R3-acl-basic-2000]rule permit source 100.1.1.0 0.0.0.255
写路由策略:
[R3]route-policy qq permit node 10
[R3-route-policy]if-match acl 2000
[R3-route-policy]apply preference 151
[R3]route-policy qq permit node 20
调用路由策略:
[R3-rip-1]preference route-policy qq
二、路由过滤:
定义:路由器在发布或者接收消息时,可能需要对路由信息进行过滤。
作用:控制路由的传播与生成;节省设备和链路资源消耗,保护网络安全。
举例:学习汇总后的路由,而不学习汇总时的明细路由
路由过滤方法:
常用的路由过滤工具:
(1)静默接口:
在RIP协议中,静默接口不发送路由更新
在OSPF协议中,静默接口不发送OSPF协议报文
(2) ACL:
通过ACL抓取流量,缺陷:只能匹配数字特征,不能匹配掩码特征,导致匹配不精确;
(3) 地址前缀列表:
匹配IP地址前缀,即目的网络地址和掩码长度--精确匹配;
注:如果所有表项为deny模式,则任何路由都不能通过该过滤列表。这种情况下,需要在多条deny模式的表项后定义一个允许规则:
permit 0.0.0.0 less-equal 32表项,允许其它所有IPV4路由信息通过
(4)filter-policy(过滤策略)
通过与ACL、地址前缀列表结合使用, filter-policy可以对路由信息进行过滤
filter-policy过滤接收路由(以RIP为例)
filter-policy过滤接收路由,对进入RIP路由表的路由进行过滤(RIP),特点:既影响做策略的本机上的RIP路由表,又影响下游路由器的RIP表
filter-policy过滤发送路由(RIP),特点:不影响做策略的本机上的RIP路由表,但影响下游路由器的RIP表
总结:通过与ACL、地址前缀列表结合使用, filter-policy可以对路由信息进行过滤
filter-policy过滤接收路由(以OSPF为例)
(1)特点:影响本机及下游路由器的OSPF表的学习,过滤本机及下游路由器的LSDB表中的LSA,在协议视图下配置进方向
方法2:在传入区域的区域视图下配置出方向,不影响本机ospf表的学习,但影响下游路由器ospf表的学习,过滤本机及下游路由器的LSDB表中的LSA
路由过滤总结:
利用路由过滤可控制路由在网络内传播
ACL和地址前缀列表可用于路由信息的识别、筛选
地址前缀列表比ACL更加灵活
可利用 filter-policy工具在RIP、OSPF、IS-IS等协议内过滤路由
(5)route-policy---路由策略
1、概念:
控制层流量 --- 路由协议传递路由信息产生的流量
数据层流量 --- 设备访问目标地址时产生的流量
2、定义:
为了改变网络流量所经过的途径而修改路由信息的技术------控制层流量
3、作用:
路由过滤;
修改路由属性;
4、做路由策略的思路:
(1)抓取流量
通过ACL实现;
通过前缀列表(ip prefix)实现;
(2)做策略:对流量进行修改或者不转发
练习1:
前缀匹配列表:
ip ip-prefix aa permit 10.1.1.0 24
route-policy policy_a permit node 10
if-match ip-prefix aa
apply cost 100
练习2:
匹配ACL:
acl 2002
rule permit source 10.2.2.0 0.0.0.255
route-policy policy_a permit node 20
if-match acl 2002
apply tag 20
练习3:route-policy policy_a deny node 30
某个节点中没有写任何的if-match,则表示匹配所有路由,都会被拒绝掉
没有写任何的apply,则不对任何路由进行属性修改
练习4:
route-policy policy_a deny node 30
if-match acl 2002
apply cost 30
思考apply cost 30有意义吗?
匹配规则:
(1)路由信息到达时,检查是否配置了路由策略,如果配置,则进入节点匹配;否则放行;
(2)检查路由策略第一个节点的if-match条件,匹配则检查节点动作是permit还是deny,如果是permit则进一步检查apply子句,有apply子句则执行路由属性修改并放行。没有apply子句则不修改属性并放行;如果是deny则不能通过。如果没有匹配该节点的if-match条件,则检查下一个节点
(3)最后一个节点仍不匹配,则拒绝该路由信息通过。
基本配置:
a.创建一个route-policy节点
route-policy route-policy-name { permit | deny } node node编号
节点之间的关系是“或”的关系,如果通过了其中一个节点,就意味着通过该路由策略,不再对其他节点进行匹配
b.配置if-match语句,使用if-match命令可定义匹配条件,所匹配的对象是路由信息的一些属性,例如路由的目的网络地址或掩码长度、度量值、标记或下一跳IP地址等
节点的匹配规则表:
练习1:if-match语句之间是“与”的关系,需要同时满足要求。
route-policy aaa permit node 10
if-match acl 2000
if-match acl 2001
练习2:
acl 2000
rule permit source 192.168.1.0 0.0.0.255
acl 2001
rule permit source 192.168.2.0 0.0.0.255
route-policy aaa permit node 10
if-match acl 2000
if-match acl 2001
不可能有一条路由同时满足这两个acl,两个acl之间毫无交集。所以练习2这个路由策略写的毫无意义。
c.配置apply 语句,执行语句
在 Route-Policy的节点视图下,使用apply命令指定需执行的动作,这些动作主要是对所匹配的路由的某些属性进行修改
apply执行动作表
设置路由的度量值:apply cost cost
设置OSPF的度量值类型:apply cost-type { type-1 / type-2 }
设置路由的标记:apply tag tag
注:一个节点中可以不包含任何 apply语句,此时该节点只被用于执行路由过滤,而不用于设置路由的属性
5、注意事项
route-policy用于路由过滤,不用配置空节点;
route-policy仅用于属性修改,需要配置空节点;
route-policy能够配置的位置:
IGP路由引入时;
BGP宣告时;
BGP路由引入;
BGP邻接关系上;
6、route-policy的应用
(1)用route-policy来控制路由接收和发布时的属性
(2)用route-policy来控制路由的引入
三、实验(路由过滤与引入)
实验配置见下一篇文章哦~