BGP路由协议之对等体

IGP 可以通过组播报文发现直连链路上的邻居,而 BGP 是通过 TCP:179 来实现的。BGP 需要手工的方式去配置邻居。不需要直连,只要路由能通就可以建立邻居

IBGP 与 EBGP

IBGP :(Internal BGP) :位于相同自治系统的 BGP 路由器之间的 BGP 邻接关系

EBGP:(ExternalBGP):位于不同自治系统的 BGP 路由器之间的 BGP 对等体关系。两台路由器之间要建立 EBGP 对等体关系必须满足两个条件

  • 两个路由器所属 AS 不同(即 AS 号不同)
  • 在配置 EBGP 时,Peer 命令所指定的对等体 IP 地址要求路由可达并且 TCP 连接能够正确建立。

邻居建立

先启动 BGP 的一端先发起 TCP 连接,如左图所示,R1 先启动 BGP,R1 使用随机端口号向 R2 的 179 端口发起 TCP 连接,完成 TCP 连接的建立

三次握手建立完成之后,R1、R2 之间相互发送 open 报文携带参数用于对等体建立,参数协商正常之后双方相互发送 Keepalive 报文,收到对端发送的 Keepalive 报文之后对等体建立成功,同时双方定期发送 Keepalive 报文用于保持连接。

其中 open 报文中携带

  • My Autonomous System: 自身 AS 号
  • Hold Time:用于协商后续 Keepalive 报文发送时间
  • RGP Identifier·自身 RouterID

BGP 对等体关系建立之后,BGP 路由器发送 BGP Update(更新)报文通告路由到对等体

KEEPLIVE 间隔时间 60 秒,超时时间为 Keeplive 的三倍时间

复制代码
创建邻居,ip 30.0.0.1 as 64512
[R3-bgp-default]peer 30.0.0.1 as-number 64512

[Huawei]dis bgp peer // 查看路由

邻居状态机制

Peer 状态名称 用途
Idle 开始准备 TCP 的连接并监视远程对等体,启用 BGP 时,要准备足够的资源
Connect 正在进行 TCP 连接,等待完成中,认证都是在 TCP 建立期间完成的。如果 TCP 连接建立失败则进入 Active 状态,反复尝试连接:
Active TCP 连接没建立成功,反复尝试 TCP 连接
OpenSent TCP 连接已经建立成功,开始发送 open 包,open 包携带参数协商对等体的建立
OpenConfirm 参数、能力特性协商成功,自己发送 Keepalive 包,等待对方的 Keepalive 包
Established 已经收到对方的 Keepalive 包,双方能力特性经协商发现一致,开始使用 update 通告路由信息

TCP 更新源地址

一般而言在 AS 内部,网络具备一定的冗余性。在 R1 与 R3 之间,如果采用直连接口建 IBGP 邻居关系,那么一旦接口或者直连链路发生故障,BGP 会话也就断了"但是事实上,由于冗余链路的存在,R1 与 R3 之间的 IP 连通性其实并没有 DOWN (仍然可以通过 R4 到达彼此)

为了解决这个问题

  • 缺省情况下,BGP 使用报文出接口作为 TCP 连接的本地接口在部署 IBGP 对等体关系时,建议使用 Loopback 地址作为更新源地址。Loopback 接口非常稳定,而且可以借助 AS 内的 IGP 和元余拓扑来保证可靠性。
  • 在部署 EBGP 对等体关系时,通常使用直连接口的 IP 地址作为源地址,如若使用 Loopback 接口建立 EBGP 对等体关系则应注意 EBGP 多跳问题

对于 IBGP 来说,如果使用环回口建立邻居,一定要配置连接源,否则邻居关系无法正常建立。

在 IBGP 建立邻居时,两台设备之间不要使用默认路由,尽量使用明细路由(防止环路)

Huawei-bgppeer 3.3.3.3 connect-interface lo0 // 配置连接源为lo0接口

EBGP 多跳

在建立 IBGP 邻居时,建议使用环回口

但在建立 EBGP 邻居时,则建议使用直连接口。

EBGP 建立邻居时数据包的 ttl 默认为 1,仅限直连。跨设备会建立失败

可以设置 EBGP 连接邻居的最多跳数

综合配置

复制代码
[Huawei-bgp]peer 12.1.1.2 as-number 65413  // 设置邻居
[Huawei-bgp]peer 12.1.1.2 connect-interface lo0  // 使用lo0口与该邻居建立关系
[Huawei-bgp]peer 12.1.1.2 ebgp-max-hop 3  // 设置EBGP的最多条数,不写数值则默认为255
[Huawei-bgp]peer 12.1.1.2 next-hop-local  // 向该邻居更新报文时,修改下一跳为本设备
相关推荐
IpdataCloud2 小时前
担心IP暴露隐私?用安全IP查询工具自查,三步配置网络出口
网络·tcp/ip·安全·ip
xy34533 小时前
wireshark 如何捕获信息
网络·测试工具·渗透测试·wireshark
玖玥拾4 小时前
C# 语言进阶(十五)C# 游戏服务端 MySQL 数据库
服务器·开发语言·网络·数据库·mysql·c#
一个有温度的技术博主6 小时前
【VulnHub 实战】DC-1 靶机渗透测试笔记(一):信息收集与主机发现
服务器·网络·笔记
白帽小阳6 小时前
2026前端面试题!(附答案及解析)
javascript·网络·python·安全·web安全·网络安全·护网行动
hehelm8 小时前
Linux网络编程—TCP字典翻译系统
linux·开发语言·网络·c++·tcp/ip
持力行8 小时前
D-BUS会话总线
运维·网络
pt10438 小时前
思科网络自动化-API常用数据编码格式(JSON/XML/YAML)课程与实践
linux·服务器·网络
糖果店的幽灵9 小时前
安全测试从入门到精通_网络基础与HTTPS
网络·https·php
Keepingrun9 小时前
HTTP基础
网络·网络协议·http