BGP基础

一、使用BGP传递路由

AS之间使用BGP协议进行路由传递,相较于IGP协议:

  • BGP基于TCP,只要能够建立TCP连接即可建立BGP;
  • 只传递路由信息,不会暴露AS内的拓扑信息;
  • 触发式更新,而不是进行周期性更新;

二、BGP特征

特征1:

  1. BGP路由器之间会话基于TCP连接建立,TCP端口号179;
  2. 两个建立BGP会话的路由器互为对等体,BGP对等体之间交换BGP路由表;
  3. BGP路由器只发送增量的BGP路由更新,或进行触发式更新(不会周期性更新)

特征2:

  1. BGP通常被称为距离矢量路由协议;
  2. 每条BGP路由都携带多种路径属性,BGP可以通过这些路径熟悉控制路径选择(IS-IS、OSPF只能通过cost控制路径选择),BGP 在路径选择上有丰富的可操作性;

三、BGP对等体关系

1、BGP存在两种对等体关系类型:EBGP和IBGP:

  • EBGP:位于不同自治系统的BGP路由之间的对等体关系。两台路由器要建立EBGP对等体关系必须要满足两个条件:
    • 两个路由器所属AS不同
    • peer命令所指的对等体IP路由可达,并且能够建立TCP连接;
  • IBGP:位于相同自治系统的BGP路由器之间的BGP邻居关系;

2、BGP对等体关系建立:

  • 先启动BGP的一端先发起TCP连接,例如R1使用随机端口向R2的179端口发起TCP连接,完成TCP连接的建立;
  • 三次握手建立完成后,R1、R2之间互相发送Open报文,携带参数进行对等体建立;
    • Open报文中携带:
      • 自身AS号
      • hold time:用于协商后续keepalive报文发送时间
      • BGP Identifier:自身Router ID
  • 参数协商正常后双方互相发送Keepalive报文,收到对端发送的keepalive报文之后对等体建立成功,同时双方定期发送keepalive报文用于保持连接;
  • BGP对等体建立之后,BGP路由器发送BGP Update报文通告路由的对等体;

四、BGP报文类型

BGP存在5种不同类型的报文,不同类型的报文拥有相同的头部;

|---------------|----------------------|--------------------------------------------------------------|
| 报文名称 | 作用 | 发送时间 |
| Open | 协商对等体参数,建立对等体关系 | BGP TCP连接建立成功之后 |
| Update | 发送BGP路由更新 | BGP对等体关系建立之后有路由需要发送或路由变化时向对等体发送Update报文 |
| Notification | 报告错误信息,中止对等体关系 | 当BGP在运行中发现错误时,发送Notification报文将错误通告给BGP对等体 |
| Keepalive | 标志对等体建立,维持BGP对等体关系 | BGP路由器收到对端发送的Keepalive报文,将对等体状态置为已建立,同时定期发送Keepalive报文用于保持连接 |
| Route-refresh | 改变路由策略后请求对等体重新发送路由信息 | 当路由策略发生变化时,触发请求对等体重新通告路由 |

五、BGP状态机

|-------------|--------------------------------------------|
| peer状态名称 | 用途 |
| Idle | 开始准备TCP的连接并监视远程对等体 |
| Connect | 正在进行TCP连接,等待完成中 |
| Active | TCP连接没有成功,反复尝试连接 |
| OpenSent | TCP连接已经建立成功,开始发送Open包 Open包中携带参数协商对等体建立 |
| OpenConfirm | 参数、能力特性协商成功,自己发送Keepalive包,等待对方的Keepalive包 |
| Established | Y已经收到对端的Keepalive包,能力协商一致,开始使用Update通告路由信息 |

六、BGP路由的生成

BGP自身并不会发现并计算产生路由,BGP将IGP路由表中的路由注入到BGP路由表中,并通过Update报文传递给BGP对等体;

BGP注入路由的方式有两种:

  • Network
  • import-route

Network注入路由:

  • Network方式注入的路由必须时已经存在与IP路由表中的路由条目,否则不会被注入到BGP路由表中;
  • AS200内的BGP路由器通过update报文将路由传递给AS300内的BGP路由器;
  • AS300内的BGP路由器收到路由后,将这两条路由加入到本地的BGP路由表中;

import-route方式注入路由:

  • 直连路由
  • 静态路由
  • OSPF路由
  • IS-IS路由

等协议的路由注入到BGP路由表中;

七、通告原则

BGP通过network、import-route、aggregate聚合方式生成BGP路由后,通过Update报文将BGP路由传递给对等体;

BGP通告遵循以下几个原则:

  • 只发布最优且有效路由
  • 从EBGP对等体收到的路由,会发布给所有对等体(包括所有的EBGP和IBGP对等体)
  • IBGP水平分割:从IBGP对等体收到的路由,不会发送给IBGP对等体(通过全互联的方式解决水平分割带来的路由传递问题)
  • BGP同步规则:当一台路由器从自己的IBGP对等体学到一条BGP路由,它不能使用该条路由或把这条路由通告给自己的EBGP对等体,除非它又从IGP协议学习到这条路由(即IBGP路由与IGP路由同步)。同步规则主要用于规避BGP路由黑洞问题;
相关推荐
西安景驰电子1 小时前
《PTP精确时间协议系列》第一篇:从原理到应用,全面解读IEEE 1588
linux·运维·服务器·开发语言·网络·windows·php
ZGi.ai1 小时前
多模型回答不稳定:路由规则与评测方法
网络·人工智能·大模型评测·多模型·模型路由·zgi·模型网关
80s7772 小时前
独享住宅IP、长效代理ip是什么?有哪些作用?
网络·网络协议·tcp/ip
IPdodo_2 小时前
静态 IP、住宅 IP 和固定出口有什么区别?开发场景选型指南
服务器·网络·网络协议·tcp/ip·代理ip
_ZHOURUI_H_3 小时前
Unity TCP底层极限拆解:粘包、半包、CRC、序列号、双缓冲到底怎么一起工作的?
网络·网络协议·tcp/ip·游戏·unity·游戏引擎·游戏开发
长江&后浪4 小时前
防火墙的描述
开发语言·网络·php
小新讲网安5 小时前
安全运营中心(SOC)建设实战:从SIEM到威胁狩猎全流程指南
网络·安全·web安全·网络安全·网安
SKYLAB015 小时前
打破智能家居生态壁垒|微喇智能 WKV553‑A 模组原生支持 Matter,解锁跨平台互联新体验
网络·智能家居
笨鸟先飞,勤能补拙6 小时前
Web 服务器与计算机网络全景原理
运维·服务器·前端·网络·人工智能·计算机网络·web安全
KindSuper_liu6 小时前
Unity 游戏网络基础:从 TCP、UDP 到 HTTP、TLS 与 Best HTTP
网络·游戏·unity