路由策略router

  1. 在复杂的数据通信网络中,根据实际组网需求,往往需要实施一些路由策略对路由信息进行过滤、属性设置等操作,通过对路由的控制,可以影响数据流量转发。
  2. 路由策略并非单一的技术或者协议,而是一个技术专题或方法论,里面包含了多种工具及方法。

 

 

 

  1. R1上将业务A、B、C的网段路由引入时希望不引入业务C网段路由,同时R3上将OSPF路由引入到IS-IS中时,同样只希望引入B业务网段路由。
  2. 此时需要一个工具在引入路由时进行限制。
  1. 通配符掩码匹配规则

 

 

不要把通配符当作掩码来开,当作一个匹配的值  0是严格匹配不能改变,1是可以改变

 

路由匹配工具:ACL

ACL根据匹配信息不同,最终隐含规则也不同

1.如果ACL匹配的是流量,则默认是允许所有

2.如果ACL匹配的是路由,则默认是拒绝所

 

执行工具:filer-policy、filter、filter

路由策略:

1.filer-policy

2.filter

3.route-policy

流量策略:

1.traffic-fliter

2.traffic-policy

traffic-filter 流过滤:对于ACL的permit是允许流量通过

                                       对于ACL的deny  是禁止流量通过

路由策略:执行路由过滤

流量策略:执行流量过滤

数据信息管控:

1.要存在匹配工具

   1.ACL(可以匹配流量、可以匹配路由)

       ACL匹配路由时,执行对路由的网段做匹配,不能对路由的掩码做匹配

ACL只能匹配路由的前缀,不能匹配路由的网络掩码。

 

说人话:

1.1.1.1/32

1.1.1.2/32

1.1.1.3/32   可以直接匹配成1.1.1.0/30

但是ACL不能,ACL只能精确匹配

1.1.1.1/32

1.1.1.1/31

1.1.1.1/30

1.1.1.1/29 类似地址ACL要配置4个条目

控制平面:AR1的路由表中存在3.3.3.3的路由信息 (路由表项)

转发平面:AR1ping 3.3.3.3发出的数据流量 (转发信息表项)

AR1的路由表中存在3.3.3.3/32路由信息   (控制平面学习了路由 --路由表项) dis ip rou

AR1ping 3.3.3.3 发出数据流量        (转发平面发送了流量 --转发信息表项)dis fib

匹配工具2 :前缀匹配列表

 ip-prefix list:前缀列表

 只能匹配路由信息(不能匹配流量)

 匹配路由信息时,可以对路由的网段 和 掩码同时做匹配

 默认存在规则是拒绝所有

1.1.1.1  29to32 :类似网段可以直接匹配成一条

前缀列表实现方法:

[AR1]ip ip-prefix AR3-route index 1 deny 3.3.3.2 32

[AR1]ip ip-prefix AR3-route index 2 deny 3.3.3.3 32  进程  掩码

[AR1]ip ip-prefix AR3-route index 3 permit 3.3.3.1 32    index相当于ACL中的rule 因为是默认拒绝所有所以要permit允许放行想要放行的流量

[AR1-ospf-1]filter-policy ip-prefix AR3-route import  在OSPF进程中启用

如果这4条外部路由书写拒绝:

 ACL 就要写4个条目

 ip-prefix 只需要写1个条目

配置了前缀匹配列表之后,在AR3上引入外部路由之后在AR1上也是没有对应的路由条目,因为配置的前缀匹配列表没有允许放行

[AR3]ip rou 192.168.1.101 32 n 0

[AR3]ip rou 192.168.1.1 32 n 0

[AR3]ip rou 192.168.1.0 31 n 0

[AR3]ip rou 192.168.1.0 30 n 0

[AR3]ip rou 192.168.1.0 29 n 0

引入外部路由

[AR4-ospf-1]import-route static   OSPF进程视图下执行引入操作

[AR4]dis ospf lsdb router IP地址 查看设备路由描述

假设AR1要学习AR3的内部路由,不学习AR3的外部路由且AR3存在100条内部路由,存在4条外部路由?

通过前缀列表实现,要拒绝4条外部路由,允许所有内部路由

[AR1]ip ip-prefix D_E deny 192.168.1.0 24 greater-equal 29 less-equal 32    拒绝外部路由信息  匹配24位掩码以上的,大于29小于32,匹配上面的外部路由条目,如果不加后面的greater-equal(大于)less-equal(小于)则只匹配192.168.1.0这个网段的路由条目

[AR1]ip ip-prefix D_E permit 0.0.0.0 0 less-equal 32        允许所有路由信息    缺省路由 0.0.0.0 0-32

缺省路由实现:写了一个允许最大的网段,写了一个小于等于0大于等于32的范围

greater-equal(大于)

less-equal(小于)

 

 

 

匹配路由信息时:

         1.可以只设置匹配的路由网段(ip ip-prefix D_E deny 192.168.1.0 24

           匹配192.168.1.0/24这个路由条目

         2.可以设置匹配路由网段内的路由条目(ip ip-prefix D_E deny 192.168.1.0 24 g 29 l 32

           匹配192.168.1.0/24网段内 掩码大于等于29 小于等于32的所有路由条目

 

  • IP前缀列表IP-Prefix List)是将路由条目的网络地址、掩码长度作为匹配条件的过滤器,可在各路由协议发布和接收路由时使用。

不同于ACL,IP-Prefix List能够同时匹配IP地址前缀长度以及掩码长度,增强了匹配的精确度

 

1ip-prefix-name地址前缀列表名称

2、序号:本匹配项在地址前缀列表中的序号,匹配时根据序号从小到大进行顺序匹配

3、动作:permit/deny,地址前缀列表的匹配模式为允许/拒绝,表示匹配/不匹配

4IP网段与掩码:匹配路由的网络地址,以及限定网络地址的前多少位需严格匹配

5、掩码范围:匹配路由前缀长度,掩码长度的匹配范围 mask-length<=greater-equal-value<=less-equal-value<=32

 

 

匹配机制

IP-Prefix的基础配置命令

  • ip-prefix-name:指定地址前缀列表的名称。
  • index index-number:指定本匹配项在地址前缀列表中的序号。
  • permit:指定地址前缀列表的匹配模式为允许。
  • deny:指定地址前缀列表的匹配模式为拒绝。
  • ipv4-address mask-length:指定IP地址和指定掩码长度。
  • greater-equal greater-equal-value:指定掩码长度匹配范围的下限。
  • less-equal less-equal-value:指定掩码长度匹配范围的上限。

 

 

 

 

 

X>=8  <=32 X=掩码

 

 

一些示例

 

 

 

 

没有执行匹配多行流量的工具,我不需要或者不想到达的网络我直接过滤路由了,不可能说通过路由学习到了再把流量过滤掉

 

执行工具

 

Router-policy:路由策略

route-policy:路由策略

由一系列的条目节点组成,每一个节点内可以设置多个语句(分为条件语句和执行语句),可以自己匹配路由,不用通过ACL和ip-prefix来匹配

#

[AR1]route-policy test(name) permit node 1 (节点)

  匹配了什么内容1  如果你是OSPF 或者XXX

  匹配了什么内容2  如果你是外部路

  需要执行什么样的操作1  设置你的优先级多少

  需要执行什么样的操作2 设置你的开销多少   可以匹配得很精确

匹配内容可以匹配的很精确:(匹配内容1比如说你的目标地址是192.168.1.0(匹配内容2你的下一跳必须是10.1.12.1  (操作1我把你的开销值设置为50  (操作2优先级设置为100       根据路由本身带有的内容进行匹配,可以配合ACL 前缀列表使用

#

route-policy test permit node 2

  匹配了什么内容

  需要执行什么样的操作

#

route-policy test deny node 3

#

每一个节点之间是 或 的关系  :逻辑语言:与或非    说人话:就是你匹配第一个就不用匹配第二个匹配第二个就不用匹配第三个

每一个节点内设置的语句分类:

  1.条件语句 if-match

      多个条件语句之间是 与 的关系

     可以匹配ACL 、前缀列表

     可以匹配路由本身携带的相关参数(cost、接口、下一跳)

用法

 一个节点可以匹配很多信息,执行很多语句

多个节点匹配多个语句

2.执行语句 apply

     多个执行语句之间是 与 的关系

存在默认节点,动作为deny

操作

命令

设置路由信息的开销值

apply cost { [ + | - ] cost | inherit | none }

设置AS_Path属性

apply as-path as-path-value &<1-128> { additive | overwrite | delete }

apply as-path asValues { additive | overwrite | delete }

设置清空原有AS_Path属性

apply as-path none overwrite

设置路由最近AS_Path值添加次数

apply as-path most-recent most-recent-value

在本地AS号前附加AS号

apply as-path prepend asValues

设置路由信息的开销类型

apply cost-type { external | internal | type-1 | type-2 | internal-inc-ibgp | med-plus-igp }

设置EBGP路由的衰减参数

apply dampening half-life-reach reuse suppress ceiling

根据团体属性过滤器中指定的值删除BGP路由团体属性

apply comm-filter { basIndex | advIndex } delete

设置BGP团体属性

apply community { cmntyValue | cmntyNum | internet | no-advertise | no-export | no-export-subconfed } &<1-32> [ additive ]

apply community community-list community-list-name [ additive ]

说明:

该配置仅S5735-L-V2、S5735-S-V2、S5735I-S-V2、S5735I-L-V2、S5735I-H-V2、S5735S-L3、S1730S-S3、S5735S-S3、S5735R-L-V2产品支持。

删除BGP团体属性

apply community { cmntyValue | cmntyNum | internet | no-advertise | no-export | no-export-subconfed } &<1-32> delete

根据扩展团体属性过滤器中指定的值删除BGP扩展团体属性

apply extcommunity-filter rt filter-name delete

清空路由中已有的扩展团体属性

apply extcommunity rt none

设置BGP路由信息的路由源

apply origin { egp { egpVal } | igp | incomplete }

设置BGP路由信息的本地优先级

apply local-preference [ + | - ] preference

设置BGP Large-community属性

apply large-community-list large-community-list-name { additive | overwrite | delete }

apply large-community { aa:bb:cc } &<1-16> { additive | overwrite | delete }

设置BGP路由的VPN-Target扩展团体属性

apply extcommunity { rt extCmntyValue } &<1-16> [ additive ]

删除BGP路由的VPN-Target扩展团体属性

apply extcommunity { rt extCmntyValue } &<1-16> delete

设置BGP路由的SoO(Site of Origin)扩展团体属性

apply extcommunity soo { site-of-origin } &<1-16> additive

设置BGP路由的首选值

apply preferred-value preferredVal

设置BGP ADD-PATH优选路由的数量

apply add-path path-number path-number-value

设置本地QoS ID值

apply qos-local-id qos-local-id

设置IPv4路由信息的下一跳地址

apply ip-address next-hop { address | peer-address | blackhole }

设置IPv6路由信息的下一跳地址

apply ipv6 next-hop { address | peer-address | blackhole }

设置IS-IS的路由级别

apply isis { level-1 | level-1-2 | level-2 }

设置引入路由到OSPF的特定区域

apply ospf { backbone | stub-area }

设置IS-IS的路由级别

apply isis { level-1 | level-1-2 | level-2 }

设置路由协议的优先级

apply preference preference

设置路由信息的标记域

apply tag tag

设置路由的网关IP地址

apply gateway-ip { origin-nexthop | address }

设置路由的网关IPv6地址

apply ipv6 gateway-ip { origin-nexthop | address }

来自 <https://support.huawei.com/enterprise/zh/doc/EDOC1100411518/5a34b001>

使用router-policy拒绝192.168.1.3  的路由

使用过程

#

acl number 2000 

 rule 5 deny source 192.168.1.3 0  ACL匹配语句

 rule 10 permit

#

[AR1]route-policy abc permit node 10  创建节点10

 if-match acl 2000                                      在router-policy接口试图引入

#

ospf 1 router-id 10.3.3.3  import-route static route-policy abc  OSPF接口视图下引入

匹配工具    permit      deny   : ACL的

执行工具    permit      deny   : router-policy的

有什么关系?

1. acl-deny 和route-policy permit   最终的结果 不在该节点通过,继续下一个节点的匹配  ACL拒绝了就拒绝通过

2. acl-permit 和route-policy permit   最终的结果 在该节点通过,不进行下一个节点匹配  ACL通过了这里也通过就通过

3. acl-deny 和route-policy deny   最终的结果 不在该节点通过,继续下一个节点的匹配  ACL拒绝,我这里也拒绝 那就拒绝

4. acl-permit 和route-policy deny 最终的结果 不在该节点通过,不进行下一个节点匹配 ACL通过 我这里不通过

所有的视角都是盯着路由来看的,不要盯着ACL和什么前缀匹配来看

下图去192.168.1.1的匹配过程以及输出,路由策略

下图去192.168.1.2的匹配过程以及输出,路由策略

下图去192.168.1.3的匹配过程以及输出,路由策略

只要有一个是deny那就不通过 匹配下一条

配置ACL

acl 2000

 rule 5 deny source 192.168.1.1 0    拒绝192.168.1.1

 rule 10 permit source 192.168.1.2 0 允许192.168.1.2

配置前缀访问控制列表

ip ip-prefix 1 deny 192.168.1.3 32   拒绝192.168.1.3 32

节点10中引入ACL 2000

route-policy abc permit node 10

 if-match acl 2000

节点20中引入

route-policy abc deny node 20

 if-match ip-prefix 1

route-policy abc permit node 30

  没有任何匹配条目语句,待指匹配所有

  • 命令:[Huawei-ospf-100] filter-policy { acl-number | acl-name acl-name | ip-prefix ip-prefix-name | route-policy route-policy-name [ secondary ] } import

  • acl-number:指定基本访问控制列表号。整数形式,取值范围是20002999

  • acl-name acl-name:指定访问控制列表名称。字符串形式,不支持空格,区分大小写,长度范围是132,以英文字母azAZ开始。

  • ip-prefix ip-prefix-name:指定地址前缀列表名称。字符串形式,长度范围是1169,不支持空格,区分大小写。当输入的字符串两端使用双引号时,可在字符串中输入空格。

  • route-policy route-policy-name:指定路由策略名称。字符串形式,区分大小写,不支持空格,长度范围是140。当输入的字符串两端使用双引号时,可在字符串中输入空格。

  • secondary:设置优选次优路由。

  • 命令:[Huawei-ospf-100] filter-policy { acl-number | acl-name acl-name | ip-prefix ip-prefix-name route-policy route-policy-name } export [ protocol [ process-id ] ]

  • protocol process-id:指定需要对引入的特定的路由协议进行过滤。目前的协议包括directisisbgpospfunrstatic。当指定路由协议为RIPIS-ISOSPF时,还可以指定进程号。整数类型,取值范围是165535,缺省值是1

 

 

 

策略工具2Route-Policy

Route-Policy的匹配顺序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值