BGP路由技术(一)

简介: ⭐本文介绍⭐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或者静态路由使对等体两端互通。


📖实验配置与实现:


拓扑图:


1.jpg


推荐步骤:


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进程


2.jpg


2)关闭路由汇总


3.jpg


3)宣告直连路由


4.jpg


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


1)启动RIP进程


5.jpg


2)关闭路由汇总


6.jpg


3)宣告直连路由


7.jpg


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


1)启动RIP进程


8.jpg


2)关闭路由汇总


9.jpg


3)宣告直连路由


10.jpg


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


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


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


1.jpg


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


2.jpg


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


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


3.jpg


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


4.jpg


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


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


5.jpg


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


6.jpg


7.jpg


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


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


1)R2配置路由重分发


11.jpg


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


1)R3配置路由重分发


22.jpg


3、验证全网互通


1)在R1上验证全网互通


33.jpg


2)在R4验证全网互通


44.jpg



相关文章
|
2月前
|
网络协议
BGP路由原理详解
BGP路由原理详解
BGP路由原理详解
|
5月前
|
存储 网络协议 算法
OSPF路由 与 ISIS路由 与路由学习对比
OSPF路由 与 ISIS路由 与路由学习对比
53 0
|
6月前
|
网络架构 Perl
BGP路由属性与选路
BGP路由属性与选路
|
6月前
|
网络协议 网络虚拟化 网络架构
|
7月前
|
存储 负载均衡 网络协议
BGP 技术连载:BGP 选路规则
【4月更文挑战第23天】
465 0
|
网络架构
BGP路由技术(二)
⭐本文介绍⭐ BGP(Border Gateway Protocol,边界网关协议)是一个路径矢量路由协议,和传统的基于下一跳的IGP协议不同,它是基于AS(自治系统)的协议。BGP属于外部网关路由协议,它解决的是AS之间的选路问题,也正因为这样,它更适合与互联网。学习BGP的关键在于理解BGP的报文,邻居建立,BGP路由属性,选路原则等。本文将对以上各项知识、工作原理及相关的配置做介绍。
BGP路由技术(二)
|
NoSQL Redis 网络架构
BGP邻居路由黑洞+mpls ip
文章目录 要求: 拓扑: 命令:
116 0
BGP邻居路由黑洞+mpls ip
|
网络协议 网络架构
H3C_RIP_路由器_动态路由
H3C_RIP_路由器_动态路由
H3C_RIP_路由器_动态路由
|
负载均衡 网络协议 数据库