当前位置: 首页 > web >正文

BGP 笔记

一、BGP产生背景

BGP(Border Gateway Protocol,边界网关协议)用于自治系统间的动态路由协议,是一种外部网关协议。
自治系统AS:一组被进行统一管理,运行同一个IGP协议的路由器组成的网络范围。通常使用相同的路由策略。
自治系统编号:
2字节AS编号:取值范围0-65535,其中0和65535保留
公有AS:1-64511
私有AS:64512-65535
4字节AS编号:2的32次方的编号数量
公有:65536–4199999999
私有:4200000000–4294967294

二、路由协议的分类

IGP:RIP、OSPF、IS-IS
EGP:BGP

三、BGP协议特性

1、BGP负责把路由从一个AS传到另一个AS;从其他AS传递过来的路由在本AS内部的扩散依靠IGP;

2、BGP是路径矢量协议,一跳是一个自治系统;
当一条路由传入某个AS,该路由的下一跳会变为上个AS的出接口的IP地址;当一条路由在某个AS内部的路由器之间传递时,下一跳不变。

3、AS防环机制:路径矢量路由协议,从设计上避免了环路的发生,
当一条路由每从一个AS传出,会把该AS的编号按照从右至左的顺序依次记录在AS_PATH属性中;
一个路由器从其他AS收到一条路由通告,会检查本路由器的AS标号是否出现在该路由条目的AS_PATH属性中,如果出现了则该条目不学习;
4、BGP基于TCP协议传输,端口号179;必须手动配置邻居;
5、BGP在第一次网络收敛的时候发送完整的路由表,后续只发送增量更新;
6、BGP有多种属性可以控制路由选择。
7、支持路由聚合;
8、路由过滤和路由策略;

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

1、EBGP水平分割(AS_PATH)
通过AS_PATH属性防环,在学习到的路由中,若有本地AS号,则拒绝学习,防止环路
2、IBGP水平分割
当路由器从一个IBGP对等体学习到某条BGP路由时,它将不能再把这条路由通告给任何IBGP对等体。

五、BGP状态机

Idle:空闲状态,停留30秒,初始化开始准备TCP连接并监视远程对等体,启动BGP时,同时建立邻居关系。
connect:TCP连接中状态,本端为TCP被动连接方,若连接建立失败则进入Active状态,反复尝试连接;
Active:活跃状态,本端为TCP主动连接方,TCP连接没建立成功,反复尝试连接;
open-sent:开始发送状态,成功建立TCP连接,发出open报文,open报文中携带参数协商对等体的建立,正在等待接受对方open报文;
open-confirm:开始确认状态,收到open报文,发出Keepalive报文,等待第一个Keepalive报文;
established:已连接状态,收到Keepalive报文,最终成功建立邻居;

六、BGP路由选路原则(13条)

1、首先丢弃下一跳不可达的路由;
2、优选Preferred-value值最大的路由;默认为0;
Preferred-value:定义:首选项。
属性值:默认为0,取值范围是 0~65535,取值越大,优先级越高。
3、优选本地优先级(LOCAL_PREF)最高的路由;
4、依次选择network命令生成的路由、import-route命令引入的路由、聚合路由;
5、优选AS路径(AS_PATH)最短的路由;
6、依次选择ORIGIN属性为IGP、EGP、Incomplete的路由;
7、优选MED值最低的路由;
8、依次选择从EBGP、联盟EBGP、联盟IBGP、IBGP学来的路由;
9、优选下一跳度量值最低的路由;
度量值:一般指通过IGP协议到达下一跳地址的度量值
10、优选CLUSTER_LIST长度最短的路由;
11、优选ORIGINATOR_ID最小的路由;
12、优选Router ID最小的路由器发布的路由。
13、优选IP地址最小的对等体发布的路由。

七、BGP路由的发布策略

只将最优路由发布给对等体。如果配置了active-route-advertise命令,则BGP发布IP路由表中的最优路由;否则,发布BGP路由表中的最优路由。
比较优先级:OSPF 优先级:10和150 ,BGP优先级255。在整个IP路由表中,选择通过OSPF学到的路由。

只把自己使用的路由发布给对等体(自己选的最优路由);
从EBGP获得的路由会向它所有BGP对等体发布;
从IBGP获得的路由不向它的IBGP对等体发布;(IBGP水平分割)
从IBGP获得的路由发布给它的EBGP对等体;
BGP连接一旦建立,BGP发言者将把满足上述条件的所有BGP路由发布给新对等体。之后,BGP发言者只在路由变化时,向对等体发布更新的路由。

五、属性控制的选择建议

1.如果希望影响下游所有路由器的路由选择,建议使用AS-PATH
2.如果只希望影响本AS内部的某个路由器选择,建议使用Local-preference
3.如果希望只影响下游某一个AS的路由器选择,建议使用MED
4.如果希望只影响某一台路由器的路由选择,建议使用preferred-value

四、BGP路由聚合

作用:减小路由表规模
1、自动聚合:
只能对引入的IGP的路由进行聚合;
只能将明细路由汇总到主类,这会造成路由黑洞;
华为设备默认关闭自动聚合功能;
只能在始发路由器上进行配置;

2、手工聚合:
可实现精确汇总:[R1-bgp]aggregate 172.16.0.0 16
可以在任何路由器上对BGP路由进行聚合;
出现问题:明细路由依然被通告,有形成环路的隐患
解决方法:[R1-bgp]aggregate 172.16.0.0 16 detail-suppressed  //抑制明细路由,此命令不通告明细路由;

五、路由反射器

1、定义:BGP反射器能把从IBGP邻居学习的路由反射给其他IBGP邻居
2、作用:用于替代IBGP全连接,减少IBGP邻居数量;解决BGP路由黑洞问题;
RR(router reflect):路由反射器
反射器角色:
client:RR客户机
非客户机
3、反射规则
从非客户机端接受的路由,仅反射给客户端;
从客户端接受到的路由,反射给所有客户端和非客户端,路由始发者除外;
从EBGP接收的路由,反射给所有的客户端和非客户端;
4、反射集群:由反射器和客户端组成的网络范围;
如果存在多个反射器,配置相同的cluster_id

5、路由反射存在问题:使得IBGP水平分割原则失效,会导致环路的产生
6、解决方法:
通过两个路径属性来避免环路
(1)cluster_list(集群列表):
类似AS_PATH,每个RR都有一个Cluster id,默认为路由器的router id,可手工修改;
同一个AS内的Cluster id必须相同,才能有防环作用。
路由传递过程中,把经过的反射器的Cluster_id依次记录在Cluster_list中;
Cluster_list用于反射器防环,当反射器收到BGP路由时,如果本机的Cluster_id出现在Cluster_list中,则丢弃该路由;

(2)originator_ID:起源ID
由路由器反射器反射一条路由时产生,会在反射出去的路由中增加originator_ID,它就是本地AS内路由始发者的router-id;
即使这条反射路由经过多个RR,当BGP路由器收到一条携带Originator_ID属性的IBGP路由,并且Originator_ID属性值与自身的Router ID相同,则它会忽略关于该条路由的更新。
originator_ID用于路由优选,短的优先

7、总结BGP的防环机制
(1)AS_PATH:解决AS之间的环路问题
(2)IBGP的水平分割:解决一个AS内部IBGP邻居之间环路问题
(3)Cluster-list防环:当一个反射群中存在多个反射器时,通过Cluster-list防环,
(4)originator_ID:在多个反射群之间,通过originator_ID防环

http://www.xdnf.cn/news/17484.html

相关文章:

  • 配送算法10 Batching and Matching for Food Delivery in Dynamic Road Networks
  • .NET程序跨平台ARM电脑上发布的程序格式是,so还是DLL?
  • stm32项目(24)——基于STM32的汽车CAN通信系统
  • 费米问题:估算北京有多少量特斯拉汽车?
  • 等保测评-RabbitMQ中间件
  • 【线性代数】目录
  • day 16 stm32 IIC
  • STM32——时钟系统
  • WinForm 中 ListView 控件的实战应用与功能拓展
  • Bee 2.5.2.6 发布
  • 库函数蜂鸣器的使用(STC8)
  • Typora上传图片保存到assets目录下
  • 线程池多反应堆服务器webserver(c++)
  • Web文件上传:本地与云存储实战
  • 数据分析框架从 “工具堆砌” 转向 “智能协同”
  • 每日算法刷题Day59:8.9:leetcode 队列8道题,用时2h30min
  • 【JVM】深入解析Java虚拟机
  • 全志MPP学习(1)-全志MPP概念理清
  • VisionPro常用标定方式
  • Java学习Collection单列集合中的三种通用遍历方法
  • CPO-SVM分类预测+特征贡献SHAP分析,通过特征贡献分析增强模型透明度,Matlab代码实现,引入SHAP方法打破黑箱限制,提供全局及局部双重解释视角
  • Vue 服务端渲染(SSR)详解
  • 饿了么零售 sign 分析
  • [ MySQL 数据库 ] 环境安装配置和使用
  • 支付宝「安全发-甲方直发」架构详解及与「安全发ISV模式」对比
  • 二十八天(数据结构:图的补充)
  • 仓颉编程语言的match表达式
  • 【科研绘图系列】R语言绘制气泡图
  • 用户、组和目录的磁盘配额
  • GDB 调试全方位指南:从入门到精通