0
点赞
收藏
分享

微信扫一扫

BGP路由技术


📒博客主页: ​​微笑的段嘉许博客主页​​

🎉欢迎关注🔎点赞👍收藏⭐留言📝

📌本文由微笑的段嘉许原创!

📆51CTO首发时间:🌴2022年9月24日🌴

✉️坚持和努力一定能换来诗与远方!

🙏作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!

⭐本文介绍⭐

BGP(Border Gateway Protocol,边界网关协议)是一个路径矢量路由协议,和传统的基于下一跳的IGP协议不同,它是基于AS(自治系统)的协议。BGP属于外部网关路由协议,它解决的是AS之间的选路问题,也正因为这样,它更适合与互联网。学习BGP的关键在于理解BGP的报文,邻居建立,BGP路由属性,选路原则等。本文将对以上各项知识、工作原理及相关的配置做介绍。


📝理论讲解:

BGP的工作原理

BGP是跨公网,跨自治系统的路由协议,可以在自治系统之间学习路由。BGP的动态学习路由也是基于邻居,只有邻居关系正常,BGP才可以正常工作。下面首先介绍BGP中的邻居关系及路由通告。

BGP邻居关系

运行BGP的路由器通常被称为BGPSpeaker(发言者),相互之间传递报文的Speaker之间互称为对等体(Peer)。BGP邻居关系的建立,更新和删除是通过对等体之间交互 5 种报文、6 种状态机和 5 个表等信息来完成的,最终形成BGP邻居,一下分别进行介绍。

BGP报文

BGP报文头中的Type定义了BGP的报文类型。BGP对等体之间通过5 种报文进行路由信息的交互。这5 种报文类型分别是Open、Update、Notification、KeepAlive和Route-Refresh。

1)Open报文

Open报文是TCP连接建立后发送的第一个报文,用于建立BGP对等体之间的连接关系,主要包括BGP版本,本地AS编号,Hold time等信息。对等体在接收到对端发过来的Open报文并协商成功后,将发送Keep Alive报文确定并保持连接的有效性。BGP对等体关系确定后,对等体间可以进行Update、Notification、Keep Alive和Route-Refresh报文的交换,以更新路由信息。

2)UPdate报文

Update报文用来在BGP对等体之间更新路由信息。Update报文可以通告多条属性相同的可达路由信息,也可以撤销多条不可达路由信息。

3)Notification报文

Notification报文的作用是当BGP检测到错误状态时,立刻向对等体发出Notification报文,之后BGP连接会立即中断。要注意的是,不管当前BGP状态当时处于何种状态,只要收到Notification报文就会放回idle状态。换而言之,BGP是不允许错误出现的一种路由协议,在选路原则中,更优的路由往往是邻居关系最久的对等体,以此反映对等体两端经历很长的时间都没有出现过错误。

4)Route-Refresh

用来告知对等体本地所支持路由的刷新能力,在所有BGP路由器拥有Route-Refresh能力的情况下,如果BGP的入口路由策略发生了变化,本地BGP路由器会向对等体发送Route-Refresh报文,收到此消息的对等体会将其路由信息重新发给本地BGP路由器。这样,可以在不中断BGP连接的情况下,对BGP路由表进行动态刷新,并应用新的路由策略。该报文中的AFI字段,用于标识所采用的地址族的类型,如IPv4单薄或者组播。

5)KeepAlive

该报文在对等体之间周期性的发送,用以保持连接的有效性并维护其连接,Keep Alive报文只有一个BGP报文头。默认Keep Alive报文发送周期为60s,Hold time为180s。Keep Alive报文类似于OSPF协议中的Hello报文,当收到对等体发过来的KeepAlive报文后会刷新Hold time计时器,如果Hold time计时器超时仍未收到Keep Alive报文,则认为对等体失效。

BGP状态机

1、ldle状态

2、Connect状态

3、Active状态

4、Open Sen状态

5、Open Confirm状态

6、Established状态

BGP数据库

BGP数据库是BGP正常工作需要的存储空间,基于保存的内容不同,可分为如下几种:

  1. IP路由表(IP-RIB)
    全局路由信息库,包括所有最优的IP路由信息
  2. BGP路由表(Loc-RIB)
    BGP路由信息库,包括本地BGP Speaker通告的路由信息,将其中最优路由添加到IP路由表中。
    注意:先要关注BGP路由表,若BGP路由表中不是最优路由,则无法在IP路由中可见。
  3. 邻居表
    对等体邻居清单列表,包括对等体两端的邻居信息及邻居列表。
  4. Adi-RIB-In
    对等体宣告给本地Speaker的未处理的路由信息库
  5. Adj-RIB-Out
    本地Speaker宣告给指定对等体的路由信息库。

BGP邻居关系类型

在BGP中大致可分为两种邻居关系,IBGP邻居关系和EBGP邻居。

  • IBGP:同一个AS内部的BGP关系,IBGP邻居通常是指运行BGP协议的对等体两端均在统一个AS域内,属于同一个BGP AS内部。
  • EBGP:AS之间的BGP关系,EBGP邻居通常是指运行在BGP协议的对等体两端分别在不同的AS内。

📢友情提示:

IGP协议建立邻居一般要求三层直连,并且通过广播或组播建立邻居。而BGP的邻居关系是基于TCP的,也就是说只要TCP/IP 可达,无论是否直连,BGP对等体彼此之间就可以建立邻居关系。所以BGP建立邻居之前首先要考虑的就是对等体之间的路径是否可达。务必要通过IGP或者静态路由使对等体两端互通。

📖实验配置与实现:

拓扑图:

BGP路由技术_BGP

推荐步骤

R1和R2、R3互联链路配置RIPv2

R2和R3互联R4链路配置OSPF

在R2和R3配置路由重分发OSPF和RIP相互重分发全网互通

在R1配置BGP和R2以及R3建立EBGP邻居关系宣告Lo0网络

在R2配置BGP和R1建立EBGP邻居宣告Lo0网络,R2和R4建立IBGP邻居和Lo0建立邻居关系更新源,在R2配置IBGP下一跳可达

在R3配置BGP和R1建立EBGP邻居宣告Lo0网络,R3和R4建立IBGP邻居和Lo0建立邻居关系更新源,在R3配置IBGP下一跳可达

在R2配置路由策略修改优先级为300经过R2转发数据

实验步骤

一、R1和R2、R3互联链路配置RIPv2

1、R1配置RIPv2,宣告直连路由

1)启动RIP进程

BGP路由技术_EBGP_02

2)关闭路由汇总

BGP路由技术_BGP_03

3)宣告直连路由

BGP路由技术_BGP_04

2、R2配置RIPv2,宣告直连路由

1)启动RIP进程

BGP路由技术_IBGP_05

2)关闭路由汇总

BGP路由技术_IBGP_06

3)宣告直连路由

BGP路由技术_路由表_07

3、R3配置RIPv2,宣告直连路由

1)启动RIP进程

BGP路由技术_路由表_08

2)关闭路由汇总

BGP路由技术_IBGP_09

3)宣告直连路由

BGP路由技术_路由表_10

二、R2和R3互联R4链路配置OSPF

1、在路由器R2上配置ospf,指定区域宣告直连网络

1)启动ospf进程为1指定route-id

BGP路由技术_EBGP_11

2)指定ospf区域,宣告直连路由

BGP路由技术_IBGP_12

2、在路由器R3上配置ospf,指定区域宣告直连网络

1)启动ospf进程为1指定route-id

BGP路由技术_IBGP_13

2)指定ospf区域,宣告直连路由

BGP路由技术_路由表_14

3、在路由器R4上配置ospf,指定区域宣告直连网络

1)启动ospf进程为1指定route-id

BGP路由技术_BGP_15

2)指定ospf区域,宣告直连路由

BGP路由技术_路由表_16

BGP路由技术_IBGP_17

三、在R2和R3配置路由重分发OSPF和RIP相互重分发全网互通

1、在路由器R2配置路由重分发ospf和rip

1)R2配置路由重分发

BGP路由技术_更新源_18

2、在路由器R3配置路由重分发ospf和rip

1)R3配置路由重分发

BGP路由技术_BGP_19

3、验证全网互通

1)在R1上验证全网互通

BGP路由技术_更新源_20

2)在R4验证全网互通

BGP路由技术_更新源_21

四、在R1配置BGP和R2以及R3建立EBGP邻居关系宣告Lo0网络

1、在路由器R1上建立EBGP,宣告Lo0网络

1)启动BGP进程

BGP路由技术_路由表_22

2)指定route-id

BGP路由技术_路由表_23

3)建立邻居关系表

BGP路由技术_BGP_24

4)宣告直连路由

BGP路由技术_BGP_25

五、在R2配置BGP和R1建立EBGP邻居宣告Lo0网络,R2和R4建立IBGP邻居和Lo0建立邻居关系更新源,在R2配置IBGP下一跳可达

1、在路由器R2配置上BGP和R1建立EBGP和R4建立IBGP邻居和Lo0建立邻居关系更新源、宣告Lo0网络,配置IBGP下一跳可达

1)启动BGP进程

BGP路由技术_更新源_26

2)指定route-id

BGP路由技术_IBGP_27

3)建立邻居关系表

BGP路由技术_更新源_28

BGP路由技术_路由表_29

4)宣告直连路由

BGP路由技术_BGP_30

5)配置IBGP下一跳可达

BGP路由技术_路由表_31

六、在R3配置BGP和R1建立EBGP邻居宣告Lo0网络,R3和R4建立IBGP邻居和Lo0建立邻居关系更新源,在R3配置IBGP下一跳可达

1、在路由器R3上配置BGP和R1建立EBGP邻居,和R4建立IBGP邻居和Lo0建立邻居关系更新源,配置IBGP下一跳可达

1)启动BGP进程

BGP路由技术_路由表_32

2)指定route-id

BGP路由技术_BGP_33

3建立邻居关系表

BGP路由技术_路由表_34

4)宣告直连路由

BGP路由技术_路由表_35

5)配置IBGP下一跳可达

BGP路由技术_IBGP_36

七、在路由器R4上配置IBGP邻居和R2、R3Lo0建立邻居关系更新源,配置IBGP下一跳可达

1、路由器R4和R2、R3Lo0建立邻居关系更新源

1)启动BGP进程

BGP路由技术_更新源_37

2)指定route-id

BGP路由技术_BGP_38

3)建立邻居关系表

BGP路由技术_路由表_39

4)宣告直连路由

BGP路由技术_更新源_40

八、在R2配置路由策略修改优先级为300经过R2转发数据

1、在路由器R2配置路由策略修改优先级300

1)创建了路由策略

BGP路由技术_EBGP_41

2)应用路由器策略

BGP路由技术_路由表_42

3)重置BGP用户视图

BGP路由技术_BGP_43

4)验证

BGP路由技术_更新源_44

🙏作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!

BGP路由技术_更新源_45

举报

相关推荐

0 条评论