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等等其他应用,路由引入也可以修改许多的属性,本文仅作基本的使用了解,后续文章会慢慢深入了解。

相关推荐
缘友一世14 分钟前
epoll 的边缘触发(Edge Triggered)与水平触发(Level Triggered)
linux·网络
一往.无前~24 分钟前
【无标题】
linux·运维·服务器
舰长11531 分钟前
麒麟服务器安装最新 neo4j/5.9.0 图数据库
linux·运维·服务器
RacheV+TNY2642781 小时前
电商数据API接口的安全挑战与应对策略
大数据·开发语言·网络·数据库·人工智能
躺不平的理查德2 小时前
shell-特殊位置变量
linux·运维·服务器·bash
刘什么洋啊Zz2 小时前
K8S--边车容器
运维·云原生·容器·kubernetes
ζั͡山 ั͡有扶苏 ั͡✾2 小时前
KubeSphere部署安装,接入KubeKey安装的k8s集群
运维·云原生·容器·kubernetes·kupesphere
Clarence Liu2 小时前
macOS docker hub / docker desktop替代方案
运维·docker·容器
doubt。3 小时前
【BUUCTF】[GXYCTF2019]BabySQli
网络·数据库·笔记·sql·mysql·安全·web安全
laimaxgg3 小时前
Linux网络连接内核
linux·运维·服务器·网络·网络协议·tcp/ip