| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> bgp协议基本内容 -> 正文阅读 |
|
[网络协议]bgp协议基本内容 |
BGP**BGP**(边界网关路由协议)是自治系统间的路由协议。是一种无类别路径矢量EGP协议。BGP交换的网络可达性信息提供了足够的信息来检测路由回路并根据性能优先和策略约束对路由进行决策** 文章目录1. BGP概述**边界网关协议BGP(Border Gateway Protocol)**是一种实现自治系统AS(Autonomous System)之间的路由可达,并选择最佳路由的距离矢量路由协议。 早期发布的三个版本分别是BGP-1(RFC1105)、BGP-2(RFC1163)和BGP-3(RFC1267),1994年开始使用BGP-4(RFC1771),2006年之后单播IPv4网络使用的版本是BGP-4(RFC4271),其他网络(如IPv6等)使用的版本是MP-BGP(RFC4760)。 MP-BGP是对BGP-4进行了扩展,来达到在不同网络中应用的目的,BGP-4原有的消息机制和路由机制并没有改变。MP-BGP在IPv6单播网络上的应用称为BGP4+,在IPv4组播网络上的应用称为MBGP(Multicast BGP)。 为方便管理规模不断扩大的网络,网络被分成了不同的自治系统。1982年,外部网关协议EGP(Exterior Gateway Protocol)被用于实现在AS之间动态交换路由信息。 但是EGP设计得比较简单,只发布网络可达的路由信息,而不对路由信息进行优选,同时也没有考虑环路避免等问题,很快就无法满足网络管理的要求。 BGP是为取代最初的EGP而设计的另一种外部网关协议。不同于最初的EGP,BGP能够进行路由优选、避免路由环路、更高效率的传递路由和维护大量的路由信息。 虽然BGP用于在AS之间传递路由信息,但并不是所有AS之间传递路由信息都需要运行BGP。比如在数据中心上行的连入Internet的出口上,为了避免Internet海量路由对数据中心内部网络的影响,设备采用静态路由代替BGP与外部网络通信。 BGP从多方面保证了网络的安全性、灵活性、稳定性、可靠性和高效性: 1、BGP采用认证和GTSM的方式,保证了网络的安全性。 2、BGP提供了丰富的路由策略,能够灵活的进行路由选路。 3、BGP提供了路由聚合和路由衰减功能用于防止路由振荡,有效提高了网络的稳定性。 4、BGP使用TCP作为其传输层协议(端口号为179),并支持BGP与BFD联动、BGP Tracking和BGP GR,提高了网络的可靠性。 2. BGP基本概念1.自治系统(autonomous system),一段互联网IP地址的管理者,或者称ISP(互联网服务提供者)。自治系统内,管理者可以自主决定路由的所有操作,自治系统之间的访问,通过BGP等外部路由协议交换信息。提供互联网服务的ISP必须经过注册并分配AS号,该AS号全网唯一,中国的AS号管理者是中国互联网络信息中心(cnnic)。 2.对等体(peer),BGP连接是一对一连接,建立BGP连接的双方称为对等体,对等体通过AS号进行识别,相同AS号的称内部对等体,使用IBGP协议,不同AS号的称外部对等体,使用EBGP。 3. BGP状态机BGP对等体的交互过程中存在6种状态机:空闲(Idle)、连接(Connect)、活跃(Active)、Open报文已发送(OpenSent)、Open报文已确认(OpenConfirm)和连接已建立(Established)。在BGP对等体建立的过程中,通常可见的3个状态是:Idle、Active和Established。 1、Idle状态是BGP初始状态。 在Idle状态下,BGP拒绝邻居发送的连接请求。只有在收到本设备的Start事件后,BGP才开始尝试和其它BGP对等体进行TCP连接,并转至Connect(连接)状态。 Start事件是由一个操作者配置一个BGP过程,或者重置一个已经存在的过程或者路由器软件重置BGP过程引起的。 任何状态中收到Notification(通告)报文或TCP拆链通知等Error事件后,BGP都会转至Idle状态。 2、在Connect(连接)状态下,BGP启动连接重传定时器(Connect Retry),等待TCP完成连接。 如果TCP连接成功,那么BGP向对等体发送Open报文,并转至OpenSent状态。 如果TCP连接失败,那么BGP转至Active(活跃)状态。 如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP继续尝试和其它BGP对等体进行TCP连接,停留在Connect状态。 3、在Active状态下,BGP总是在试图建立TCP连接。 如果TCP连接成功,那么BGP向对等体发送Open报文,关闭连接重传定时器,并转至OpenSent状态。 如果TCP连接失败,那么BGP停留在Active状态。 如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP转至Connect状态。 4、在OpenSent状态下,BGP等待对等体的Open报文,并对收到的Open报文中的AS号、版本号、认证码等进行检查。 如果收到的Open报文正确,那么BGP发送Keepalive报文,并转至OpenConfirm状态。 如果发现收到的Open报文有错误,那么BGP发送Notification报文给对等体,并转至Idle状态。 5、在OpenConfirm状态下,BGP等待Keepalive或Notification报文。如果收到Keepalive报文,则转至Established状态,如果收到Notification报文,则转至Idle状态。 6、在Established状态下,BGP可以和对等体交换Update、Keepalive、Route-refresh报文和Notification报文。 如果收到正确的Update或Keepalive报文,那么BGP就认为对端处于正常运行状态,将保持BGP连接。 如果收到错误的Update或Keepalive报文,那么BGP发送Notification报文通知对端,并转至Idle状态。 Route-refresh报文不会改变BGP状态。 如果收到Notification报文,那么BGP转至Idle状态。 如果收到TCP拆链通知,那么BGP断开连接,转至Idle状态。 4.BGP与IGPBGP对等体之间的交互原则BGP设备将最优路由加入BGP路由表,形成BGP路由。BGP设备与对等体建立邻居关系后,采取以下交互原则: 1、从IBGP对等体获得的BGP路由,BGP设备只发布给它的EBGP对等体。 BGP引入IGP路由BGP与IGP在设备中使用不同的路由表,为了实现不同AS间相互通讯,BGP需要与IGP进行交互,即BGP路由表和IGP路由表相互引入。 BGP协议本身不发现路由,因此需要将其他路由引入到BGP路由表,实现AS间的路由互通。 当一个AS需要将路由发布给其他AS时,AS边缘路由器会在BGP路由表中引入IGP的路由。为了更好的规划网络,BGP在引入IGP的路由时,可以使用路由策略进行路由过滤和路由属性设置,也可以设置MED值指导EBGP对等体判断流量进入AS时选路。 BGP引入路由时支持Import和Network两种方式: 1、Import方式是按协议类型,将RIP、OSPF、ISIS等协议的路由引入到BGP路由表中。为了保证引入的IGP路由的有效性,Import方式还可以引入静态路由和直连路由。 2、Network方式是逐条将IP路由表中已经存在的路由引入到BGP路由表中,比Import方式更精确 5. BGP属性特点BGP属性有:公认必遵,公认任意,可选过渡,可选非过渡 1.OriginOrigin属性定义路径信息的来源,标记一条路由是怎么成为BGP路由的 2.AS_PathAs-path:指示出了该路由信息经过了哪些AS路径,主要作用是保证AS间无环路(如果收到的路径出现本自治系统的号码,则拒绝接收),一般当本自治系统的路由离开自治系统的时候会添加本自治系统的号码,BGP路由选路的时候,会优先选择AS-PATH短的路由。 3.Next_hop下一跳属性,需要注意的是当边界设备学习到EGP对等体发布的路由的时候,传递给IBGP对等体的时候,不会修改路由的下一跳。 4.Local_PreferenceLocal_Pref属性仅在IBGP邻居之间有效,不通告给其他AS。它表明路由器的BGP优先级,用于判断流量离开AS时的最佳路由 值越大越优 其默认值为100 5.MEDMED(Multi-Exit-Discriminator)属性仅在相邻两个AS之间传递,收到此属性的AS不会再将其通告给任何其他第三方AS,用于判断流量进入AS时的最佳路由 6.BGP选路规则
7.BGP路由黑洞处理方法全互联如图: AS2中AR2分别与AR3和AR4建立邻,R4与R3建邻,并且修改下一条属性(缺点:配置量大,全部路由都要传递,占用链路资源) 反射器联邦联盟配置,现网中已经很少用到 MPLSMPLS标签技术:有了这个标签分发技术,就可以在2层与3层之间弄出一个2.5层,路由器通过MPLS的压标签弹标签进行路由的传递,来解决BGP路由黑洞的问题 原因其实很简单: AR4收到AR2的BGP路由,它发现自己的FIB表并没有这条路由,这时AR3会基于这条路由进行本地的递归查找,最后递归发现AR3本地的FIB表中有这条BGP路由的下一跳,即AR2的BGP建邻环回地址,这样就会给AR2的BGP路由贴上环回的标签,通过这条环回的MPLS的标签隧道,从AR4->AR3->A2,到了AR2后撕掉建邻环回的标签,发现是要到本地的另一个环回,这样就可以访问到了,所以MPLS是这样从根本解决BGP路由黑洞 8. BGP扩展特性1.安全特性1.安全特性 2.路由衰减2.1解决路由不稳定的问题,BGP主要应用于复杂的网络环境中,路由变化十分频繁。为了防止持续的路由震荡带来的不利影响,BGP使用路由衰减来抑制不稳定的路由 2.2实现抑制不稳定的路由 使用惩罚值(penalty value)来衡量一条路由的稳定性 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 18:19:55- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |