目录
BGP简介
定义
边界网关协议BGP(Border Gateway Protocol)是一种实现自治系统AS(Autonomous System)之间的路由可达,并选择最佳路由的距离矢量路由协议。
MP-BGP是对BGP-4进行了扩展,来达到在不同网络中应用的目的,BGP-4原有的消息机制和路由机制并没有改变。MP-BGP在IPv6单播网络上的应用称为BGP4+,在IPv4组播网络上的应用称为MBGP(Multicast BGP)。
目的
为方便管理规模不断扩大的网络,网络被分成了不同的自治系统。1982年,外部网关协议EGP(Exterior Gateway Protocol)被用于实现在AS之间动态交换路由信息。但是EGP设计得比较简单,只发布网络可达的路由信息,而不对路由信息进行优选,同时也没有考虑环路避免等问题,很快就无法满足网络管理的要求。
BGP是为取代最初的EGP而设计的另一种外部网关协议。不同于最初的EGP,BGP能够进行路由优选、避免路由环路、更高效率的传递路由和维护大量的路由信息。
受益
BGP从多方面保证了网络的安全性、灵活性、稳定性、可靠性和高效性:
-
BGP采用认证和GTSM的方式,保证网络的安全性。
-
BGP提供了丰富的路由策略,能够灵活的进行路由选路。
-
BGP提供了路由聚合和路由衰减功能用于防止路由振荡,有效提高了网络的稳定性。
-
BGP使用TCP作为其传输层协议(端口号为179),并支持BGP与BFD联动,BGP Tracking和BGP GR,提高了网络的可靠性。
BGP原理描述
BGP的基本概念
自治系统AS(Autonomous System)
AS是指在一个实体管辖下的拥有相同选路策略的IP网络。BGP网络中的每个AS都被分配一个唯一的AS号,用于区分不同的AS。AS号分为2字节AS号和4字节AS号,其中2字节AS号的范围为1至65535,4字节AS号的范围为1至4294967295。支持4字节AS号的设备能够与支持2字节AS号的设备兼容。
BGP分类
如图1所示,BGP按照运行方式分为EBGP(External/Exterior BGP)和IBGP(Internal/Interior BGP)。
-
EBGP:运行于不同AS之间的BGP称为EBGP。为了防止AS间产生环路,当BGP设备接收EBGP对等体发送的路由时,会将带有本地AS号的路由丢弃。
-
IBGP:运行于同一AS内部的BGP称为IBGP。为了防止AS内产生环路,BGP设备不将从IBGP对等体学到的路由通告给其他IBGP对等体,并与所有IBGP对等体建立全连接。为了解决IBGP对等体的连接数量太多的问题,BGP设计路由反射器和BGP联盟。
BGP的路由器号(Router ID)
BGP的Router ID是一个用于标识BGP设备的32位值,通常是IPv4地址的形式,在BGP会话建立时发送的Open报文中携带。对等体之间建立BGP会话时,每个BGP设备都必须有唯一的Router ID,否则对等体之间不能建立BGP连接。
BGP报文交互中的角色
BGP报文交互中分为Speaker和Peer两种角色。
-
Speaker:发送BGP报文的设备称为BGP发言者(Speaker),它接收或产生新的报文信息,并发布(Advertise)给其它BGP Speaker。
-
Peer:相互交换报文的Speaker之间互称对等体(Peer)。若干相关的对等体可以构成对等体组(Peer Group)。
BGP工作原理
BGP对等体的建立、更新和删除等交互过程主要有5种报文、6种状态机和5个原则。
BGP的报文
BGP对等体间通过以下5种报文进行交互,其中Keepalive报文为周期性发送,其余报文为触发式发送:
-
Open报文:用于建立BGP对等体连接。
-
Update报文:用于在对等体之间交换路由信息。
-
Notification报文:用于中断BGP连接。
-
Keepalive报文:用于保持BGP连接。
-
Route-refresh报文:用于在改变路由策略后请求对等体重新发送路由信息。只有支持路由刷新(Route-refresh)能力的BGP设备会发送和响应此报文。
BGP状态机
如图1所示,BGP对等体的交互过程中存在6种状态机:空闲(Idle)、连接(Connect)、活跃(Active)、Open报文已发送(OpenSent)、Open报文已确认(OpenConfirm)和连接已建立(Established)。在BGP对等体建立的过程中,通常可见的3个状态是:Idle、Active和Established。
图1 BGP对等体交互过程
BGP对等体之间的交互原则
BGP设备将最优路由加入BGP路由表,形成BGP路由。BGP设备与对等体建立邻居关系后,采取以下交互原则:
-
从IBGP对等体获得的BGP路由,BGP设备只发布给它的EBGP对等体。
-
从EBGP对等体获得的BGP路由,BGP设备发布给它所有EBGP和IBGP对等体。
-
当存在多条到达同一目的地址的有效路由时,BGP设备只将最优路由发布给对等体。
-
路由更新时,BGP设备只发送更新的BGP路由。
-
所有对等体发送的路由,BGP设备都会接收。
BGP与IGP交互
BGP与IGP在设备中使用不同的路由表,为了实现不同AS间相互通讯,BGP需要与IGP进行交互,即BGP路由表和IGP路由表相互引入。
BGP引入IGP路由
BGP协议本身不发现路由,因此需要将其他路由引入到BGP路由表,实现AS间的路由互通。当一个AS需要将路由发布给其他AS时,AS边缘路由器会在BGP路由表中引入IGP的路由。为了更好的规划网络,BGP在引入IGP的路由时,可以使用路由策略进行路由过滤和路由属性设置,也可以设置MED值指导EBGP对等体判断流量进入AS时选路。
BGP引入路由时支持Import和Network两种方式:
-
Import方式是按协议类型,将RIP、OSPF、ISIS等协议的路由引入到BGP路由表中。为了保证引入的IGP路由的有效性,Import方式还可以引入静态路由和直连路由。
-
Network方式是逐条将IP路由表中已经存在的路由引入到BGP路由表中,比Import方式更精确。
IGP引入BGP路由
当一个AS需要引入其他AS的路由时,AS边缘路由器会在IGP路由表中引入BGP的路由。为了避免大量BGP路由对AS内设备造成影响,当IGP引入BGP路由时,可以使用路由策略,进行路由过滤和路由属性设置。
BGP和IGP互相引入产生的问题及解决方法
当需要在AS之间传递路由的时候,经常会通过BGP和IGP互相引入来实现,但是这种实现方式存在如下问题:
- 如果BGP路由数量较大,那么AS内部的低端设备可能不能装载如此大规模的路由,造成路由丢失。
- 如果某条路由不稳定(例如端口频繁UP/DOWN),可能会导致整个AS的路由震荡,影响网络的稳定性。
- BGP是靠路由属性来防止路由环路的,例如AS_PATH属性,当所有BGP路由重分布到IGP中后,路由属性就会丢失,这就破坏了BGP的路由防环机制,产生了路由环路的隐患。
在较大规模的IP网络中,一般情况下BGP路由的规模会远远大于IGP路由,因此当涉及到将BGP路由引入IGP的时候,请务必慎重操作,防止大量BGP路由引入IGP,影响到IGP路由的运行。可以考虑通过缺省路由、路由汇总等手段减少路由的数量。
BGP安全性
BGP使用认证和通用TTL安全保护机制GTSM(Generalized TTL Security Mechanism)两个方法保证BGP对等体间的交互安全。
BGP认证
BGP认证分为MD5认证和Keychain认证,对BGP对等体关系进行认证是提高安全性的有效手段。MD5认证只能为TCP连接设置认证密码,而Keychain认证除了可以为TCP连接设置认证密码外,还可以对BGP协议报文进行认证。
BGP GTSM
BGP GTSM检测IP报文头中的TTL(time-to-live)值是否在一个预先设置好的特定范围内,并对不符合TTL值范围的报文进行允许通过或丢弃的操作,从而实现了保护IP层以上业务,增强系统安全性的目的。
例如将IBGP对等体的报文的TTL的范围设为254至255。当攻击者模拟合法的BGP协议报文,对设备不断的发送报文进行攻击时,TTL值必然小于254。如果没有使能BGP GTSM功能,设备收到这些报文后,发现是发送给本机的报文,会直接上送控制层面处理。这时将会因为控制层面处理大量攻击报文,导致设备CPU占用率高,系统异常繁忙。如果使能BGP GTSM功能,系统会对所有BGP报文的TTL值进行检查,丢弃TTL值小于254的攻击报文,从而避免了因网络攻击报文导致CPU占用率高的问题。
BGP的路由优选规则
当BGP收到到达同一目的地的多条路由时,会根据选路规则选择出最优路由,然后将最优路由下发到IP路由表,指导数据流量转发。在交换机的实现中,当到达同一目的地存在多条路由时
当到达同一个目的网段存在多条路由时,BGP通过如下的次序进行路由优选:
丢弃下一跳不可达的路由。 优选Preferred-Value属性值最大的路由。
优选Local_Preference属性值最大的路由。
本地始发的BGP路由优于从其他对等体学习到的路由,本地始发的路由优先级:优选手动聚合>自动聚合>network>import>从对等体学到的。
优选AS_Path属性值最短的路由。 优选Origin属性最优的路由。
Origin属性值按优先级从高到低的排列是:IGP、EGP及Incomplete。
优选MED属性值最小的路由。
优选从EBGP对等体学来的路由(EBGP路由优先级高于IBGP路由)。
优选到Next_Hop的IGP度量值最小的路由。
优选Cluster_List最短的路由。
优选Router ID(Orginator_ID)最小的设备通告的路由。
优选具有最小IP地址的对等体通告的路由。
PL LAO MEN 优选规则 11条优选规则
私网路由选路规则
在交换机的实现中,私网BGP路由选路规则与公网BGP路由选路规则相同。唯一的不同是,相对于公网BGP路由,私网BGP路由需要根据VPN-Target进行路由交叉。
BGP的路由属性
在BGP路由表中,到达同一目的地可能存在多条路由。此时BGP会选择其中一条路由作为最佳路由,并只把此路由发送给其对等体。BGP为了选出最佳路由,会根据BGP的路由优选规则依次比较这些路由的BGP属性。
BGP属性
路由属性是对路由的特定描述,所有的BGP路由属性都可以分为以下4类,常见BGP属性类型如表1所示:
-
公认必须遵循(Well-known mandatory):所有BGP设备都可以识别此类属性,且必须存在于Update报文中。如果缺少这类属性,路由信息就会出错。
-
公认任意(Well-known discretionary):所有BGP设备都可以识别此类属性,但不要求必须存在于Update报文中,即就算缺少这类属性,路由信息也不会出错。
-
可选过渡(Optional transitive):在AS之间具有可传递性的属性。BGP设备可以不支持此属性,但它仍然会接收这类属性,并传递给其他对等体。
-
可选非过渡(Optional non-transitive):BGP设备可以不识别此类属性,如果BGP设备不识别此类属性,则会被忽略该属性,且不会通告给其他对等体。
属性名 | 类型 |
---|---|
Origin属性 | 公认必须遵循 |
AS_Path属性 | 公认必须遵循 |
Next_Hop属性 | 公认必须遵循 |
Local_Pref属性 | 公认任意 |
MED属性 | 可选非过渡 |
团体属性 | 可选过渡 |
Originator_ID属性 | 可选非过渡 |
Cluster_List属性 | 可选非过渡 |
下面介绍几种常用的BGP路由属性:
-
Origin属性
Origin属性用来定义路径信息的来源,标记一条路由是怎么成为BGP路由的。它有以下3种类型:
-
IGP:具有最高的优先级。通过network命令注入到BGP路由表的路由,其Origin属性为IGP。
-
EGP:优先级次之。通过EGP得到的路由信息,其Origin属性为EGP。
-
Incomplete:优先级最低。通过其他方式学习到的路由信息。比如BGP通过import-route命令引入的路由,其Origin属性为Incomplete。
-
-
AS_Path属性
AS_Path属性按矢量顺序记录了某条路由从本地到目的地址所要经过的所有AS编号。在接收路由时,设备如果发现AS_Path列表中有本AS号,则不接收该路由,从而避免了AS间的路由环路。
当BGP Speaker传播自身引入的路由时:
-
当BGP Speaker将这条路由通告到EBGP对等体时,便会在Update报文中创建一个携带本地AS号的AS_Path列表。
-
当BGP Speaker将这条路由通告给IBGP对等体时,便会在Update报文中创建一个空的AS_Path列表。
当BGP Speaker传播从其他BGP Speaker的Update报文中学习到的路由时:
-
当BGP Speaker将这条路由通告给EBGP对等体时,便会把本地AS编号添加在AS_Path列表的最前面(最左面)。收到此路由的BGP设备根据AS_Path属性就可以知道去目的地址所要经过的AS。离本地AS最近的相邻AS号排在前面,其他AS号按顺序依次排列。
-
当BGP Speaker将这条路由通告给IBGP对等体时,不会改变这条路由相关的AS_Path属性。
-
-
Next_Hop属性
Next_Hop属性记录了路由的下一跳信息。BGP的下一跳属性和IGP的有所不同,不一定就是邻居设备的IP地址。通常情况下,Next_Hop属性遵循下面的规则:
-
BGP Speaker在向EBGP对等体发布某条路由时,会把该路由信息的下一跳属性设置为本地与对端建立BGP邻居关系的接口地址。
-
BGP Speaker将本地始发路由发布给IBGP对等体时,会把该路由信息的下一跳属性设置为本地与对端建立BGP邻居关系的接口地址。
-
BGP Speaker在向IBGP对等体发布从EBGP对等体学来的路由时,并不改变该路由信息的下一跳属性。
-
-
Local_Pref属性
Local_Pref属性表明路由器的BGP优先级,用于判断流量离开AS时的最佳路由。当BGP的设备通过不同的IBGP对等体得到目的地址相同但下一跳不同的多条路由时,将优先选择Local_Pref属性值较高的路由。Local_Pref属性仅在IBGP对等体之间有效,不通告给其他AS。Local_Pref属性可以手动配置,如果路由没有配置Local_Pref属性,BGP选路时将该路由的Local_Pref值按缺省值100来处理。
-
MED属性
MED(Multi-Exit Discriminator)属性用于判断流量进入AS时的最佳路由,当一个运行BGP的设备通过不同的EBGP对等体得到目的地址相同但下一跳不同的多条路由时,在其它条件相同的情况下,将优先选择MED值较小者作为最佳路由。
MED属性仅在相邻两个AS之间传递,收到此属性的AS一方不会再将其通告给任何其他第三方AS。MED属性可以手动配置,如果路由没有配置MED属性,BGP选路时将该路由的MED值按缺省值0来处理。
-
团体属性
团体属性(Community)用于标识具有相同特征的BGP路由,使路由策略的应用更加灵活,同时降低了维护管理的难度。
团体属性分为自定义团体属性和公认团体属性。公认团体属性如表2所示。
表2 公认团体属性 团体属性名称
团体属性号
说明
Internet
0(0x00000000)
设备在收到具有此属性的路由后,可以向任何BGP对等体发送该路由。
No_Advertise
4294967042(0xFFFFFF02)
设备收到具有此属性的路由后,将不向任何BGP对等体发送该路由。
No_Export
4294967041(0xFFFFFF01)
设备收到具有此属性的路由后,将不向AS外发送该路由。
No_Export_Subconfed
4294967043(0xFFFFFF03)
设备收到具有此属性的路由后,将不向AS外发送该路由,也不向AS内其他子AS发布此路由。
-
Originator_ID属性和Cluster_List属性
Originator_ID属性和Cluster_List属性用于解决路由反射器场景中的环路问题.
路由反射器
为保证IBGP对等体之间的连通性,需要在IBGP对等体之间建立全连接关系。假设在一个AS内部有n台设备,那么建立的IBGP连接数就为n(n-1)/2。当设备数目很多时,设备配置将十分复杂,而且配置后网络资源和CPU资源的消耗都很大。在IBGP对等体间使用路由反射器可以解决以上问题。
-
路由反射器RR(Route Reflector):允许把从IBGP对等体学到的路由反射到其他IBGP对等体的BGP设备,类似OSPF网络中的DR。
-
客户机(Client):与RR形成反射邻居关系的IBGP设备。在AS内部客户机只需要与RR直连。
-
非客户机(Non-Client):既不是RR也不是客户机的IBGP设备。在AS内部非客户机与RR之间,以及所有的非客户机之间仍然必须建立全连接关系。
-
始发者(Originator):在AS内部始发路由的设备。Originator_ID属性用于防止集群内产生路由环路。
-
集群(Cluster):路由反射器及其客户机的集合。Cluster_List属性用于防止集群间产生路由环路
路由反射器原理
同一集群内的客户机只需要与该集群的RR直接交换路由信息,因此客户机只需要与RR之间建立IBGP连接,不需要与其他客户机建立IBGP连接,从而减少了IBGP连接数量。如图1所示,在AS65000内一台设备作为RR,三台设备作为客户机,形成Cluster1。此时AS65000中IBGP的连接数从配置RR前的10条减少到4条,不仅简化了设备的配置,也减轻了网络和CPU的负担。
RR突破了“从IBGP对等体获得的BGP路由,BGP设备只发布给它的EBGP对等体。”的限制,并采用独有的Cluster_List属性和Originator_ID属性防止路由环路。RR向IBGP邻居发布路由规则如下:
-
从非客户机学到的路由,发布给所有客户机。
-
从客户机学到的路由,发布给所有非客户机和客户机(发起此路由的客户机除外)。
-
从EBGP对等体学到的路由,发布给所有的非客户机和客户机。
非非不传路由
Cluster_List属性
路由反射器和它的客户机组成一个集群(Cluster),使用AS内唯一的Cluster ID作为标识。为了防止集群间产生路由环路,路由反射器使用Cluster_List属性,记录路由经过的所有集群的Cluster ID。
-
当一条路由第一次被RR反射的时候,RR会把本地Cluster ID添加到Cluster List的前面。如果没有Cluster_List属性,RR就创建一个。
-
当RR接收到一条更新路由时,RR会检查Cluster List。如果Cluster List中已经有本地Cluster ID,丢弃该路由;如果没有本地Cluster ID,将其加入Cluster List,然后反射该更新路由。
Originator_ID属性
Originator ID由RR产生,使用的Router ID的值标识路由的始发者,用于防止集群内产生路由环路。
-
当一条路由第一次被RR反射的时候,RR将Originator_ID属性加入这条路由,标识这条路由的发起设备。如果一条路由中已经存在了Originator_ID属性,则RR将不会创建新的Originator_ID属性。
-
当设备接收到这条路由的时候,将比较收到的Originator ID和本地的Router ID,如果两个ID相同,则不接收此路由。
BGP联盟
解决AS内部的IBGP网络连接激增问题,除了使用路由反射器之外,还可以使用联盟(Confederation)。联盟将一个AS划分为若干个子AS。每个子AS内部建立IBGP全连接关系,子AS之间建立联盟EBGP连接关系,但联盟外部AS仍认为联盟是一个AS。配置联盟后,原AS号将作为每个路由器的联盟ID。这样有两个好处:一是可以保留原有的IBGP属性,包括Local Preference属性、MED属性和NEXT_HOP属性等;二是联盟相关的属性在传出联盟时会自动被删除,即管理员无需在联盟的出口处配置过滤子AS号等信息的操作
路由聚合
在大规模的网络中,BGP路由表十分庞大,给设备造成了很大的负担,同时使发生路由振荡的几率也大大增加,影响网络的稳定性。
路由聚合是将多条路由合并的机制,它通过只向对等体发送聚合后的路由而不发送所有的具体路由的方法,减小路由表的规模。并且被聚合的路由如果发生路由振荡,也不再对网络造成影响,从而提高了网络的稳定性。
BGP在IPv4网络中支持自动聚合和手动聚合两种方式,而IPv6网络中仅支持手动聚合方式:
-
自动聚合:对BGP引入的路由进行聚合。配置自动聚合后,BGP将按照自然网段聚合路由(例如非自然网段A类地址10.1.1.1/24和10.2.1.1/24将聚合为自然网段A类地址10.0.0.0/8),并且BGP向对等体只发送聚合后的路由。
-
手动聚合:对BGP本地路由表中存在的路由进行聚合。手动聚合可以控制聚合路由的属性,以及决定是否发布具体路由。
为了避免路由聚合可能引起的路由环路,BGP设计了AS_Set属性。AS_Set属性是一种无序的AS_Path属性,标明聚合路由所经过的AS号。当聚合路由重新进入AS_Set属性中列出的任何一个AS时,BGP将会检测到自己的AS号在聚合路由的AS_Set属性中,于是会丢弃该聚合路由,从而避免了路由环路的形成。
BGP GR
BGP的平滑重启GR(Graceful Restart)作为高可靠性的解决方案,其根本目的都是为了保证用户业务在设备故障的时候不受影响或者影响最小。
BGP GR技术保证了在设备重启或者主备倒换过程中转发层面能够继续指导数据的转发,同时控制层面邻居关系的重建以及路由计算等动作不会影响转发层面的功能,从而避免了路由震荡引发的业务中断,提高了整网的可靠性。
GR相关概念:
-
GR Restarter:指由管理员触发或故障触发后,以GR方式重启的设备。
-
GR Helper:GR Restarter的邻居,协助GR Restarter进行GR的设备。
-
GR Time:是GR Helper检测到GR Restarter重启或者主备倒换后,保持转发信息不删除的时间。
BGP GR的过程是:
-
利用BGP的能力协商机制,GR Restarter和GR Helper了解彼此的GR能力,建立有GR能力的会话。
-
当GR Helper检查到GR Restarter重启或者主备倒换后,不删除和GR Restarter相关的路由和转发表项,也不通知其他邻居,而是等待重建BGP连接。
-
GR Restarter在GR Time超时前与重启前的所有GR Helper新建立好邻居关系。
BGP按组打包
目前现网路由表的快速增长,以及网络拓扑的复杂性导致BGP需要支持更多的邻居。特别是一些邻居数目多且路由量大的场景下,针对路由器需要给大量的BGP邻居发送路由,且大部分邻居具有相同出口策略的特点,要求较高的打包发包性能。
按组打包技术将所有拥有共同出口策略的BGP邻居当作是一个打包组。这样每条待发送路由只被打包一次然后发给组内的所有邻居,使打包效率指数级提升。例如,一个反射器有100个客户机,有10万条路由需要反射。如果按照每个邻居分别打包的方式,反射器RR在向100个客户机发送路由的时候,所有路由被打包的总次数是10万×100。而按组打包技术将这个过程变为10万×1,性能相当于提升了100倍。
应用
在邻居数目多、路由量大且大部分邻居具有相同出口策略的场景下,按组打包技术极大的提高了BGP打包发包性能,并提高路由发布效率
MP-BGP与地址族
传统的BGP-4只能管理IPv4单播路由信息,对于使用其它网络层协议(如IPv6、组播等)的应用就受到一定限制。
为了提供对多种网络层协议的支持,IETF(Internet Engineering Task Force)对BGP-4进行了扩展,形成MP-BGP(Multi-protocol Extensions for Border Gateway Protocol),目前的MP-BGP标准是RFC4760(Multiprotocol Extensions for BGP-4,BGP-4的多协议扩展)。MP-BGP向前兼容,即支持BGP扩展的设备与不支持BGP扩展的设备可以互通。
MP-BGP在现有BGP-4协议的基础上增强功能,使BGP能够为多种路由协议提供路由信息,包括IPv6(即BGP4+)和组播。
-
MP-BGP可以同时为单播和组播维护路由信息,将它们储存在不同的路由表中,保持单播和组播之间路由信息相互隔离。
-
MP-BGP可以同时支持单播和组播模式,为两种模式构建不同的网络拓扑结构。
-
原BGP-4支持的单播路由策略和配置方法大部分都可应用于组播模式,从而根据路由策略为单播和组播维护不同的路由。
扩展属性
BGP-4使用的报文中,与IPv4相关的三处信息都由Update报文携带,这三处信息分别是:NLRI(Network Layer Reachable Information)字段、Next_Hop属性、Aggregator属性(该属性中包含形成聚合路由的BGP Speaker的IP地址)。
为实现对多种网络层协议的支持,BGP-4需要将网络层协议的信息反映到NLRI及Next_Hop。MP-BGP中引入了两个新的路径属性:
-
MP_REACH_NLRI:Multiprotocol Reachable NLRI,多协议可达NLRI。用于发布可达路由及下一跳信息。
-
MP_UNREACH_NLRI:Multiprotocol Unreachable NLRI,多协议不可达NLRI。用于撤销不可达路由。
这两种属性都是可选非过渡(Optional non-transitive)的,因此,不提供多协议能力的BGP Speaker将忽略这两个属性的信息,不把它们传递给其它邻居。
地址族
BGP采用地址族(Address Family)来区分不同的网络层协议,交换机实现多种MP-BGP扩展应用,不同的扩展应在各自的地址族视图下配置。
关于BGP地址族的介绍请参考表1。
BGP地址族 | AFI | SAFI | 应用场景 | 进入步骤 |
---|---|---|---|---|
BGP-IPv4单播地址族 | 1 | 1或4 | BGP-IPv4单播地址族有以下作用:
| <HUAWEI> system-view [HUAWEI] bgp 65001 [HUAWEI-bgp] ipv4-family unicast [HUAWEI-bgp-af-ipv4] |
BGP-IPv4组播地址族 | 1 | 2 | BGP-IPv4组播地址族主要用于配置MBGP(Multicast BGP)邻居。当组播源与组播接收者分布在不同的自治系统AS(Autonomous System)中时,需要跨AS建立组播转发树。应用MBGP可以专门为组播传输跨AS的路由信息。 | <HUAWEI> system-view [HUAWEI] bgp 65001 [HUAWEI-bgp] ipv4-family multicast [HUAWEI-bgp-af-multicast] |
BGP VPN实例IPv4地址族 | 1 | 1 | BGP VPN实例IPv4地址族主要用于在BGP/MPLS IP VPN场景里,PE和CE之间使用BGP交换私网IPv4路由。 | <HUAWEI> system-view [HUAWEI] bgp 65001 [HUAWEI-bgp] ipv4-family vpn-instance vpna [HUAWEI-bgp-vpna] |
BGP-VPNv4地址族 | 1 | 128 | BGP-VPNv4地址族主要用于在BGP/MPLS IP VPN场景里,不同PE之间建立BGP VPNv4邻居来交换VPNv4路由。 在BGP VPNv4扩展中,PE从CE学到CE本地的VPN路由信息后,在路由信息中增加RD和ERT(Export Route Target),再通过BGP VPNv4邻居关系与其它PE交换VPN路由信息。不同VPN的路由在公网中通过RD进行区分,不同CE之间的路由使用RT进行引入控制。PE只维护与它直接相连的VPN的路由信息,不维护服务提供商网络中的所有VPN路由。 | <HUAWEI> system-view [HUAWEI] bgp 65001 [HUAWEI-bgp] ipv4-family vpnv4 [HUAWEI-bgp-af-vpnv4] |
BGP-MDT地址族 | 1 | 66 | BGP-MDT地址族主要用于部署PIM SSM(Source-Specific Multicast)的场景,它的作用是将PE上Share-Group的源组信息通过PE之间的BGP会话进行传递。 实际应用中还可能碰到这样的问题:要在公网部署PIM SSM必须知道源地址,而Share-Group是PE上配置,PE并不知道其他PE上Share-Group对应的组播源地址(即MT(Multicast Tunnel)的接口地址,由MD(Multicast Domain)选取PE上建立公网BGP邻居的接口地址)。 | <HUAWEI> system-view [HUAWEI] bgp 65001 [HUAWEI-bgp] ipv4-family mdt [HUAWEI-bgp-af-mdt] |
BGP-MVPN地址族 | 1 | 5 | BGP A-D组播VPN分为MDT-SAFI A-D模式和MCAST-VPN SAFI A-D模式。 BGP A-D组播VPN的两种模式都是通过BGP对等体的消息传递组播VPN的配置信息,包括RD以及Share-group地址,来发现PE对等体的信息,进而支持组播VPN业务运行在以PIM-SSM分发树为基础的公网隧道中。两种模式相比较,MCAST-VPN SAFI A-D方式定义的更宽泛,支持更多的扩展,可以携带更多的组播VPN相关属性以及用于建立公网隧道的信息,可以用来支持下一代组播VPN。 | <HUAWEI> system-view [HUAWEI] bgp 65001 [HUAWEI-bgp] ipv4-family mvpn [HUAWEI-bgp-af-mvpn] |
BGP-IPv6单播地址族 | 2 | 1或4 | BGP-IPv6单播地址族有以下作用:
| <HUAWEI> system-view [HUAWEI] bgp 65001 [HUAWEI-bgp] ipv6-family unicast [HUAWEI-bgp-af-ipv6] |
BGP VPN实例IPv6地址族 | 2 | 1 | BGP VPN实例IPv6地址族主要用于在BGP/MPLS IPv6 VPN场景里,PE和CE之间使用IPv6 BGP交换私网IPv6路由。 | <HUAWEI> system-view [HUAWEI] bgp 65001 [HUAWEI-bgp] ipv6-family vpn-instance vpna [HUAWEI-bgp6-vpna] |
BGP-VPNv6地址族 | 2 | 128 | BGP-VPNv6地址族主要用于在BGP/MPLS IPv6 VPN场景里,不同PE之间建立BGP VPNv6邻居来交换VPNv6路由。 在BGP VPNv6扩展中,PE从CE学到CE本地的IPv6路由信息后,在路由信息中增加RD和RT,再通过BGP VPNv6邻居关系与其它PE交换VPN路由信息。不同VPN的路由在公网中通过RD进行区分,不同CE之间的路由使用RT进行引入控制。PE只维护与它直接相连的VPN的路由信息,不维护服务提供商网络中的所有VPN路由。 | <HUAWEI> system-view [HUAWEI] bgp 65001 [HUAWEI-bgp] ipv6-family vpnv6 [HUAWEI-bgp-af-vpnv6] |
BGP-L2VPN地址族 | 196 | 128 | BGP-L2VPN地址族主要用于管理L2VPN标签块信息。MPLS/L2VPN有多种实现方式,其中Kompella方式使用BGP作为交换信令。与MPLS L3VPN类似,各个PE之间通过建立BGP会话自动发现L2VPN的各个节点,并传递VPN信息,使用VPN-Target来区分不同的VPN。 | <HUAWEI> system-view [HUAWEI] bgp 65001 [HUAWEI-bgp] l2vpn-family [HUAWEI-bgp-af-l2vpn] |
BGP-VPLS地址族 | 25 | 65 | VPLS是在公用网络中提供的一种点到多点的L2VPN业务,VPLS的实现分为Kompella方式和Martini方式,其中Kompella方式的VPLS采用BGP作为信令,Martini方式的VPLS采用LDP作为信令。BGP-VPLS地址族主要用于Kompella方式的VPLS场景中,在PE设备的BGP-VPLS地址族下配置BGP邻居,主要用于通过BGP协议来交换VPLS标签块信息。 | <HUAWEI> system-view [HUAWEI] bgp 65001 [HUAWEI-bgp] vpls-family [HUAWEI-bgp-af-vpls] |
BGP L2VPN-AD地址族 | 25 | 65 | BGP L2VPN-AD地址族主要用于配置BGP AD方式的VPLS,它交换的是BGP AD方式的VPLS成员信息。 BGP AD方式VPLS结合了Kompella VPLS和Martini VPLS两种类型的VPLS信令各自的优势,首先利用扩展BGP报文在成员自动发现方面的优势来完成VSI(Virtual Switch Instance)之间的成员发现,然后利用LDP FEC 129信令来协商建立PW(Pseudo Wire),完成VPLS PW业务的自动部署。 | <HUAWEI> system-view [HUAWEI] bgp 65001 [HUAWEI-bgp] l2vpn-ad-family [HUAWEI-bgp-af-l2vpn-ad] |
BGP-EVPN地址族 | 25 | 70 | BGP-EVPN地址族主要用于配置BGP EVPN对等体。 EVPN(Ethernet Virtual Private Network)是一种用于二层网络互联的VPN技术。EVPN技术采用类似于BGP/MPLS IP VPN的机制,在BGP协议的基础上定义了一种新的网络层可达信息NLRI(Network Layer Reachability Information)即EVPN NLRI,EVPN NLRI定义了几种新的BGP EVPN路由类型,用于处在二层网络的不同站点之间的MAC地址学习和发布。 | <HUAWEI> system-view [HUAWEI] bgp 65001 [HUAWEI-bgp] l2vpn-family evpn [HUAWEI-bgp-af-evpn] |
配置BGP的基本功能示例
组网需求
如图1所示,需要在所有Router间运行BGP协议,RouterA、RouterB之间建立EBGP连接,RouterB、RouterC和RouterD之间建立IBGP全连接。
配置思路
采用如下的思路配置BGP的基本功能:
- 在RouterB、RouterC和RouterD间配置IBGP连接。
- 在RouterA和RouterB之间配置EBGP连接。
RouterA的配置文件
#
sysname RouterA
#
interface GigabitEthernet1/0/0
ip address 8.1.1.1 255.0.0.0
#
interface GigabitEthernet2/0/0
ip address 200.1.1.2 255.255.255.0
#
bgp 65008
router-id 1.1.1.1
peer 200.1.1.1 as-number 65009
#
ipv4-family unicast
undo synchronization
network 8.0.0.0
peer 200.1.1.1 enable
#
return
RouterB的配置文件
#
sysname RouterB
#
interface GigabitEthernet1/0/0
ip address 9.1.1.1 255.255.255.0
#
interface GigabitEthernet2/0/0
ip address 200.1.1.1 255.255.255.0
#
interface GigabitEthernet3/0/0
ip address 9.1.3.1 255.255.255.0
#
bgp 65009
router-id 2.2.2.2
peer 9.1.1.2 as-number 65009
peer 9.1.3.2 as-number 65009
peer 200.1.1.2 as-number 65008
#
ipv4-family unicast
undo synchronization
import-route direct
peer 9.1.1.2 enable
peer 9.1.3.2 enable
peer 200.1.1.2 enable
#
return
RouterC的配置文件
#
sysname RouterC
#
interface GigabitEthernet2/0/0
ip address 9.1.2.1 255.255.255.0
#
interface GigabitEthernet3/0/0
ip address 9.1.3.2 255.255.255.0
#
bgp 65009
router-id 3.3.3.3
peer 9.1.2.2 as-number 65009
peer 9.1.3.1 as-number 65009
#
ipv4-family unicast
undo synchronization
peer 9.1.2.2 enable
peer 9.1.3.1 enable
#
return
RouterD的配置文件
#
sysname RouterD
#
interface GigabitEthernet1/0/0
ip address 9.1.1.2 255.255.255.0
#
interface GigabitEthernet2/0/0
ip address 9.1.2.2 255.255.255.0
#
bgp 65009
router-id 4.4.4.4
peer 9.1.1.1 as-number 65009
peer 9.1.2.1 as-number 65009
#
ipv4-family unicast
undo synchronization
peer 9.1.1.1 enable
peer 9.1.2.1 enable
#
return