[TOC]
BGP高级特性
BGP拥有更加灵活的路由控制能力,每一条BGP路由都可以携带多个路径属性,针对其属性也有特有的路由匹配工具,包括:AS_Path Filter和Community Filter
根据实际组网需求,可以实施路由策略,控制路由的接收和发布
- BGP路由控制的原理与配置
- 常用的BGP高级特性,包括:ORF、对等体组、安全特性
- BGP路由反射器的组网部署方式
BGP路由控制
BGP路由控制概述
- BGP路由控制一般通过路由策略实现,即通过路由匹配工具匹配特定路由,再通过路由策略工具对路由的发布和接收进行控制。
- 路由匹配工具:ACL [ 访问控制列表 ],IP Prefix List [地址前缀列表],AS_Path Filter[AS路径过滤器],Community Filter [团体属性过滤器]
- 路由策略工具:Filter-Policy和Route-Policy
- BGP路由控制通常影响的属性包括:AS_Path属性和Community属性等。
路由匹配工具:AS_Path Filter
AS_Path Filter是将BGP中的AS_Path属性作为匹配条件的过滤器,利用BGP路由携带的AS_Path列表对路由进行过滤
在不希望接收某些AS的路由时,可以利用AS_Path Filter对携带这些AS号的路由进行过滤,从而实现拒绝某些路由。
- AS_Path属性是BGP的公认必遵属性,所有的BGP路由都必须携带。记录了BGP路由在传递过程中所经过的所有AS的号码
- AS_Path属性值可以是0个、1个或多个AS号码的集合
在使用中可以通过正则表达式,来匹配路由的AS_Path
AS_Path Filter的基础配置命令:
1、创建AS_Path Filter
代码语言:javascript复制[Huawei] ip as-path-filter { as-path-filter-number | as-path-filter-name } { deny | permit } regular-expression
# AS_Path Filter使用正则表达式来定义匹配规则
# AS_Path Filter的默认行为是deny
-as-path-filter-number:指定的AS路径过滤器号,取值范围1~256
-as-path-filter-name:指定的AS路径过滤器名称
-deny:指定AS路径过滤器的匹配模式为拒绝
-permit:指定AS路径过滤器的匹配模式为允许
-regular-expression:指定AS路径正则表达式。字符串形式,支持空格,取值范围是1~255个字符
`AS路径过滤器的默认行为是deny,即路由如果没有在某一次过滤中被permit则最终不能通过该过滤器的过滤。如果一个过滤器中的所有过滤规则都是deny,则没有路由能通过该过滤器的过滤,这种情况下需要在多次(或一次)deny之后设置一次permit,允许其余所有路由通过过滤器的过滤`
2、应用AS_Path Filter
代码语言:javascript复制# 在BGP地址族视图下,对BGP路由信息应用路由策略时,基于AS_Path Filter过滤掉不符合条件的路由信息
[Huawei-bgp-af-ipv4] peer { group-name | ipv4-address | ipv6-address } as-path-filter { as-path-filter-number | as-path-filter-name } { import | export }
# 在Route-Policy视图下,创建一个基于AS_Path Filter的匹配规则
[Huawei-route-policy] if-match as-path-filter { as-path-filter-number | as-path-filter-name }
3、查看AS_Path Filter相关信息
代码语言:javascript复制# 查看AS_Path Filter。
[Huawei] display ip as-path-filter 1
# 显示BGP表中所有AS_Path被该正则表达式匹配的路由。
[Huawei] display bgp routing-table regular-expression
路由匹配工具:Community Filter
Community Filter与Community属性配合使用,可以在不便使用IP Prefix List和AS_Path Filter时,降低路由管理难度。
- 团体属性过滤器有两种类型:
- 基本Community Filter,匹配团体号或公认Community属性
- 高级Community Filter,使用正则表达式匹配团体号
Community属性为可选过渡属性,可以标识具有相同特征的路由,而不用考虑零散路由前缀和繁多的AS号。即可以将某些路由分配特定的Community属性值,之后就可以基于Community值而不是网络号/掩码来匹配路由并执行相应的路由策略
Community属性:
公认Community属性:
- Community属性格式:
- 一个Community属性值的长度为32bit,可使用两种形式呈现:
- 十进制整数格式
- AA:NN格式,其中AA表示AS号,NN是自定义的编号
- 一个Community属性值的长度为32bit,可使用两种形式呈现:
设置Community的基础配置命令
1、在路由策略中,设置路由的Community属性值
代码语言:javascript复制[Huawei-route-policy] apply community { community-number | aa:nn | internet | no-advertise | no-export | no-export-subconfed } [ additive ]
-community-number | aa:nn:指定团体属性中的团体号,community-number的取值范围是0~4294967295,aa和nn的取值范围都是0~65535
-internet:表示可以向任何对等体发送匹配的路由。缺省情况下,所有的路由都属于Internet团体
-no-advertise:表示不向任何对等体发送匹配的路由。收到具有此属性的路由后,不发布给任何其他的BGP对等体
-no-export:表示不向AS外发送匹配的路由,但发布给其它子自治系统。即收到具有此属性的路由后,不能发布到本地AS之外
-no-export-subconfed:表示不向AS外发送匹配的路由,也不发布给其它子自治系统,即收到具有此属性的路由后,不能发布给任何其他的子自治系统
-additive:表示追加路由的团体属性
2、将团体属性发布给对等体[组]
代码语言:javascript复制[Huawei-bgp-af-ipv4]peer { group-name | ipv4-address | ipv6-address } advertise-community
# 缺省情况下,BGP不将团体属性发布给任何对等体
Community Filter的基础配置命令
1、创建基本Community Filter
代码语言:javascript复制[Huawei] ip community-filter { basic-comm-filter-name | basic-comm-filter-num } { permit | deny } [ community-number | aa:nn | internet | no-export-subconfed | no-advertise | no-export ]
# 基本Community Filter编号范围:1~99,在基本Community Filter中只能指定团体号或知名团体属性
-basic-comm-filter-name:指定基本团体属性过滤器名称。取值范围是1~51个字符,且不能都是数字
-basic-comm-filter-num:指定基本团体属性过滤器号。整数形式,取值范围1~99。
-deny:指定团体属性过滤器的匹配模式为拒绝
-permit:指定团体属性过滤器的匹配模式为允许
-community-number:指定团体号。整数形式,取值范围0~4294967295
-aa:nn:指定团体号。一条命令最多可以指定20个团体属性号。aa和nn都是整数形式,取值范围都是0~65535
-internet:表示可以向任何对等体发送匹配的路由
-no-export-subconfed:指定不向自治系统外部通告路由,如果使用了联盟,不会向联盟中的其他子自治系统通告路由
-no-advertise:指定不通告给其他对等体
-no-export:指定不向自治系统外部通告路由。如果使用了联盟,则不向联盟外部通告路由,但会通告给联盟中的其他子自治系统
2、创建高级Community Filter
代码语言:javascript复制[Huawei] ip community-filter { advanced comm-filter-name | adv-comm-filter-num } { permit | deny } regular-expression
# 高级Community Filter编号范围:100~199,在高级Community Filter中可以指定正则表达式作为匹配条件
-advanced-comm-filter-name:指定高级团体属性过滤器名称,取值范围是1~51个字符,且不能都是数字
-adv-comm-filter-num:指定高级团体属性过滤器号,取值范围100~199。
-regular-expression:指定团体属性正则表达式,取值范围是1~255。
3、应用Community Filter
代码语言:javascript复制[Huawei-route-policy] if-match community-filter { basic-comm-filter-num [ whole-match ] | adv-comm-filter-num }
-basic-comm-filter-num:指定基本团体属性过滤器号,取值范围是1~99
-adv-comm-filter-num:指定高级团体属性过滤器号,取值范围是100~199
代码语言:javascript复制[Huawei-route-policy] if-match community-filter comm-filter-name [ whole-match ]
-comm-filter-name:指定团体属性过滤器名称,长度范围是1~51
-whole-match:表示完全匹配,即所有的团体都必须出现。仅对基本团体属性过滤器生效
在Route-Policy视图下,创建一个基于Community Filter的匹配规则
BGP特性介绍
出口路由过滤器 ORF:
如果设备希望只接收自己需要的路由,但对端设备又无法针对每个与它连接的设备维护不同的出口策略,可以通过**配置BGP基于前缀的ORF [ 出口路由过滤器 ] **来满足两端设备的需求