BGP---BGP大规模路由应用
在较大规模组网或者路由条目较多的情况下,出于简化配置,减少路由条目,提升设备性能等等因素的考虑,会需要用到以下几种工具或技术
- 路由聚合(Aggregation)
- 对等体组(Peer Group)
- 团体属性(Community )
- 路由反射(Route Reflection )
- BGP联盟(Confederations )
1.路由聚合
作用:
-
只向对等体发送聚合后的路由,从而缩小路由表规模
-
明细路由如果发生路由震荡,不会对网络造成影响
分为自动聚合和手动聚合
- IPv4中BGP支持手动聚合和自动聚合
- IPv6中BGP只支持手动聚合
自动聚合
对BGP引入的路由进行有类聚合
仅对import引入的路由进行聚合(network无效)
配置聚合后,所有明细路由将被抑制
缺省情况下BGP不启用自动聚合
聚合后的路由将带有atomic aggregate和aggregator属性
[AR1-bgp]import-route direct
[AR1-bgp]summary automatic ##启动自动聚合功能
缺点:
-
聚合后的路由主机地址范围扩大,不精确
-
聚合范围优先,只能针对import路由
手动聚合
对BGP本地路由表中的路由进行聚合,手动聚合可以控制聚合路由的属性,以及决定是否发布明细路由
扩展配置
[R2-bgp]aggregate 192.168.1.0 255.255.255.248 ?
- as-set --继承明细路由的AS属性,BGP路由表用{}存放明细路由AS号,AS号排序无意义
- attribute-policy --用来修改汇总路由的属性
##针对聚合路由修改路由属性为? route-policy att permit node 10 apply origin incomplete ##修改路由属性为? ##bgp下调用 bgp 100 aggregate 192.168.1.0 255.255.255.248 attribute-policy att ##定义策略时不需要匹配对应网段
- detail-suppressed --抑制所有明细路由
aggregate 192.168.1.0 255.255.255.248 detail-suppressed ##抑制所有明细路由
- origin-policy --用于选择汇总的明细路由
- suppress-policy --抑制被策略匹配出来的明细路由
##只抑制192.168.1.3/32 ip ip-prefix sup permit 192.168.1.3 32 route-policy sup permit node 10 if-match ip-prefix sup bgp 100 aggregate 192.168.1.0 255.255.255.248 suppress-policy sup
Atomic-aggregate:为了警告网络管理员,当手工聚合并且抑制明细,可能会产生环路问题
Aggregator ID:聚合者
聚合之后是否继承明细路由的路径属性
- origin 属性继承最差
- next-hop 不继承
- as-path 默认不继承,配置AS-SET可以还原
- med、localpre不继承
- 团体属性 继承
聚合路由的防环
- 通过AS-SET命令,还原聚合路由的AS号
- 在路由表中添加针对聚合路由指向null0(自动生成)
2.对等体组
对等体组(Peer Group)是一些具有某些相同策略的对等体的集合。
此功能可以简化BGP配置,同时减少路由性能的消耗
在大型BGP网络中,对等体的数量会很多,其中很多对等体具有相同的策略,在配置时会重复使用一些命令,利用对等体组可以简化配置
对等体组中的单个对等体,也可以配置自己的发布路由与接收路由的策略
##配置
group 名字 internal/external ##创建对等体组,internal为IBGP对等体组、external为EBGP对等体组
peer X.X.X.X 指定邻居的AS号 ##在EBGP邻居对等体组才需要
peer X.X.X.X group + 组名 ##将邻居加入到对等体中
peer huawei connect-interface LoopBack0 ##配置策略
peer huawei next-hop-local ##配置策略
###
对等体组是如何减少路由性能损耗的
默认情况下,BGO会针对不同邻居单独打包路由(即使针对不同邻居有相同的路由策略)
-
按组打包技术
-
- 按组打包技术将所有拥有共同出口策略的BGP邻居当作是一个打包组,每条待发送的路由只被打包一次然后发送给组内所有的邻居
3.团体属性
基本概念
-
团体属性用于标识具有相同特征的BGP 路由,该属性为可选过渡
-
团体属性是一组有相同特征的目的地址的集合。团体属性用一组以4字节为单位的列表来表示
-
设备中团体属性的格式是mm:nn或团体号
-
团体属性用来简化路由策略的应用和降低维护管理的难度,利用团体可以使多个AS中的一组BGP设备共享相同的策略。团体是一个路由属性,在BGP对等体之间传播,且不受AS的限制。BGP设备在将带有团体属性的路由发布给其它对等体之前,可以先改变此路由原有的团体属性。
分类
分为基本团体属性和扩展团体属性
基本团体属性分为自动以团体属性、公认团体属性
-
自定义团体属性
- 格式:mm:nn
- 通常mm为自治系统的AS号,nn是管理员自定义
- 取值范围:0-65535
- 格式:mm:nn
-
公认团体属性
- Internet
- No Advertise
- No Export
- No_Export_Subconfed
团体名称 | 团体标识 | 说明 |
---|---|---|
Internet | 0(0x00000000) | 缺省情况下,所有路由器都属于Internet团体。具有此属性的路由可以被通告给所有的BGP对等体。 |
No_Export | 4294967041(0xFFFFFF01) | 具有此属性的路由在收到后,不能被发布到本地AS之外。不传出第三个AS |
No_Advertise | 4294967042(0xFFFFFF02) | 具有此属性的路由在收到后,不能被通告给任何其他的BGP对等体。 |
No_Export_Subconfed | 4294967043(0xFFFFFF03) | 具有此属性的路由在收到后,不能被发布到本地AS之外,也不能被发布到其他子AS。 |
团体号
- 团体号是0-4294967295的整数
- RFC1997中定义 0(0x00000000)~65535(0x0000FFFF)4294901760(0xFFFF0000)~4294967295(0xFFFFFFFF)是预留的
- 0-65535 是给自定义团体属性的预留的
- 4294901760-4294967295是给公认团体属性预留的
4.路由反射
作用
- 打破BGP通告原则3(打破水平分割),允许将从IBGP邻居学习到的路由发送给特定IBGP邻居,打破了IBGP邻居关系全互联的需求,减少IBGP会话的数量
概念
- 路由反射器RR(Route Reflector):允许把从IBGP 对等体学到的路由反射到其他IBGP对等体的BGP设备。
- 客户机(Client):与RR形成反射邻居关系的IBGP设备。在AS内部客户机只需要与RR直连。
- 非客户机(Non-Client):既不是RR也不是客户机的IBGP设备。在AS内部非客户机与RR之间,以及所有的非客户机之间仍然必须建立全连接关系。
- 始发者(Originator):在AS内部始发路由的设备。Originator_ID属性用于防止集群内产生路由环路。
- 集群(Cluster):路由反射器及其客户机的集合。Cluster_List属性用于防止集群间产生路由环路。
反射规则
- 从EBGP对等体学习的路由,发送给所有的非客户机和客户机
- 从非客户机学习的路由,发送给所有的客户机
- 从客户机学习的路由,发布给所有的客户机和非客户机
- 非非不传
- 从非客户机学习的路由,不发送给非客户机
防环规则
originator_ID
-
可选非过度属性
-
用于集群内的防环
-
由路由反射器(RR)产生,携带了本地AS该路由发送者的router id
-
防环原理
-
当一条路由第一次被RR反射的时候,RR将Originator_ID属性加入这条路由,标识这条路由的发起设备。如果一条路由中已经存在了Originator_ID属性,则RR将不会创建新的Originator_ID属性。
-
当设备接收到这条路由的时候,将比较收到的Originator ID和本地的Router ID,如果两个ID相同,则不接收此路由
-
cluster_list
- 可选非过渡属性
- 用于集群间的防环
- 由每个路由反射器(RR)产生,记录反射路由经过的集群
- cluster ID
- 每个路由反射器使用唯一的cluster ID作为集群标识
- 生成方式
- 自动生成:router id作为cluster id
- 手动配置:reflector cluster-id x.x.x.x
- 防环原理
- 记录路由经过的所有集群的Cluster ID。
- 当RR在它的客户机之间或客户机与非客户机之间反射路由时,RR会把本地Cluster_ID添加到Cluster_List的前面。如果Cluster_List为空,RR就创建一个。
- 当RR接收到一条更新路由时,RR会检查Cluster_List。
- 如果Cluster_List中已经有本地Cluster_ID,丢弃该路由;
- 如果没有本地Cluster_ID,将其加入Cluster_List,然后反射该更新路由。
注意
- RR的配置方便,只需要在反射器上进行配置,客户机并不知道自己是客户机
备份RR
- 一个集群内存在两个以上的RR
同级反射器
- 一个AS中可能存在多个集群,各个RR之间是IBGP对等体的关系
分级反射器
- 将较低网络层次的RR配成更高网络层次中RR的客户机
在某些网络中,路由反射器的客户机之间已经建立了全连接,它们可以直接交换路由信息,此
时客户机到客户机之间的路由反射是没有必要的,而且还占用带宽资源。VRP支持配置命令undo reflect between-clients来禁止RR将从客户机收到的路由再反射给其他客户机。
5.BGP联盟
将一个AS划分为若干个子AS,每个子AS内部建立全连接的IBGP邻居,子AS之间建立EBGP连接关系
- 配置联盟后,原AS号将作为每个路由器的联盟ID
- 原有的IBGP属性(local preference、MED、next_hop等)会保留
- 联盟相关的属性在传出联盟时会自动被删除
- 联盟内部的成员AS号对于其他非联盟AS是不可见的,所以路由在从联盟内部发送到其他非联盟AS时,联盟成员AS号被剥离
配置
##配置前需要删除原有AS号、创建新的成员AS号
bgp 65001
confederation id 100 ##指定联盟ID
peer 10.1.12.1 as-number 65001 ##指定联盟内的IBGP邻居
peer 10.1.24.4 as-number 200 ##指定联盟外的EBGP邻居
confederation peer-as 65002 ##65002是联盟内的EBGP邻居
peer 10.1.13.3 as-number 65002
联盟的防环机制
AS_SET: 由一系列AS号无序地组成,包含在UPDATE消息里。当网络发生聚合时,可通过适当策略使AS_PATH使用类型AS_SET来避免路径信息丢失。
AS_SEQUENCE: 由一系列AS号顺序地组成,包含在UPDATE消息里。一般情况下,AS_PATH类型为AS_SEQUENCE。
-
AS_CONFED_SEQUENCE
- 在本地联盟内由一系列成员AS号按顺序地组成,包含在UPDATE消息中,用法和AS_SEQUENCE相同,只能在本地联盟内传递
-
AS_CONFED_SET
- 在本地联盟内由一系列成员AS无序组成,包含在UPDATE消息中,用法和AS_SET相同,只能在本地联盟内传递
反射器和联盟的比较
反射器和联盟都用于打破BGP通告原则3(水平分割):从IBGP接收的路由不传递给IBGP
反射器 | 联盟 |
---|---|
不需要更改现有的网络拓扑,兼容性好 | 需要修改逻辑拓扑 |
配置方便,客户机不知道自己是客户机 | 所有设备需要重新进行配置,且所有设备必须支持联盟功能 |
集群与集群之间仍然需要全连接 | 联盟的子AS之间是特殊的EBGP连接,不需要全连接 |
在大型网络中应用广泛 | 应用较少 |