Datacom-HCIE-08 BGP高级特性 ORF 4字节AS等特性介绍
在大型网络中通常会部署BGP,为了提升网络性能,BGP提供了各种高级特性以及多种组网部署方案。
本文将介绍常用的BGP高级特性,包括:ORF、对等体组、安全特性、4字节AS号。
ORF
邻居按需发布路由
如果设备希望只接收自己需要的路由,但对端设备又无法针对每个与它连接的设备维护不同的出口策略。此时,可以通过配置BGP基于前缀的ORF(Outbound Route Filters,出口路由过滤器)来满足两端设备的需求。
BGP基于前缀的ORF能力,能将本端设备配置的基于前缀的入口策略通过路由刷新报文发送给BGP邻居。BGP邻居根据这些策略(刷新报文中)构造出口策略,在路由发送时对路由进行过滤。
这样不仅避免了本端设备接收大量无用的路由,降低了本端设备的CPU使用率,还有效减少了BGP邻居的配置工作,降低了链路带宽的占用率。
ORF的基础配置命令
- 配置对等体(组)基于IP地址前缀列表的路由过滤策略。
[Huawei-bgp-af-ipv4] peer { group-name | ipv4-address } ip-prefix ip-prefix-name { import | export }
2.使能BGP对等体(组)基于地址前缀的ORF功能。
[Huawei-bgp] peer { group-name | ipv4-address } capability-advertise orf [ non-standard-compatible ] ip-prefix { both | receive | send } [ standard-match ]
注意:ORF功能需要对等体两端同时开启。
ORF配置举例
R2只期望R1通告10.1.1.1/32路由,R2通过向R1推送ORF
报文来达到这个目的。
1、R2上配置基于10.1.1.1/32的路由过滤策略,并使能ORF功能,发送ORF报文。
[R2] ip ip-prefix 1 permit 10.1.1.1 32
[R2] bgp 102
[R2-bgp] peer 10.1.12.1 as-number 101
[R2-bgp] peer 10.1.12.1 ip-prefix 1 import
[R2-bgp] peer 10.1.12.1 capability-advertise orf ip-prefix send
2、R1上使能ORF功能,接收ORF报文。
[R1] bgp 101
[R1-bgp] peer 10.1.12.2 as-number 102
[R1-bgp] peer 10.1.12.2 capability-advertise orf ip-prefix receive
[R1-bgp] network 10.1.1.1 32
[R1-bgp] network 10.1.2.2 32
[R1-bgp] network 10.1.3.3 32
查看ORF配置
1、在R1上查看R2发出的基于地址前缀的ORF信息。
[R1]display bgp peer 10.1.12.2 orf ip-prefix
Total number of ip-prefix received: 1
Index Action Prefix MaskLen MinLen MaxLen
10 Permit 10.1.1.1 32
在R1上查看ORF信息,发现需要提供10.1.1.1/32路由。在R2上查看BGP路由信息,发现只接收到了10.1.1.1/32路由。
2、在R2上查看BGP路由信息。
[R2]display bgp routing-table peer 10.1.12.1 received-routes
BGP Local router ID is 10.1.12.2
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 10.1.1.1/32 10.1.12.1 0 0 101i
对等体组
BGP对等体组
对等体组(Peer Group)是一些具有某些相同策略的对等体的集合。当一个对等体加入对等体组中时,该对等体将获得与所在对等体组相同的配置。当对等体组的配置改变时,组内成员的配置也相应改变。
在大型BGP网络中,对等体的数量会很多,其中很多对等体具有相同的策略,在配置时会重复使用一些命令,利用对等体组可以简化配置。
BGP对等体组的基础配置命令
- 创建对等体组。
[Huawei-bgp] group group-name [ external | internal ]
在BGP视图、BGP-VPN实例IPv4地址族视图、BGP-VPN实例IPv6地址族视图下创建对等体组。 - (可选)为指定的对等体组配置AS号。
[Huawei-bgp] peer group-name as-number { as-number-plain | as-number-dot }
配置EBGP对等体组的AS号。对于IBGP对等体组,AS号为IBGP的本地AS号。 - 将对等体加入对等体组。
[Huawei-bgp] peer { ipv4-address | ipv6-address } group group-name
- 指定发送BGP报文的源接口,并指定发起连接时使用的源地址。
[Huawei-bgp] peer group-name connect-interface interface-type interface-number [ ipv4-source-address ]
BGP对等体组配置举例
1、完成R1的BGP基本配置。
[R1] bgp 101
[R1-bgp] peer 10.1.12.2 as-number 102
[R1-bgp] network 10.1.1.1 32
2、完成R2的EBGP基本配置和IBGP对等体组基本配置。
[R2] bgp 102
[R2-bgp] peer 10.1.12.1 as-number 101
[R2-bgp] group in internal
[R2-bgp] peer 10.1.3.3 group in
[R2-bgp] peer 10.1.4.4 group in
[R2-bgp] peer 10.1.5.5 group in
[R2-bgp] peer in connect-interface Loopback 0
3、完成R3的IBGP基本配置。
[R3] bgp 102
[R3-bgp] peer 10.1.2.2 as-number 102
[R3-bgp] peer 10.1.2.2 connect-interface Loopback 0
与R5的配置与R3相似,不再赘述。
查看BGP对等体组配置
1、查看R2的BGP对等体组信息。
[R2]display bgp group in
BGP peer-group: in
Remote AS: 102
Authentication type configured: None
Type : internal
Configured hold timer value: 180
Keepalive timer value: 60
Connect-retry timer value: 32
Minimum route advertisement interval is 15 seconds
Connect-interface has been configured
PeerSession Members:
10.1.3.3 10.1.4.4 10.1.5.5
Peer Preferred Value: 0
No routing policy is configured
Peer Members:
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
10.1.3.3 4 102 5 7 0 00:03:33 Established 0
10.1.4.4 4 102 5 6 0 00:03:11 Established 0
10.1.5.5 4 102 4 6 0 00:02:52 Established 0
可以看出,R2的对等体组名为in,对等体组中有三个IBGP成员,分别为:10.1.3.3、10.1.4.4、10.1.5.5,并且都成功建立了邻居关系。
安全特性
BGP安全性
常见BGP攻击主要有两种:
建立非法BGP邻居关系,通告非法路由条目,干扰正常路由表。
发送大量非法BGP报文,路由器收到后上送CPU,导致CPU利用率升高
BGP使用认证和GTSM(Generalized TTL Security Mechanism,通用TTL安全保护机制)两个方法保证BGP对等体间的交互安全。
BGP认证
BGP认证分为MD5认证和Keychain认证,对BGP对等体关系进行认证可以预防非法BGP邻居建立。
BGP的GTSM
BGP的GTSM功能检测IP报文头中的TTL(Time-to-Live)值是否在一个预先设置好的特定范围内,并对不符合TTL值范围的报文进行丢弃,这样就避免了网络攻击者模拟“合法”BGP报文攻击设备。
BGP认证的基础配置命令
- 配置BGP对等体在建立TCP连接时对BGP消息进行MD5认证。
[Huawei-bgp] peer { group-name | ipv4-address | ipv6-address } password { cipher cipher-password | simple simple-password }
- 配置BGP对等体在建立TCP连接时的Keychain认证。
[Huawei-bgp] peer { group-name | ipv4-address | ipv6-address } keychain keychain-name
GTSM功能的基础配置命令
- 在BGP对等体(组)上应用GTSM功能。
[Huawei-bgp] peer { group-name | ipv4-address | ipv6-address } valid-ttl-hops [ hops ]
GTSM的配置是对称的,需要在BGP对等体间同时使能GTSM。
hops:指定需要检测的TTL跳数值。整数形式,取值范围是1~255,缺省值是255。如果配置为hops,则被检测的报文的TTL值有效范围为[255-hops+1,255]。
即:hops配置为255,则有效范围是[1,255],hops配置为1,则有效范围是[255,255] - (可选)设置未匹配GTSM策略的报文的缺省动作。
[Huawei] gtsm default-action { drop | pass }
缺省情况下,未匹配GTSM策略的报文可以通过过滤。 - (可选)打开单板的LOG信息开关,在单板GTSM丢弃报文时记录LOG信息。
[Huawei] gtsm log drop-packet all
缺省情况下,在单板GTSM丢弃报文时不记录LOG信息。
对于丢弃的报文,可以通过该命令打开LOG信息开关,控制是否对报文被丢弃的情况记录日志,以方便故障的定位。
GTSM配置举例
1、建立IBGP全互联
[R1] bgp 101
[R1-bgp] peer 10.1.2.2 as-number 101
[R1-bgp] peer 10.1.2.2 connect-interface Loopback 0
[R1-bgp] peer 10.1.3.3 as-number 101
[R1-bgp] peer 10.1.3.3 connect-interface Loopback 0
[R1-bgp] network 10.1.1.1 32
R2] bgp 101
[R2-bgp] peer 10.1.1.1 as-number 101
[R2-bgp] peer 10.1.1.1 connect-interface Loopback 0
[R2-bgp] peer 10.1.3.3 as-number 101
[R2-bgp] peer 10.1.3.3 connect-interface Loopback 0
[R3] bgp 101
[R3-bgp] peer 10.1.1.1 as-number 101
[R3-bgp] peer 10.1.1.1 connect-interface Loopback 0
[R3-bgp] peer 10.1.2.2 as-number 101
[R3-bgp] peer 10.1.2.2 connect-interface Loopback 0
2、在R1与R2间开启GTSM。由于两台路由器直连,因此TTL到达对方的有效范围是[255,255],所以此处的valid-ttl-hops值取1。
[R1-bgp] peer 10.1.2.2 valid-ttl-hops 1
[R2-bgp] peer 10.1.1.1 valid-ttl-hops 1
3、在R2与R3间开启GTSM。由于两台路由器直连,因此TTL到达对方的有效范围是[255,255],所以此处的valid-ttl-hops值取1。
[R2-bgp] peer 10.1.3.3 valid-ttl-hops 1
[R3-bgp] peer 10.1.2.2 valid-ttl-hops 1
4、在R1与R3间开启GTSM。由于两台路由器经过R2连接,经过一跳后,TTL到达对方的有效范围是[254,255],所以此处的valid-ttl-hops值取2。
[R1-bgp] peer 10.1.3.3 valid-ttl-hops 2
[R3-bgp] peer 10.1.1.1 valid-ttl-hops 2
查看GTSM配置
[R1]display bgp peer 10.1.3.3 verbose
BGP Peer is 10.1.3.3, remote AS 101
Type: IBGP link
BGP version 4, Remote router ID 10.1.3.3
Update-group ID: 1
BGP current state: Established, Up for 00h02m17s
BGP current event: KATimerExpired
BGP last state: OpenConfirm
BGP Peer Up count: 1
Received total routes: 0
Received active routes total: 0
Advertised total routes: 1
Port: Local - 179 Remote - 51077
Configured: Connect-retry Time: 32 sec
Configured: Active Hold Time: 180 sec Keepalive Time:60 sec
Received : Active Hold Time: 180 sec
Negotiated: Active Hold Time: 180 sec Keepalive Time:60 sec
Peer optional capabilities:
Peer supports bgp multi-protocol extension
Peer supports bgp route refresh capability
Peer supports bgp 4-byte-as capability
Received: Total 5 messages
Update messages 0
Open messages 1
KeepAlive messages 3
Notification messages 0
Refresh messages 1
Sent: Total 8 messages
Update messages 2
Open messages 2
KeepAlive messages 3
Notification messages 0
Refresh messages 1
Authentication type configured: None
Last keepalive received: yy/mm/dd 17:34:13 UTC-08:00
Last keepalive sent : yy/mm/dd 17:34:13 UTC-08:00
Last update sent : yy/mm/dd 17:34:02 UTC-08:00
Minimum route advertisement interval is 15 seconds
Optional capabilities:
Route refresh capability has been enabled
4-byte-as capability has been enabled
Connect-interface has been configured
GTSM has been enabled, valid-ttl-hops: 2
Peer Preferred Value: 0
Routing policy configured:
No routing policy is configured
可以通过display bgp peer命令用来查看BGP对等体信息。通过指定verbose参数,可以查看如:BGP定时器信息、收发路由数量、邻居支持的能力以及已经使能的配置等。
R1使能了GTSM功能,且与IBGP邻居10.1.3.3(R3)间的有效跳数为2。
4字节AS号
随着网络规模的扩大,可分配的AS号已经濒临枯竭。
目前网络上使用的AS号范围为1至65535(2字节),需要将AS号范围扩展为1至4294967295(4字节),且支持4字节AS号的BGP设备能够与仅支持2字节AS号的BGP设备兼容。
携带4字节AS号的Open消息
BGP通过相互通告Open消息来进行能力协商,其中New Speaker的Open消息格式如图所示。
BGP的Open消息头是固定的,其中My AS Number字段填写的是本地AS号,但是My AS Number字段只占有两个字节,无法填充4字节的AS号。
因此New Speaker在发送Open消息时,将AS_TRANS号23456填充到My AS Number字段,而将自己实际的4AS Number填写在可选能力字段,这样邻居间就能通过Open消息的可选能力字段获知对方是否支持4字节AS能力。
4字节AS号的基本原理
如图是New Speaker与New Speaker之间、New Speaker与Old Speaker之间的邻居建立和路由信息传递过程。
不同的BGP Speaker之间通过Open消息向对端通告是否支持4AS能力,能力协商完成后,New Speaker之间建立New Session,New Speaker和Old Speaker之间建立Old Session。
4字节AS号的路由信息传递
在New Speaker之间的Update消息中,AS_Path属性里的AS号按照4字节进行编码,而Old Speaker的Update消息中AS_Path属性的AS号是按照2字节编码的。
4字节AS号的配置
- 使能BGP协议,进入BGP视图,或者直接进入BGP视图。
[Huawei] bgp as-numbe
as-number:指定AS号。
对整数形式的AS号,取值范围是1~4294967295。
对点分形式的AS号,格式为x.y,x和y都是整数形式,x的取值范围是1~65535,y的取值范围是0~65535。
配置举例:
R1和R2处于AS 1.1中,且使用Loopback0接口建立IBGP连接。
建立IBGP连接。
[~R1] bgp 1.1
[~R1-bgp] peer 10.1.2.2 as-number 1.1
[~R1-bgp] peer 10.1.2.2 connect-interface Loopback 0
[~R2] bgp 1.1
[~R2-bgp] peer 10.1.1.1 as-number 1.1
[~R2-bgp] peer 10.1.1.1 connect-interface Loopback 0