摘自: https://blog.csdn.net/weixin_43751619/article/details/84954755

一,BGP协议原理与配置

边界网关协议( Border Gateway Protocol,BGP)是个复杂而又庞大的距离矢量动态路由协议,里面涉及许多非常复杂的配置。当然它的功能也非常强大,主要用于互联网AS之间的互连,BGP最主要的功能在于控制路由的传播和选择最优的路由。目前移动、电信和一些大的民营DC运行商都具有AS号,全国各大网络运行商都是通过BGP与自身的AS号来实现多线互联的。本次将依次介绍BGP路由协议工作原理以及应用场景和基本配置。

1,BGP协议概述

边界网关协议BGP是一种实现自治系统之间的路由可达,并选择最佳路由、提供无环路的域间距离矢量路由协议。早期发布的3个版本分别是BGP-1(RFC1105)、BGP-2(RFC1163)和BGP-3(RFC1267),1994年开始使用BGP4(RFC1771),2006年之后单播|PV4网络使用的版本是BGP4(RFC4271),其他网络(如|Pv6等)使用的版本是MP-BGP(RFC4760)。MP-BGP是对BGP4进行了扩展,来达到在不同网络中应用的目的,BGP-4原有的消息机制和路由机制并没有改变。MP-BGP在|Pv6单播网络上的应用称为BGP4+,在PV4组播网络上的应用称为MBGP( Multicast BGP)。BGP从多方面保证了网络的安全性、灵活性、稳定性、可靠性和高效性,BGP特征如下

  1. BGP采用认证和GTSM的方式,保证了网络的安全性
  2. BGP提供了丰富的路由策略,能够灵活地进行路由选路,并且能指导邻居按策略发布路由
  3. BGP提供了路由聚合和路由衰减功能用于防止路由振荡,有效提高了网络的稳定性。
  4. BGP使用TCP作为其传输层协议(端口号为179),并且支持BGP与BFD联动、 BGP Tracking和 BGP GR和NSR,提高了网络的可靠性在邻居数目多、路由量大且大部分邻居具有相同出口策略的场景下,BGP使用按组打包技术极大地提高了BGP打包发包性能。

2.BGP协议工作原理

BGP通过报文的交互完成邻居建立、路由更新等操作,共有Open、 Update、 Notification、 Keepalive

和 Route-refresh等5种报文类型。

  1. open报文:是TCP连接建立后发送的第一个报文,用于建立BGP邻居之间的连接关系。BGP邻居在接收到Open报文并协商成功后,将发送 Keepalive报文确认并保持连接的有效性。确认后,BGP邻居间可以进行 Update、 Notification、 Keepalive和 Route-refresh报文的交换。
  2. Update报文:用于在BGP邻居之间交换路由信息。 Update报文可以发布多条属性相同的可达路

    由信息,也可以撤销多条不可达路由信息。
  3. Notification报文:当BGP路由器检测到错误状态时,就向邻居发出 Notification报文,之后BGP

    连接会立即中断。
  4. Keepalive报文:BGP路由器会周期性地向邻居发出 Keepalive报文,用来保持连接的有效性。
  5. Route-refresh报文: Route-refresh用于在改变路由策略后请求对等体重新发送路由信息。

二,BGP选路规则

当到达同一目的地存在多条路由时,BGP依次对比下列属性来选择路由。

  1. 优选协议首选值( Prefva)最高的路由。协议首选值( Prefval)是华为设备的特有属性,该属性仅在本地有效。
  2. 优选本地优先级( Local Pref))最高的路由。如果路由没有本地优先级,BGP选路时将该路由按缺省的本地优先级100来处理。
  3. 依次优选手动聚合路由、自动聚合路由、 network命令引入的路由、 Import-route命令引入的路由,从对等体学习的路由。
  4. 优选AS路径( AS Path)最短的路由。
  5. 依次优选ogn类型为Gp.EGP、 Incomplete的路由。
  6. 对于来自同一AS的路由,优选MED值最低的路由。
  7. 依次优选EBGP路由、|BGP路由、 Localcross路由、 Remote Cross路由。PE上某个VPN实例的vPN4路由的ERT匹配其他VPN实例的RT后复制到该VPN实例,称为 LocalCross:从远端PE学习到的vPNw4路由的ERT匹配某个VPN实例的RT后复制到该VPN实例,称为 RemoteCross
  8. 优选到BGP下一跳GP度量值( metric最小的路由
  9. 优选 Cluster List最短的路由
  10. 优选 Router ID最小的设备发布的路由。如果路由携带 Originator ID属性,选路过程中将比较Originator ID的大小(不再比较 Router ID),并且优选 Originator ID最小的路由
  11. 优选从具有最小 IP Address I的对等体学来的路由。当到达同一目的地址存在多条等价路由时,可以通过BGP等价负载分担实现均衡流量的目的。形成BGP等价负载分担的条件是"BGP选择路由的策略”的1~8条规则中需要比较的属性完全相同。

BGP( Border Gateway Protocol)---边界网关协议的更多相关文章

  1. BGP路由协议(Border Gateway Protocol)

    BGP路由协议(Border Gateway Protocol) 目录 BGP路由协议(Border Gateway Protocol) 一.BGP概述 1.自治系统(AS,autonomous sy ...

  2. RIP、OSPF、BGP、动态路由选路协议、自治域AS

    相关学习资料 tcp-ip详解卷1:协议.pdf http://www.rfc-editor.org/rfc/rfc1058.txt http://www.rfc-editor.org/rfc/rfc ...

  3. 边界网关协议BGP

    Border Gateway Protocol (BGP) is a standardized exterior gateway protocol designed to exchange routi ...

  4. BGP(边界网关协议)简述

    BGP的起源 不同自治系统(路由域)间路由交换与管理的需求推动了EGP的发展,但是EGP的算法简单,无法选路,从而被BGP取代. 自治系统:(AS) IGP:自治系统内部协议,ospf,rip,is- ...

  5. protocol(协议) 和 delegate(委托)也叫(代理)---辨析

    protocol和delegate完全不是一回事. 协议(protocol),(名词)要求.就是使用了这个协议后就要按照这个协议来办事,协议要求实现的方法就一定要实现. 委托(delegate),(动 ...

  6. OC语言的Block与Protocol(协议)

    Block ● Block封装了一段代码,可以在任何时候执⾏行 ● Block可以作为函数参数或者函数的返回值,⽽而其本⾝身又可以带输⼊入参数或返回值. ● 苹果官⽅方建议尽量多⽤用block.在多线 ...

  7. loadrunner 脚本录制-Protocol Advisor协议分析器的使用

    脚本录制-Protocol Advisor协议分析器的使用 by:授客 QQ:1033553122 1.启动Protocol Advisor File > Protocol Advisor &g ...

  8. Protocol(协议)

    Protocol(协议) (一) (1)简介 1.Protocol:就一个用途,用来声明一大堆的方法(不能声明成员变量),不能写实现.看起来类似于一个类的接口, 不同的是协议没有父类,也不能定义实例变 ...

  9. 如何使用 Quagga BGP(边界网关协议)路由器来过滤 BGP 路由

    在之前的文章中,我们介绍了如何使用 Quagga 将 CentOS 服务器变成一个 BGP 路由器,也介绍了 BGP 对等体和前缀交换设置.在本教程中,我们将重点放在如何使用前缀列表prefix-li ...

随机推荐

  1. TurtleBot3使用课程-第一节b(北京智能佳)

    目录 1.模拟运行TurtleBot 2 1.1 ROS安装和设置2 1.1.1 turtlebot3 在Gazebo中模拟 3 1.1.1.1用于Gazebo的ROS包装 3 1.1.1.2 tur ...

  2. .NET 云原生架构师训练营(模块二 基础巩固 MongoDB API实现)--学习笔记

    2.5.7 MongoDB -- API实现 问题查询单个实现 问题查询列表实现 问题跨集合查询实现 问题创建实现 问题更新实现 问题回答实现 问题评论实现 问题投票实现 回答实现 QuestionC ...

  3. linux系统操作系统网卡漂移解决方案及问题原因

    一.问题描述 公司有100-150台服务器安装RHEL7.4&中标麒麟7.4系统,为方便编辑配置网卡,使用脚本方式配置为biosname=0,ifname=0,目的是为将en1o2p此类长字符 ...

  4. 最开始的总结——JAVA

    <最开始的总结> 回答自己几个问题:为什么去学它?学它有什么用?怎样去学它?自己目前目标是什么?估计自己会花多长时间去学习这些? 一.为什么学习Java,它有什么用? 答:我看中的是Jav ...

  5. 瞄到BindingGroup用法

    文章转载于https://www.cnblogs.com/dangnianxiaoqingxin/p/12653988.html 2.BindingGroup的使用 public class MyCl ...

  6. 2021升级版微服务教程4—Nacos 服务注册和发现

    2021升级版SpringCloud教程从入门到实战精通「H版&alibaba&链路追踪&日志&事务&锁」 默认文件1610014380163 教程全目录「含视 ...

  7. 树莓派-4WD智能小车操作小结

    树莓派-4WD智能小车操作小结 树莓派4B-4WD智能小车,双层结构,第一层结构为:小车扩展板(底层)+树莓派主板,通过铜柱隔离固定,小车扩展板相当于计算机的外设扩展板:上面一层为第二层,是三个舵机承 ...

  8. 【Spring】Spring IOC

    Spring IOC IOC 的常用注解 小节源码 之前的 XML 配置: <bean id="accountService" class="cn.parzulpa ...

  9. spring cloud gateway 自定义GatewayFilterFactory

    spring cloud gateway提供了很多内置的过滤器,那么因为需求的关系,需要自定义实现,并且要可配置,在一番折腾之后,总算是解决了,那么久记录下来 对于自定义的factory,我们可以选择 ...

  10. linux之平均负载(学习笔记非原创)

    什么是平均负载 [root@111 ~]# uptime 11:03:33 up 149 days, 17:34, 1 user, load average: 0.08, 0.05, 0.01 最后三 ...