BGP(三)联盟、反射器

背景:

在一个大型的AS当中受到iBGP水平分割(从iBGP的邻居接收到的路由不能再传递给其他的iBGP邻居)的影响,将会造成BGP的路由无法通过iBGP邻居接收。解决办法有三种:

  1. 成员自治区域系统内建立全互联的IBGP邻居
  2. 成员自治区域系统之间使用特殊的EBGP连接,我们称之为联盟EBGP
  3. 路由反射器
BGP联盟

BGP联盟是一种用于优化大型自治系统内部BGP连接的技术。通过将一个大型AS分割成多个子自治系统,BGP联盟能够降低内部IBGP连接的数量,同时对外表现为一个统一的AS。这种方法不仅减少了网络资源和CPU资源的消耗,还提高了网络的管理性。

BGP联盟的工作原理

在BGP联盟中,每个子自治系统内部需要建立全连接的IBGP关系,而子自治系统之间则通过特殊的EBGP连接进行通信。对外部AS来说,整个联盟看起来像是一个单一的AS,外部无法看到内部的子自治系统。联盟内部的路由器会保留外部的next_hop属性,同时在联盟内传递的路由的MED和Local Preference属性也会被保留。在联盟内部,成员AS号会被加入到AS_PATH中,但不会传递到联盟外部。联盟内的AS_PATH属性在选择最短路径时不会比较联盟AS号,而且在传出联盟时相关的属性会被自动删除。

AS-Path属性在联盟中的应用:

分类:

1:AS_SET,一个无序的AS号列表。

2:AS_SEQENCE,一个有序的AS号列表。

3:AS_CONFED_SET,BGP联盟中特有的AS_PATH类型,类似AS_SET,其列表中含有的AS号均属于BGP联盟中的AS号。

4:AS_CONFED_SEQUENCE,BGP联盟中特有AS_PATH类型,类似AS_SEQENCE,其列表中含有的AS号均属于BGP联盟中的AS号。

路由器反射器
路由反射器简介

在一个AS内,其中一台路由器作为路由反射器RR,其他路由器作为客户机,路由反射器在客户机之间反射路由信息,客户机之间不需要建立BGP连接。

反射器角色
  • 路由反射器RR:允许把从IBGP对等体学到的路由反射到其他IBGP对等体的BGP设备。
  • 客户机:与RR形成反射邻居关系的IBGP设备。在AS内部客户机只需要与RR直连。
  • 非客户机:既不是RR也不是客户机的IBGP设备。在AS内部非客户机与RR之间,以及所有的非客户机之间依然必须建立全连接关系。
  • 始发者:在AS内部始发路由的设备。Originator_ID属性用于防止集群内产生路由环路
  • 集群:路由反射器及其他客户机的集合。Cluster_List属性用于防止集群间产生路由环路

目的:让整个IBGP客户机能够获得相应的BGP路由条目

路由反射器工作原理:

从非客户机学到的路由,发布给所有客户机。(非非不互传)

从客户机学到的路由,发布给所有非客户机和客户机(发起此路由的客户机除外)。

从EBGP对等体学到的路由,发布给所有的非客户机和客户机。

RR场景下的路由防环

RR的设定使得IBGP水平分割原则失效,这就可能导致环路产生,为此RR会为BGP路由添加两个特殊的路径属性来避免出现环路:

  • Originator_ID
  • Cluster_List
  • Originator_lD、Cluster_List属性都属于可选非过渡类型。

1)Originator_lD

  • RR将一条BGP路由进行反射时会在反射出去的路由中增加Originator_ID,其值为本地AS中通告该路由的BGP路由器RouterID
  • 若AS内存在多个RR,则Originator_lD属性由第一个RR创建,并且不被后续的RR(若有)所更改。
  • 当BGP路由器收到一条携带Originator_D属性的IBGP路由,并且Originator_ID属性值与自身的RouterID相同,则它会忽略关于该条路由的更新。

2)路由器反射簇

  • 路由器反射簇包括反射器RR及其Client。一个AS内允许存在多个路由反射簇。
  • 每一个簇都有唯一的簇ID(Cluster_ID,缺省时为RR的BGP RouterID)
  • 当一条路由被反射器反射后,该RR的Cluster_ID就会被添加至路由的Cluster_list属性中。
  • 当RR收到一条携带Cluster_list属性的BGP路由,且该属性值中包含该簇的Cluster_ID时,RR认为该条路由存在环路,因此将忽略关于该条路由的更新。

3)Cluster_List

  • R2发送给R1的路由,经过R1反射给R3时除了添加Originator_ID之外还会添加ClusterList:10.0.1.1。
    R3再次反射给R4时,Cluster_List值为:10.0.3.3 10.0.1.1,
    R4再次反射给R1时Cluster_List值为:10.0.4.4 10.0.3.3 10.0.1.1
  • 当R4将路由反射给R1时,R1发现Cluster_List包含了自身Cluster_id,判断存在环路,从而忽略该路由更新。
反射器和联盟的对比

|-------------------|--------------------------------------------|
| 反射器 | 联盟 |
| 不需要更改现有的网络拓扑,兼容性好 | 需要修改逻辑拓扑 |
| 配置方便,客户机不知道自己是客户机 | 所有设备需要重新进行配置,且所有设备必须支持联盟功能 |
| 集群与集群之间仍然需要全连接 | 联盟之间的子AS之间是特殊的EBGP连接,不需要全连接,子AS内部是IBGP全连接。 |
| 在大型网络中应用广泛 | 同样适用于大型网络中,但应用较少 |

相关推荐
不脱发的猴子1 小时前
Wireshark使用教程
网络·测试工具·wireshark
EasyCVR2 小时前
EasyRTC嵌入式视频通话SDK的跨平台适配,构建web浏览器、Linux、ARM、安卓等终端的低延迟音视频通信
android·arm开发·网络协议·tcp/ip·音视频·webrtc
小羊在奋斗3 小时前
【Linux网络】NAT技术、DNS系统、五种IO模型
linux·网络·智能路由器
暴躁的小胡!!!5 小时前
Linux权限维持之协议后门(七)
linux·运维·服务器·网络·安全
车载测试工程师5 小时前
车载以太网测试-3【Wireshark介绍】
经验分享·功能测试·网络协议·车载系统
遇见火星6 小时前
2025年Linux 安全与运维指南
网络
苏格拉真没有底6 小时前
python实现mqtt消息转Tcp消息
网络·python·tcp/ip
dxaiofcu6 小时前
双网卡电脑,IP地址漂移
linux·服务器·网络
Joeysoda9 小时前
JavaEE进阶(2) Spring Web MVC: Session 和 Cookie
java·前端·网络·spring·java-ee