BGP联盟
文章目录
- BGP联盟
🏡作者主页:点击!
🤖Datacom专栏:点击!
⏰️创作时间:2025年05月11日15点31分
BGP联盟
BGP联盟用于优化 IBGP 全互联架构
部署联盟的时候,子AS编号使用的是私有AS号码:64512~65535
路由反射器用来减少大型AS中IBGP邻居关系的数量和简化IBGP邻居关系的维护和管理,BGP的联盟也可以实现类似的目的
在配置联盟的AS内最好使用IGP达到全AS互联,不然在子AS边界路由器传播到子AS内的时候,子AS内的路由器是学不到最优的路由,下一跳永远是子AS边界路由器连接另一个子AS的接口
联盟的优点:
- 联盟内,保留联盟外部的Next-Hop属性
- 通告给联盟内部的路由器MED属性在整个联盟内部
- 本地优先级属性一样会在联盟内部
- 内部联盟AS不会传递给其他真正的AS
- 联盟AS_Path属性是可以用于联盟内AS防环,但是联盟内部不会参考AS_Path属性
- 联盟内部生成的属性传出联盟后会自动删除
特点:
- 在联盟内部建立EBGP邻居的时候使用环回口稳定性更高,但是使用环回口建立就需要配置ebgp-max-hop命令
next-hop-local 命令在联盟中的应用:
只有当从联盟EBGP邻居接收到的路由,传递给IBGP或者传递给成员EBGP邻居的时候才会修改下一跳,对于联盟内的成员AS中的EBGP邻居是不会生效的
联盟内路由传递属性特点:----HCIE
- 成员AS之间路由传递,对于属性而言,当作IBGP邻居等同对待(RR的起源ID和簇列表发送给成员EBGP邻居的时候不携带,只有经过反射的路由才会带上起源ID和簇列表)
- 当配置BGP路由负载的时候,如果 AS_Path列表中存在成员AS号,也会要求成员AS号和顺序完全相同
- 联盟内的AS号,不能作为BGP路由选择最优路由的依据(联盟内的AS不能作为AS_Path属性选路)
- BGP只比较 AS_Path 列表中,最左边AS号相同的MED值,这个 AS 不包括联盟 AS
- 联盟内BGP路由传递下一跳特点:
- 从联盟EBGP邻居接收到路由,传递给IBGP邻居和成员EBGP邻居的时候下一跳默认不变,使用命令修改 next-hop-local
- 从IBGP收到的路由,传递给成员EBGP邻居的时候,下一跳不会改变,无法使用命令修改
- 从成员EBGP邻居收到的路由,传递给IBGP邻居的时候,下一跳不会改变,无法使用命令修改
- 从成员EBGP邻居收到的路由,传递给EBGP邻居的时候,下一跳不会改变,无法使用命令修改
联盟AS内要不要启用同一种AS协议----面试–(先分析下一跳特点,基于特征将下面的方案说一下)–提升----HCIE
华为设备成员EBGP邻居之间传递BGP路由的时候,下一跳不会改变,并且无法使用 next-hop-local 修改,基于这种特征建议在一个联盟AS内部署同一种 IGP 协议,使得BGP设备学习到路由的下一跳地址
但并不是必须要部署同一种IGP协议,如果子AS内的设备数量很多,也可以在每一个字AS内部署一种 IGP 协议,但是考虑到成员EBGP邻居之间传递路由下一跳没法修改的问题,可以使用以下方式进行弥补:
- 在IGP的ASBR上互相引入本AS内所有设备的Loopback接口地址(如果全部引入的话,和使用同一种IGP协议是一样的)考虑防环问题
- 在成员EBGP邻居之间使用 Router-policy 修改路由的下一跳地址配置量多,不便于管理
- 联盟内启用一种IGP协议,只发布Loopback接口,减低 IGP 协议的负担(前缀抑制)可以选择
- 成员EBGP邻居之间,使用物理接口建立EBGP邻居关系,可在成员AS内的ASBR上,将AS内部递归传递的路由在ASBR上进行发布可以选择
OSPF前缀抑制扩展----HCIE
在底层IGP互联的时候,如果使用OSPF协议做底层 IGP 的互联,那么在业务网段会存在很多LSA的泛洪,此时我们就只是想让IGP之间彼此能够学习到BGP会话点,从而减少网络链路的压力
让接口即发送OSPF报文,建立OSPF邻居又不形成LSA,使用前缀抑制功能达到此目的,当然了我认为改成P2P的网络类型也可以达到类似的效果
# 该命令不能应用到环回口上,只能是物理接口上 # 作用就是让物理网段不形成LSA,通过Loopback进行通信inter vlan1 inter g0/0/0 ospf suppress-reachablity
联盟内的AS_Path
AS_Path:公认必循属性,由AS号所组成,AS_Path包含4中不种不同的类型
- AS_Set:一系列AS号无序组成,包含Update中,当网络聚合的时候可让AS_Path使用类型AS_Set来防止路径信息丢失
- AS_Sequence:一系列AS号顺序组成,默认情况下就是Sequence
- AS_Confed_Sequence:本地联盟内一系列成员AS按顺序组成,包含Update中,只在本地联盟内传递
- AS_Confed_Set:本地联盟由一系列成员AS无序组成,包含Update中,用法和AS_Set相同(联盟聚合),本地联盟传递
联盟的配置
#一个AS内配置 bgp 2001 router-id 1.1.1.1 confederation id 200 #告诉BGP设备,自身属于联盟AS200,即向非联盟内部子AS发送的Open报文中的MyAS取值为200 confedertaion peer-as 2002 2003 #在设备有成员EBGP邻居的时候配置 #同样在AS下面的子AS还有 2002、2003(配置自己联盟内的子AS邻居,不指定自身子AS,当前设备连接到2002、2003,如果是子AS的里面的设备就不需要配置,一般是配置在子AS的边界设备上)向peer-as发送的open报文中My-as取值为私有AS peer 12.1.1.1 as 100 #正常配置EBGP邻居 peer 5.5.5.5 as 2003 #配置AS200下的EBGP邻居 peer 3.3.3.3 as 2002 #配置AS200下的EBGP邻居 peer 5.5.5.5 con loo0 #修改更新源 peer 3.3.3.3 con loo0 #修改更新源 peer 5.5.5.5 ebgp-max-hop #默认BGP发送TCP连接的TTL为1,使用命令修改 peer 3.3.3.3 ebgp-max-hop peer 5.5.5.5 next-hop-local #配置下一跳走我(应该配置在AS中的两台边界设备上指向自己AS内部邻居) peer 3.3.3.3 next-hop-local #如果没有在AS边界写的话,就会出现路由迭代,导致AS内的设备不可达