BGP边界网关协议(Border Gateway Protocol)路由引入、路由反射器

一、路由引入背景

BGP协议本身不发现路由,因此需要将其他协议路由(如IGP路由等)引入到BGP路由表中,从而将这些路由在AS之内和AS之间传播。

BGP协议支持通过以下两种方式引入路由:

  • Import方式:按协议类型将RIP、OSPF、IS-IS、静态路由和直连路由等协议的路由引入到BGP路由表中。

  • Network方式:将指定前缀和掩码的一条路由引入到BGP路由表中,该方式比Import更精确。

1、network引入

1)主类引入(A\B\C段)该方式为聚合路由,为防止环路,需增加一条黑洞路由防环

复制代码
AR1
    BGP as-number
    network ipv4-address [ mask | mask-length ] [ route-policy route-policy-name ]

ip route-static 10.0.0.0 255.0.0.0 NULL 0

2)无类引入(指定掩码),默认产生黑洞路由

复制代码
AR1
    BGP as-number
    network ipv4-address [ mask | mask-length ] [ route-policy route-policy-name ]

2、import-route引入

1)无类引入

复制代码
AR1
    BGP as-number
    import-route { direct | isis process-id | ospf process-id | rip process-id | static } [ med med | route-policy route-policy-name ] *


当引入RIP、OSPF、IS-IS等动态路由协议发现的路由时,需要指定协议进程号。

2)主类引入

复制代码
AR1
    BGP as-number
    import-route { direct | isis process-id | ospf process-id | rip process-id | static } [ med med | route-policy route-policy-name ] *
    summary automatic    自动聚合


当引入RIP、OSPF、IS-IS等动态路由协议发现的路由时,需要指定协议进程号。

二、路由表项参数

复制代码
[AR5]dis bgp routing-table

 BGP Local router ID is 5.5.5.5
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete


 Total Number of Routes: 7
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  10.1.1.0/24        10.1.123.1      0          100        0      1?
 * i                     10.1.1.1        0          100        0      1?
 *>i  10.1.111.0/24      10.1.123.1      0          100        0      1?
 * i                     10.1.1.1        0          100        0      1?
 *>i  10.1.123.0/24      10.1.1.1        0          100        0      1?
 *>   55.5.5.0/24        0.0.0.0         8                     0      ?
 *>   55.5.5.5/32        0.0.0.0         8                     0      ?

1、Status codes

状态代码(标识BGP路由的状态)

1)*(valid):下一跳可达,如不可达则没有*

2)>(best):最优路径,下一跳可达的前提下,通过十二条选路原则比较产生,最优的放入路由表

3)d(damped):路由衰减,路由惩罚,路由发生抖动会标识为d,多次抖动不会放入路由表,主要针对EBGP

4)h(history):抖动记录,抖动一次就会被标记为h

5)i(internal):IBGP的路由标识,从IBGP邻居来的路由标记为i

6)s(suppressed):抑制,当产生聚合路由,明细被抑制时,产生该标识

7)S(stale):陈旧,老化路由标识

2、Origin

路由的起源代码

1)i:network的方式引入进来的

2)e:import-route egp

3)?:incomplete, import-route 其他路由协议

注:上图的55.5.5.0 的网段是通过import-route direct引入的

三、BGP 组网方式

1、全互联场景

1)全互联场景下IBGP路由信息默认不改变下一跳

去往AR1的路由信息通过IBGP的邻居关系学习到,此时下一跳不改变

可以同通过配置使得学习到的路由修改下一跳

复制代码
<AR5>dis bgp routing-table | inc 10.1.1.0

 BGP Local router ID is 5.5.5.5
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete


 Total Number of Routes: 7
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  10.1.1.0/24        10.1.123.1      0          100        0      1?
<AR5>

2)EBGP路由默认修改下一跳

表项可知AR4与AR5之间建立EBGP的邻居关系,学习到的EBGP路由下一跳改变

复制代码
<AR4>dis bgp routing-table | inc 10.1.1.0

 BGP Local router ID is 4.4.4.4
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete


 Total Number of Routes: 4
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   10.1.1.0/24        10.1.5.5                              0      235 1?
<AR4>

3)优缺点

优点:路由传递正常,转控平面正常

缺点:资源消耗大,成本较高

2、部分互联场景(联盟)

注:图片为产品文档当参考图片,仅供联盟拓扑理解使用

1)部分互联场景下,在AS内部的IBGP邻居关系会产生水平分割的现象,导致路由传递失败,业务中断,可使用联盟(Confederation),与路由反射器相比,BGP联盟更便于实现IGP扩展。

2)配置

复制代码
system-view

    bgp as-number

    confederation id as-number

    confederation peer-as as-number &<1-32>

    peer xx.xx.xx.xx as-number xxxx

配置属于联盟的子自治系统时使用的as-number在联盟内部有效。

为了提升安全性,推荐部署BGP安全性措施(参见"配置BGP认证")。其中,以配置Keychain认证方式为例,详细配置方法请参见"举例:配置BGP使用Keychain认证"

3、部分互联场景(路由反射器)

1)配置路由反射器时,必须具备反射器和客户端之间的IBGP邻居关系,该方式主要为打破IBGP之间的水平分割问题

2)角色

RR:route-reflector 路由反射器(服务器端)

RR-C:client 路由反射器的客户端

cluster:路由反射簇(列表)

Non-Client:不是反射器也不是客户机的BGP设备被称为非客户机

3)配置

复制代码
bgp 235
 router-id 5.5.5.5
 peer 10.1.2.2 as-number 235
 peer 10.1.2.2 connect-interface LoopBack1
#
 ipv4-family unicast
  undo synchronization
  import-route direct route-policy loop55
  peer 10.1.2.2 enable
  peer 10.1.2.2 reflect-client
  peer 10.1.4.4 enable
  peer 10.1.234.3 enable
#
return

4)表项

根据表项可知,从2.2.2.2 来的路由通过RR(5.5.5.5)反射过来使得3.3.3.3学习到了,虽然此路由没有被优选

复制代码
<AR3>dis bgp routing-table 10.1.1.1

 BGP routing table entry information of 10.1.1.0/24:
 From: 10.1.45.5 (5.5.5.5)
 Route Duration: 00h02m30s
 Relay IP Nexthop: 0.0.0.0
 Relay IP Out-Interface: GigabitEthernet0/0/0
 Original nexthop: 10.1.123.1
 Qos information : 0x0
 AS-path 1, origin incomplete, MED 0, localpref 100, pref-val 0, valid, internal, pre 255, not preferred for Cluster List
 Originator:  2.2.2.2
 Cluster list: 5.5.5.5
 Not advertised to any peer yet

5)路由反射器的规则

来自client的路由可以向客户端、EBGP邻居、非客户端进行传递

来自EBGP邻居的路由信息可以向客户端、EBGP邻居、非客户端进行传递

来自非客户端的的路由信息可以向客户端、EBGP邻居进行传递,但是不可以向非客户端传递路由

配置RR指定客户端后,客户端的路由器设备并不清楚自己为客户端,只有RR设备知道

4、路由反射器防环

因为路由反射器打破了IBGP之间的水平分割规则,可能产生环路。

1)Originator_ID属性

由路由的始发路由器产生,携带了本地AS内部路由发起者的Router ID

复制代码
#
bgp 1
 router-id 1.1.1.1
 peer 10.1.3.3 as-number 235
 peer 10.1.3.3 ebgp-max-hop 255
 peer 10.1.3.3 connect-interface LoopBack1
 peer 10.1.123.2 as-number 235
 #
 ipv4-family unicast
  undo synchronization
  import-route direct route-policy loop111
  peer 10.1.3.3 enable
  peer 10.1.123.2 enable
#


<AR3>dis bgp routing-table 10.1.111.0

 BGP routing table entry information of 10.1.111.0/24:
 From: 10.1.45.5 (5.5.5.5)
 Route Duration: 00h19m14s
 Relay IP Nexthop: 0.0.0.0
 Relay IP Out-Interface: GigabitEthernet0/0/0
 Original nexthop: 10.1.123.1
 Qos information : 0x0
 AS-path 1, origin incomplete, MED 0, localpref 100, pref-val 0, valid, internal, pre 255, not preferred for Cluster List
 Originator:  2.2.2.2
 Cluster list: 5.5.5.5
 Not advertised to any peer yet

<AR3>

从路由表中可以看到,AR3从AR5那里学到了AR1通告的路由,而且还可以看到该路由的Originator和Cluster_ID属性。因为AR2和AR1之间为EBGP邻居关系,所以在AS235内默认2.2.2.2为路由始发路由器。

当一条路由第一次被RR反射的时候,RR将Originator_ID属性加入这条路由,标识这条路由的发起设备。如果一条路由中已经存在了Originator_ID属性,则RR将不会创建新的Originator_ID。

当其他BGP Speaker接收到这条路由的时候,将比较收到的Originator_ID和本地的Router ID,如果两个ID相同,BGP Speaker会忽略掉这条路由,不做处理。

2)Cluster_List属性

经过一个路由反射器反射的路由,会把路由反射器cluster-id记录下俩,形成cluster-list

默认cluster-id= router-id

但是可以修改成不是router-id

复制代码
#
bgp 235
 ipv4-family unicast
  reflector cluster-id 55.5.5.5
#

<AR3>dis bgp routing-table 10.1.111.0

 BGP routing table entry information of 10.1.111.0/24:
 From: 10.1.45.5 (5.5.5.5)
 Route Duration: 00h00m47s
 Relay IP Nexthop: 0.0.0.0
 Relay IP Out-Interface: GigabitEthernet0/0/0
 Original nexthop: 10.1.123.1
 Qos information : 0x0
 AS-path 1, origin incomplete, MED 0, localpref 100, pref-val 0, valid, internal, pre 255, not preferred for Cluster List
 Originator:  2.2.2.2
 Cluster list: 55.5.5.5
 Not advertised to any peer yet

<AR3>

关于RR还有其他类似备份RR等等其他应用,路由引入也可以修改许多的属性,本文仅作基本的使用了解,后续文章会慢慢深入了解。

相关推荐
U-Mail邮件系统3 小时前
自建邮箱服务器有哪些软件?三款主流邮件服务器软件推荐
运维·服务器
花间相见3 小时前
【计算基础|网络14】网络层:IP、ICMP 与 ping
网络·网络协议·tcp/ip
OnlineProxy4 小时前
为 LangChain 和 CrewAI 构建自定义工具:将代理 IP 轮换封装至智能体函数中
网络协议·tcp/ip·langchain
天远数科4 小时前
零信任架构实战:基于天远贷前风险报告构建自动化消金信贷风控与多头共债排查网关
运维·人工智能·架构·自动化
半杯咖啡半行码5 小时前
Linux 驱动开发入门:内核模块编程基础
linux·服务器·网络
智能直播6 小时前
RK3528 V4L2 框架 UVC 接口自动获取 H.264 / MJPEG / YUYV 格式:从内核采集到硬解分发
java·网络·实时音视频·视频编解码·h.264
别动我齐刘海6 小时前
Linux 系统调试学习2
linux·运维·c++·人工智能·学习·机器学习·机器人
honsor6 小时前
机房IP化改造首选:以太网温湿度传感器,PoE供电+Modbus TCP一网搞定
linux·运维·服务器
懿路向前6 小时前
HarmonyOS 粒子特效实战:emitter.size 是双刃剑:粒子精确定位 [0,0] 与条带随机出生(HarmonyOS)
华为·harmonyos