BGP协议笔记

发布于:2025-08-09 ⋅ 阅读:(13) ⋅ 点赞:(0)

一、BGP协议(边界网关协议)

是一种用于自治系统间的动态路由协议,是一种外部网关(EGP)协议。负责在不同自治系统(AS)之间交换路由信息,目的是实现大规模网络的可扩展性、策略控制和稳定性。

自治系统AS:一组被进行统一管理,运行同一个IGP协议的路由器组成的网络范围。通常使用相同的路由策略。

查看AS编号:www.cidr.report

二、BGP特性

路径向量协议:记录路由的完整AS路径(AS-Path防环机制),而非跳数,避免环路;

TCP连接:使用TCP 179端口,建立可靠的单播连接(邻居(peer)无需直连);

增量更新:仅传播变化的路由,减少带宽消耗;

策略驱动:支持基于AS路径、前缀、团体属性等灵活控制路由;

策略优先:支持丰富的路由策略(如路由过滤、属性修改);

支持IPv4/IPv6:通过MP-BGP扩展支持多协议(如VPNv4、EVPN)。

三、BGP基本术语

   BGP Speaker:运行BGP协议的路由器称为BGP发言者

   BGP Peer:相互之间在TCP连接、相互交换路由信息的BGP发言者之间互称为BGP对等体

BGP邻居可以直连,也可以非直连

BGP邻居类型:

 IBGP(内部BGP);建立在同一AS内,无需直连;用于企业内部分分支路由同步。

 EBGP(外部BGP);建立在不同AS间,默认要求直连;用于运营商之间互联。

四、BGP规划问题(路由黑洞)

产生原因:由于IBGP邻居之间有没有运行BGP协议的路由器,无法获得BGP的路由,从而导致数据包进入路由器被丢弃。

解决方法:

(1)BGP引入IGP

(2)在黑洞路由器上配置目的网段的静态路由

(3)IBGP全连接  ----IBGP防环机制:IBGP水平分割:从IBGP邻居学习到的路由不会传递给其他IBGP邻居

4)BGP路由反射器(无视IBGP的防环机制,可以减少邻居关系的数量)

(5)BGP联盟(可以减少邻居关系的数量,IBGP水平分割限制)

五、BGP环路问题(水平分割)

1、EBGP水平分割(AS_PATH)

通过AS_PATH属性防环,在学习到的路由中,若有本地AS号,则拒绝学习,防止环路

2、IBGP水平分割

当路由器从一个IBGP对等体学习到某条BGP路由时,它将不能再把这条路由通告给任何IBGP对等体。

六、BGP消息种类(数据包可抓包看)

(1)BGP头部信息:

标记(Marker):该字段被保留下来用于解决协议兼容性问题,没有其他含义

长度(length):指示BGP报文的长度(字节数)

类型(Type):该字段指示了BGP报文的类型,就是前面提到的BGP5种数据包类

(2)数据包种类

Open:用于建立BGP对等体之间的连接关系,正常收发一次即可;携带route-id

Hold time:保持时间,该字段表示路由器在收到Keepalive消息或者Update消息之前等 待的最长时间,默认180s,如果邻居双方的保持时间不一致,将以较短的时间作为双 方可接收的保持时间。

可选参数长度:指示了BGP报文中可选参数的长度

可选参数:Open包中包含多个可选参数,主要用于宣告及协商BGP对等体的某些 能力特征。

Keepalive:周期性的向BGP对等体发出Keepalive(周期保活)消息,用于保持连接 的有效性,在默认情况下每60秒发送一条Keepalive消息,或者以已协商一致的保 持时间的1/3为周期发送Keepalive消息。默认60s超时180s

Update:携带的是路由更新(删减、增加)信息

Notfication:当BGP检测到错误状态时,就向对等体发出notfication消息,之后BGP 连接会立即被关闭(邻居关系结束了)

Router-refresh:用于在改变路由策略后,要求对等体重新发送指定地址族的完整路由 表信息;只有支持路由刷新能力的路由器才会响应router-refresh报文。

七、BGP邻居建立条件

IBGP:

物理口建邻:

  建议使用直连接口地址(物理地址)来指定IBGP邻居;

环回口建邻:

 对方接口要有IP地址,TCP可达(需要具有到达对方IP地址的路由),建议使用环回口地址来指定IBGP邻居

更新源地址必须和指定的邻居地址一致,需要修改更新源为环回;

[R1-bgp]peer 2.2.2.2 connect-interface LoopBack 0

 IBGP邻居关系不需要直连;

EBGP:

物理口建邻:

建议使用直连接口地址(物理地址)来指定EBGP邻居;

环回口建邻:

对方接口要有IP地址,TCP可达,

可通过修改EBGP最大跳数来使EBGP非直连;

更新源地址必须和指定的邻居地址一致;

注:当一个路由器既有EBGP邻居,又有IBGP邻居的时候,需要对IBGP邻居修改下一跳本机,否则会造成BGP的路由信息传递失败。

BGP与IGP的对比

区别:

BGP

OSPF/RIP

协议类型

路径向量(AS级路由)

链路状态/距离向量(域内路由)

收敛速度

慢(策略复杂)

快(触发更新)

适用场景

跨AS路由(如IS互联)

企业内部网络

八、BGP配置

基础配置:

1.基础eBGP对等体建立

  # bgp 65001   #进入BGP视图,AS号为65001

  # router-id 1.1.1.1   #手动指定Router ID

  # peer 203.0.113.2 as-number 65002   #指定对端IP和AS号

  # peer 203.0.113.2 connect-interface 10   #指定与对等体建立会话时使用的本地 源接口

  # peer 203.0.113.2 ebgp-max-hop [hop-count]   #修改最大跳数(默认255)

  # ipv4-family unicast   #进入IPv4单播地址族

  # peer 203.0.113.2 enable   #激活对等体

  2.路由引入与聚合

  # import-route ospf 1   #引入OSPF路由

  # aggregate 172.16.0.0 255.255.0.0 detail-suppressed   #手动聚合路由(抑制明细)

  3.策略控制(基于Community)

##设置路由策略

  # route-policy BGP_OUT permit node 10

  # apply community no-export   #标记路由不导出到其他AS

  ##应用策略

  # peer 203.0.113.2 route-policy BGP_OUT export

高级特性配置:

1.路由反射器(RR)

##解决iBGP全互联问题

  # peer 10.1.1.3 reflect-client   #配置路由反射器客户端

  2.BGP Confederation(联盟)

##将大AS划分为多个子AS,内部使用eBGP规则:

  # confederation id 65000   #对外显示的统一AS号

  # confederation peer-as 65001 65002   #声明子AS号

  3.BGP路由衰减(Dampening)

  ##抑制频繁震荡的路由

  # dampening   #启用衰减

查看BGP对等体状态:

# display bgp peer

检查BGP路由表:

# display bgp routing-table

# display ip routing-table protocol bgp

验证路由属性:

# display bgp routing-table 192.168.1.0

调试BGP报文:

# debugging bgp packet


网站公告

今日签到

点亮在社区的每一天
去签到