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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战