BGP 边界网关协议

BGP:Border Gateway Protocol 边界网关协议

使用范围:在AS之间使用的协议
协议的特点(算法):路径矢量型,没有算法
协议是否传递网络掩码 :传递网络掩码,支持VLSM 、CIDR
协议消息数据包封装:基于TCP封装,端口号为179

AS:自治系统(Autonomous System )

AS是指在一个实体管辖下的拥有相同选路策略的IP网络。
每个AS都有唯一的自治系统编号,这个编号是由IANA分配的。
编号范围是1~65535(其中1到64511是注册的因特网编号,64512到65535是私有网络编号。

自治系统范围:1-65535  
	公有AS (1-64511) 
	私有AS(64512-65535)

一、BGP协议特点

1.BGP是一种路径矢量型路由协议
2.BGP协议版本,当前版本V4(V4+)V1 V2 V3(有类别) V4(无类别  仅仅支持IPV4单播路由传递)
  V4+(支持IPV4单播路由、IPV6单播 IPV4 组播 、IPV6组播、VPNV4 、VPNV6 等,除了IPV4单播路由
  之外的其他的都称为 MP-BGP---多协议BGP,注意:默认仅仅支持传递IPV4单播路由,传递其他方式路由时
  需要开启(激活))
3.更新地址:单播更新
4.更新方式:触发更新、增量更新
5.BGP协议中存在大量的属性(是一种基于规则的路由协议)
6.BGP协议支持路由认证
7.支持BGP路由聚合(汇总)
8.BGP是一种非常消耗资源的路由协议

二、BGP邻居关系

IBGP :内部BGP邻居

运行于同一AS内部的BGP称为IBGP
IBGP邻居的防环机制:IBGP 水平分割机制(IBGP只传一跳规则,通过一个IBGP邻居学习的路由不能传递给其他的IBGP邻居);
next-hop、起源者属性、簇ID列表。

EBGP:外部BGP邻居

运行于不同AS之间的BGP称为EBGP
EBGP邻居的防环机制:AS-Path AS路径防环,不接收AS-Path中包含自身AS号的路由信息。

三、BGP报文交互中的角色

Speaker:发送BGP消息的路由器称为BGP发言者,它接收或产生新的路由信息,并发布给其它BGP Speaker。
Peer:相互交换消息的BGP Speaker之间互称对等体(Peer),若干相关的对等体可以构成对等体组(Peer Group)。

四、适合使用BGP的网络环境

1.传输AS 
2.多宿主
3.需要对进入和离开的流量进行强大的策略控制时

五、BGP 邻居状态机制

Idle : 初始化
Connect :连接 
Active : 活动
Opensent:发送open报文 
Openconfirm :open报文确认
Established :邻居状态

六、BGP消息数据包

open		keepalive		updata		notification

1.open :建立BGP邻居关系,只发送一次。

BGP邻居关系建立条件:

1.router-id 必须不同
2.BGP认证必须一致
3.必须指定正确的AS号
4.建立TCP三次握手的两端路由必须可达

在这里插入图片描述

2.keepalive:保活

维持BGP邻居关系;周期性发送周期时间keepalive 。
时间默认为60s
Hold 时间,保持时间默认为180s
在这里插入图片描述

3.update :更新

通告路由:
在这里插入图片描述
撤销路由:
在这里插入图片描述

4.notification :报告(错误报告)

在这里插入图片描述

七、BGP命令配置

1.IBGP

直连物理接口建立,非直连接口建立(环回接口)

2.EBGP

直连物理接口建立,非直连接口建立(环回接口)

启用BGP协议:

在这里插入图片描述

手工指定router-id

在这里插入图片描述

手工指定邻居

在这里插入图片描述

修改更新源

默认更新源为到达peer的本地出接口地址
在这里插入图片描述

修改EBGP之间多跳(EBGP之间数据包TTL默认为1 )
作用:1.关闭EBGP之间直连检测 2.修改EBGP数据包的TTL值
在这里插入图片描述

查看BGP 邻居表

在这里插入图片描述

八、状态机

BGP有限状态机共有六种状态,分别是Idle、Connect、Active、OpenSent、OpenConfirm和Established。

1、Idle状态:BGP初始状态

在Idle状态下,BGP拒绝邻居发送的连接请求。只有在收到本设备的Start事件后,BGP才开始尝试和其它BGP对等体进行TCP连接,并转至Connect状态。

Start事件是由一个操作者配置一个BGP过程,或者重置一个已经存在的过程或者路由器软件重置BGP过程引起的。
任何状态中收到Notification报文或TCP拆除链路通知等Error事件后,BGP都会转至Idle状态。

2、Connect状态

在Connect状态下,BGP启动连接重传定时器(Connect Retry,缺省为32秒),等待TCP完成连接。
如果TCP连接成功,那么BGP向对等体发送Open报文,并转至OpenSent状态;
如果TCP连接失败,那么BGP转至Active状态;
如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP继续尝试和其它BGP对等体进行TCP连接,停留在Connect状态。
如果发生其他事件(由系统或者操作人员启动的),则退回到Idle状态。

3、Active状态

在Active状态下,BGP总是在试图建立TCP连接。
如果TCP连接成功,那么BGP向对等体发送Open报文,关闭连接重传定时器,并转至OpenSent状态;
如果TCP连接失败,那么BGP停留在Active状态;
如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP转至Connect状态。

4、OpenSent状态

在OpenSent状态下,BGP等待对等体的Open报文,并对收到的Open报文中的AS号、版本号、认证码等进行检查。
如果收到的Open报文正确,那么BGP发送Keepalive报文,并转至OpenConfirm状态;
如果发现收到的Open报文有错误,那么BGP发送Notification报文给对等体,并转至Idle状态。

5、OpenConfirm状态

在OpenConfirm状态下,BGP等待Keepalive或Notification报文。如果收到Keepalive报文,则转至Established状态,如果收到Notification报文,则转至Idle状态。

6、Established状态

在Established状态下,BGP可以和对等体交换Update、Keepalive、Route-refresh报文和Notification报文。
如果收到正确的Update或Keepalive报文,那么BGP就认为对端处于正常运行状态,将保持BGP连接。
如果收到错误的Update或Keepalive报文,那么BGP发送Notification报文通知对端,并转至Idle状态。
Route-refresh报文不会改变BGP状态。 如果收到Notification报文,那么BGP转至Idle状态。
如果收到TCP拆链通知,那么BGP断开连接,转至Idle状态。

おすすめ

転載: blog.csdn.net/weixin_53002381/article/details/119487912