什么是BGP

动态路由协议可以按照工作范田分为IGP以及EGP。IGP工作在同一个AS内,主要用
来发现和计算路由,为AS内提供路由信息的交换;而EGP工作在AS与AS之间,在AS
间提供无环路的路由信息交换,BGP则是EGP的一种。

016A-路由协议简单介绍CIDR-REPORT网站

  • 路由协议分类
    按照工作的范围:
  • IGP:RIP(Routing Information Protocol,路由信息协议,udp 520) ,OSPF(Open Shortest Path First开放式最短路径优先 ip 89) ISIS, EIGRP
  • EGP:BGP(border gateway protocol tcp 179)

IGP: 内部网关协议(Interior Gateway Protocol)
EGP:外部网关协议(Exterior Gateway Protocol)

一个路由器只有一个BGP进程

BGP的特征

BGP是一种增强的距离矢量协议:可靠路由更新机制,丰富的Metric度量方法,从设计上避免了环路的发生
1.有丰富的属性来进行选路
2.使用TCP(端口号179)作为传输协议 3.通过Keepalive消息来检测TCP的连接(维护BGP的正常)
4.采用增量更新和触发更新
5.拥有自己的BGP表
6.有丰富的属性,方便基于策略的路由控制
7.支持VLSM CIDR
8.支持MD5
9.适合大中型网络

  • BGP适合什么情况下使用
    1、公司有多个出口,根据目的网络,来选择合适的下一跳
    2、需要为流量控制路由策略和选路
  • 不适合使用BGP的情况
    1、只有单个出口连接到Internet
    2、设备性能低
    3、对BGP的理解操控有限,无法预计启动BGP的后果

BGP报文种类

BGP报文有五种类型:

  • Open:负责和对等体建立邻居关系。
  • KeepAlive:该消息在对等体之间周期性地发送,用以维护连接。
  • Update:该消息被用来在BGP对等体之间传递路由信息。
  • Notification:当BGP Speaker检测到错误的时候,就发送该消息给对等体。
  • oute-refresh:用来通知对等体自己支持路由刷新能力。

ospf的hello报文等于bgp的open和update报文
bgp的update具有更新和撤销的功能

bgp的holdtime时间不一致,有keepalived交换信息以协商双方的时间一致。

动态路由协议可以按照工作范围分为IGP以及EGP。IGP工作在同一个AS内,主要用来发现和计算路由,为AS内提供路由信息的交换;而EGP工作在AS与AS之间,在AS间提供无环路的路由信息交换,BGP则是EGP的一种。

https://www.cidr-report.org/as2.0/

自治系统(AS):由同一个技术管理机构管理、使用统一选路策略的一些路由器的集合。
自治系统内部的路由协议——IGP
自治系统之间的路由协议——EGP
IGP
运行于AS内部的路由协议,主要有: RIP,
OSPF及ISIS。
IGP着重于发现和计算路由。
EGP
运行于AS之间的路由协议,现通常都是指
BGP。
BGP着重于控制路由的传播和选择最
优的路由。

BGP是外部路由协议,用来在AS之间传递路由信息
是一种增强的距离矢量路由协议
可靠的路由更新机制

RIP UDP 520 OSPF IP 89 BGP TCP 179
丰富的Metric度量方法
从设计上避免了环路的发生
为路由附带属性信息
支持CIDR(无类别域间选路)
丰富的路由过滤和路由策略

传输协议:TCP,端口号179
无需周期性更新
路由更新:只发送增量路由
周期性发送keepAlive报文检测TCP的连通性

BGP报文有五种类型:
Open:负责和对等体建立邻居关系。
KeepAlive:该消息在对等体之间周期性地发送,用以维护连接。
Update:该消息被用来在BGP对等体之间传递路由信息。
Notification:当BGP Speaker检测到错误的时候,就发送该消息给对等体。
Route-refresh:用来通知对等体自己支持路由刷新能力。

主要字段的解释如下:
Version:BGP的版本号。对于BGPv4来说,其值为4。
My Autonomous System:本地AS编号。通过比较两端的AS编号可以确定是EBGP连接还是IBGP连接。
Hold Time:在建立对等体关系时两端要协商Hold time,并保持一致。如果两端所配置的Hold time时间不同,则BGP会选择较小的值作为协商的结果。如果在这个时间内未收到对端发来的Keepalive消息,则认为BGP连接中断。
BGP Identifier:BGP路由器的Router ID,以IP地址的形式表示,用来识别BGP路由器。在VRP5.30系统中,如果没有通过命令router id进行配置,则按照如下规则进行选择:优选Loopback接口地址中最大的地址作为Router ID,如果没有Loopback接口配置了IP地址,则从其它配置了IP地址的物理接口中选择一个最大IP地址的作为Router ID。
Opt Parm Len(Optional Parameters Length):可选参数的长度。如果为0则没有可选参数。
Optional Parameters:是一个可选参数用于BGP验证或多协议扩展(Multiprotocol Extensions)等功能。每一个参数为一个(Parameter Type-Parameter Length-Parameter Value)三元组。

KeepAlive报文主要用于对等体路由器间的运行状态以及链路的可用性确认。KeepAlive 报文的组成只包括一个BGP数据报头。 KeepAlive 消息在对等体之间的交换频率以保证对方保持定时器不超时为限。

当一台路由器与其邻居建立BGP连接之后,将以Keepalive-interval设定的时间间隔周期性地向对等体发送KeepAlive 报文,表明该连接是否还可保持。

缺省情况下,发送KeepAlive 的时间间隔为 60 秒,Hold Time是180秒。每次从邻居处接收到KeepAlive 报文将重置Hold Time定时器,如果Hold Time定时器超时,就认为对等体Down掉。
对等体在接收到Open消息后,将发送Keepalive消息确认并保持连接的有效性。确认后,对等体间可以进行Update、Notification、Keepalive和Route-refresh消息的交换。

如果使用默认路由来建立BGP邻居 ,思科设备无法建立,华为设备可以 建立,但是通告的路由是无效的

BGP报文头基本格式(RFC4271)


报文格式

BGP报文由BGP报文头和具体报文内容两部分组成。(RFC4271)

BGP的运行是通过消息驱动的,共有5种消息类型,这些消息有相同的报文头。这些消息通过TCP协议进行传播(端口号是179)。消息最长为4096字节,最短为19字节(只包含报文头)。

BGP报文头包括三的部分,总长19字节。各个部分的格式和功能如下:(RFC4271)



图1 BGP报文头格式


BGP 与 IGP 同步为什么 bgp与igp的区别_TCP

  • Marker:占16字节,用于检查BGP对等体的同步信息是否完整,以及用于BGP验证的计算。不使用验证时所有比特均为1(十六进制则全“FF”)。
  • Length:占2个字节(无符号位),BGP消息总长度(包括报文头在内),以字节为单位。长度范围是19~4096。
  • Type:占1个字节(无符号位),BGP消息的类型。Type有5个可选值,表示BGP报文头后面所接的5类报文(其中,前四种消息是在RFC4271中定义的,而Type5的消息则是在RFC2918中定义的):

TYPE值

报文类型

1

OPEN

2

UPDATE

3

NOTIFICATION

4

KEEPALIVE

5

REFRESH(RFC2918)

参考标准



标准

描述

RFC 827

Exterior Gateway Protocol (EGP)

RFC 2918

Route Refresh Capability for BGP-4

RFC 4271

A Border Gateway Protocol 4 (BGP-4)


[AR1-LoopBack10]ip ad 11.11.11.11 32
 [AR1-LoopBack10]bg
 [AR1-LoopBack10]bgp 100
 [AR1-bgp]n
 [AR1-bgp]network 11.11.11.0 24
 Info: The network does not exist.
 [AR1-bgp]net
 [AR1-bgp]network 11.11.11.11 32
 [AR1-bgp]