目录

  • 一、自治系统AS-Autonomous System
  • 二、BGP(Border Gateway Protocol边界网关协议)
  • 三、BGP报文结构
  • 四、BGP数据包类型
  • 五、BGP状态机制
  • 六、BGP路由宣告原则
  • 七、BGP下一跳
  • 八、BGP路由聚合
  • 九、BGP路由属性
  • 十、BGP选路
  • 十一、BGP路由过滤



一、自治系统AS-Autonomous System

IBGP不需要IBGP邻居之间有物理连接 ibgp邻居之间必须直连吗_更新源


注意编号是从1开始 不是0

二、BGP(Border Gateway Protocol边界网关协议)

IBGP不需要IBGP邻居之间有物理连接 ibgp邻居之间必须直连吗_更新源_02


注意BGP是距离矢量协议 不是链路状态协议

IGP中有链路状态协议和距离矢量协议的区分

而EGP中没有!

BGP触发式更新 无周期性更新
邻居必须手动指定而非自动建立
邻居不一定需要直连 也可通过IGP或者静态路由连通
一台BGP路由器只能运行在一个AS内 不存在AS间路由器的情况
BGP所有包都是单播的 没有广播和组播
配置邻居时 对端IP地址和AS号必须配置 其他都为可选项

EBGP邻居数据包TTL = 1 默认直连 非直连需要配置命令修改TTL
IBGP邻居数据包TTL = 255

EBGP邻居间一般采用直连接口
IBGP邻居间一般采用回环口-稳定

Keepalive包60s发送一次 等待周期为3*60=180s

三、BGP报文结构

IBGP不需要IBGP邻居之间有物理连接 ibgp邻居之间必须直连吗_更新源_03

IBGP不需要IBGP邻居之间有物理连接 ibgp邻居之间必须直连吗_更新源_04

四、BGP数据包类型

IBGP不需要IBGP邻居之间有物理连接 ibgp邻居之间必须直连吗_网络_05


OPEN报⽂负责和对等体建⽴邻居关系

UPDATE被⽤来在BGP对等体之间传递路由信息

NOTIFICATIOP消息被⽤来在BGP SPEAKER间传递错误消息

ROUTE-REFRESH⽤来通知对等体⾃⼰⽀持路由刷新的能⼒

在BGP协议中,根本就不存在Hello报⽂

Open包只发一次 交互一次 后面就没有啦
只在刚开始建立邻居时交互一次

BGP宣告后才会发送Update数据包

五、BGP状态机制

IBGP不需要IBGP邻居之间有物理连接 ibgp邻居之间必须直连吗_IP_06

注意TCP三次握手建立完成后才发送Open包 开始建立BGP连接

IBGP不需要IBGP邻居之间有物理连接 ibgp邻居之间必须直连吗_更新源_07


Keeplive 60s一次

收到Keeplive 即进入Establish状态

IBGP不需要IBGP邻居之间有物理连接 ibgp邻居之间必须直连吗_更新源_08

IBGP不需要IBGP邻居之间有物理连接 ibgp邻居之间必须直连吗_华为_09


IBGP不需要IBGP邻居之间有物理连接 ibgp邻居之间必须直连吗_华为_10

六、BGP路由宣告原则

缺省情况下 BGP不发布任何本地路由

只有明确宣告的网络才会发送给邻居
宣告的网络必须能精确地在路由表中找到
多条路径时 只选最优的给自己使用
只把自己使用的最优路由宣告给邻居

从EBGP学习到的路由会宣告给所有邻居
从IBGP学习到的路由不会宣告给IBGP
从IBGP学习到的路由会宣告给EBGP

对比IGP
IGP会自动发布路由 我学习到的也会发送给他
IGP邻居建立和路由宣告是打包在一起的
BGP邻居建立 和 路由宣告 是分开的

IBGP不需要IBGP邻居之间有物理连接 ibgp邻居之间必须直连吗_更新源_11

BGP路由宣告方式有三种
network
Import
路由聚合
其中network最精确

七、BGP下一跳

BGP在给邻居传递路由时的下一跳 = 更新源
在EBGP间传递时会修改下一跳为自己的更新源
在IBGP间传递时不会修改下一跳为自己的更新源

更新源:建立邻居和邻居所学习到的下一跳
没有修改下一跳 - 下一跳为出站接口
修改下一跳 - 下一跳为更新源

IBGP不需要IBGP邻居之间有物理连接 ibgp邻居之间必须直连吗_更新源_12


在IBGP间传递时不会修改下一跳为自己的更新源

在IBGP建立时 最好打上该条命令 加不会错 不加可能会错

八、BGP路由聚合

IBGP不需要IBGP邻居之间有物理连接 ibgp邻居之间必须直连吗_更新源_13


注意自动聚合默认关闭

IBGP不需要IBGP邻居之间有物理连接 ibgp邻居之间必须直连吗_华为_14

BGP自动聚合 默认只发送聚合路由
BGP手动聚合 默认明细路由和子网路由一起发布 可配置命令抑制自身明细路由的发布

汇总之后 丢失了原有明细路由的路由编号(AS号) 所以该汇总路由还会被原有明细路由学习到 形成环路
如果携带AS号 即防环规则 就不会再发送给原来的路由 不会形成环路
as-set 保留原有明细路由的AS_PATH属性

在配置BGP的路由聚合的时候,默认情况下是丢失了每个明细路由的as-path属性,当我们使⽤了 as-set 参数之后,汇总路由就会继承所有明细路由的as-path属性,但是此时的 as 号已经没有了顺序,称之为 as 集合。

九、BGP路由属性

IBGP不需要IBGP邻居之间有物理连接 ibgp邻居之间必须直连吗_网络协议_15


IBGP不需要IBGP邻居之间有物理连接 ibgp邻居之间必须直连吗_IP_16


IBGP不需要IBGP邻居之间有物理连接 ibgp邻居之间必须直连吗_网络_17


公认-都能识别的属性

必遵-必须携带

任意-不一定携带

可选-不一定都能识别的属性
过渡-保留并发给下一个邻居
非过渡-丢弃

IBGP不需要IBGP邻居之间有物理连接 ibgp邻居之间必须直连吗_网络_18


出站路由 Local-Preference 缺省100 越大越优先

入站路由 MED 缺省0 越小越优先

IBGP不需要IBGP邻居之间有物理连接 ibgp邻居之间必须直连吗_更新源_19


AS-Path

EBGP传递时更新(加入自己的AS号)

丢弃AS_PATH属性中包含本AS Number的路由(防止AS间环路)

AS数量越少越优先

Next-Hop
EBGP会自动更新自己的更新源
IBGP不会自动更新 除非打上Next_Hop_Local命令
关于BGP路由的next-hop属性,是必须包含在BGP的更新条⽬中的。 并且对于EBGP邻居之间发送路由的时候,默认情况下会肯定要修改下⼀跳IP地址的,但是该IP地址不⼀定就是BGP邻居设备的接⼝IP地址,⽐如在被路由反射器反射过的路由条⽬

MED
仅在相邻两个AS之间传递 收到此属性的AS不会再通告给任何其他第三方AS
缺省情况下 不允许比较来自不同AS邻居的路由信息的MED值
除非能够确认不同的AS采用了相同的IGP和路由选择方式

IBGP不需要IBGP邻居之间有物理连接 ibgp邻居之间必须直连吗_更新源_20


标识具有相同特征的BGP路由 使路由策略的应用更加灵活 降低维护管理的难度

类似于Tag 给一些路由打上一些标记

IBGP不需要IBGP邻居之间有物理连接 ibgp邻居之间必须直连吗_更新源_21

十、BGP选路

BGP不像IGP 本身并没有路由算法 而是结合丰富的属性进行选路

IBGP不需要IBGP邻居之间有物理连接 ibgp邻居之间必须直连吗_华为_22


IBGP不需要IBGP邻居之间有物理连接 ibgp邻居之间必须直连吗_华为_23


手动聚合优于自动聚合

EBGP邻居的路由优于IBGP邻居的路由

AS-Path越短越优先

Router ID越小越优先

十一、BGP路由过滤

IBGP不需要IBGP邻居之间有物理连接 ibgp邻居之间必须直连吗_IP_24


在BGP协议中,路由属性⾮常多。所以针对很多路由属性,也存在专门的匹配⼯具,⽐如as-path属性和团体属性,都存在对应的匹配⼯具。 ⽽ip-prefix 和 route-policy是可以应⽤于任何路由协议的,可以称之为协议⽆关的⼯具

route-policy和 filter-policy肯定是可以⽤来过滤路由的,但是 ip extcommunity-filter 仅仅可以⽤来匹配路由,本⾝⽆法peer 命令结合使⽤实现过滤路由的效果

对于同⼀个BGP邻居的相同⽅向,如果使⽤多种过滤⼯具同时配置了过滤,那么优先级如下:对于出向⽽⾔,route-policy 的优先级⾼于ip-prefix ;对于⼊向⽽⾔,ip-prefix的优先级⾼于 route-policy