带你挑战年薪20W的广域网协议---BGP协议

BGP原理的概述

BGP协议是一种距离矢量(Distance vector)的路由协议,但是比起RIP等典型的距离矢量协议,又有很多增强的性能。BGP使用TCP作为传输协议,使用端口号179。在通信时,要先建立TCP会话,这样数据传输的可靠性就由TCP协议来保证,而在BGP的协议中就不用再使用差错控制和重传的机制,从而简化了复杂的程度。另外,BGP使用增量的、触发性的路由更新,而不是一般的距离矢量协议的整个路由表的、周期性的更新,这样节省了更新所占用的带宽。BGP还使用“保留”信号(Keepalive)来监视TCP会话的连接。而且,BGP还有多种衡量路由路径的度量标准(称为路由属性),可以更加准确的判断出最优的路径。
BGP使用TCP作为其承载协议建立连接。因此与IGP逐跳路由器建立邻居不同,BGP可以跨越多跳路由器建立邻居关系。

BGP和IGP协议对比

协议的分类

IGP(Interior gateway protocols)——内部网关协议,定义为在一个自治系统内部使用的路由协议(包括动态路由协议和静态路由)。IGP的功能是完成数据包在AS内部的路由选择,或者说,是讲述数据包如何穿过本地AS的。RIPv1&v2,OSPF,ISIS都是典型的IGP。
EGP(Exterior gateway protocols)——外部网关协议,定义为在多个自治系统之间使用的路由协议。它主要完成数据包在AS间的路由选择,或者说,讲述数据包为了到达目的IP,需要通过哪些AS。BGP就是一种EGP。
2字节长度的AS号码,即1-65535。其中1-64511为公有AS,64512-65534为私有AS。在2009年1月之后,IANA决定使用4字节长度AS,范围是65536-4294967295

应用场景

IGP只作用于本地AS内部,而对其他AS一无所知。它负责将数据包发到主机所在的网段(segment)

EGP作用于各AS之间,它只了解AS的整体结构,而不了解各个AS内部的拓扑结构。它只负责将数据包发到相应的AS中,余下的工作便交给IGP来做。

BGP报文类型的全面解析

1、open报文:负责和对等体建立邻居关系
2、update报文:被用来在对等体之间传递路由信息(包括可达路由或者不可达路由)
3、Notification报文:检测到错误的时候,就发送该消息给对等体
4、Keepalive报文:周期性每60秒发送,用来维护TCP/IP连接
5、Route-refresh报文:表示自己支持路由刷新能力

BGP的报文类型

Open报文


里面比较重要的字段
version v4版本
My AS 代表是我该设备的AS号码
router id 代表该设备的BGP的router id
Hold time时间 从0开始一直增加到180s,最小可以为0,这种情况下BGP连接被认为永远是up,对等体之间
不会发送keepalive报文来检测邻居是否失效
可选字段和可变长字段

Keepalive报文


缺省情况下,发送KeepAlive 的时间间隔为 60 秒,Hold Time是180秒。每次从邻居处接收到KeepAlive 报文将重置Hold Time定时器,如果Hold Time定时器超时,就认为对等体Down掉。

KeepAlive报文主要用于对等体路由器间的运行状态以及链路的可用性确认。KeepAlive 报文的组成只包括一个BGP数据报头。

Update报文


前面两部分表示路由撤销信息,后面三部分表示路由可达信息
路由可达信息携带各种属性
但是路由撤销信息就不需要携带各种属性了,因为这时候是撤销了

Notification报文


Notification报文主要在发生错误或对等体连接被关闭的情况下使用,该消息携带各种错误码(如定时器超时等),以及错误子码和错误信息。

Route-refresh报文


可以在不中断BGP连接的情况下,对BGP路由表进行动态刷新,并应用新的路由策略

BGP协议当中IBGP邻居关系建立

运行在相同AS内的BGP路由器建立的邻居关系为IBGP(Internal BGP)邻居关系

RTB的配置

bgp 345
 router-id 1.1.1.1
 peer 2.2.2.2 as-number 345
 peer 2.2.2.2 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization        ###默认配置
  peer 2.2.2.2 enable            ###默认生成

RTC的配置

bgp 345
 router-id 2.2.2.2
 peer 1.1.1.1 as-number 345
 peer 1.1.1.1 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  peer 1.1.1.1 enable      ###默认生成

注意点:

IBGP的关系 一般建议用loopback建立
loopback比较稳定
可以实现冗余备份

BGP协议当中EBGP邻居关系建立

运行在不同AS之间的BGP路由器建立的邻居关系为EBGP(External BGP)邻居关系

RTB的配置

bgp 345
 router-id 1.1.1.1
 peer 12.1.1.2 as-number 200
 #
 ipv4-family unicast
  undo synchronization
  peer 12.1.1.2 enable   ###默认生成
#

RTD的配置

#
bgp 200
 peer 12.1.1.1 as-number 345
 #
 ipv4-family unicast
  undo synchronization
  peer 12.1.1.1 enable    ###默认生成
#

注意点:

一般建立ebgp关系的时候 建议大家用物理接口建立 如果用loopback的话 需要修改ttl的数值
peer 1.1.1.1 ebgp-max-hop 2
默认情况下建立ebgp的时候,我们发送数据包的TTL值为1

BGP协议的状态机的详细概述


Idle:空闲状态,BGP系统发出start事件(就是管理员配置BGP的过程),BGP初始化资源,复位连接计时器(32s),发起TCP连接,同时转入Connect状态
?
Connect:在此状态,BGP发起第一个TCP连接,如果TCP连接成功,就转入OpenSent状态,如果TCP连接失败,就转入Active状态。(TCP连接失败两种情况:1.收到TCP参数协商失败的回复,则进入Active状态,2.对方长时间没有回复,超时,则保持在Connect状态
?
Active:BGP总是在试图建立TCP连接,如果连接计时器超时,就退回到Connect状态,如果TCP连接成功,就转入OpenSent状态,如果TCP连接失败,就继续保持在Active状态,并继续发起TCP连接。
?
OpenSent:BGP也已经发送了第一个Open报文,BGP就在等待其对等体发送Open报文。并对收到的Open报文进行正确性检查,如果有错误,系统就会发送一条出错通知消息并退回到Idle状态,如果没有错误,BGP就开始发送Keepalive报文,并复位Keepalive计时器(180s),开始计时。同时转入OpenConfirm状态。
?
OpenConfirm:BGP等待一个Keepalive报文,如果收到了一个Keepalive报文,就转入Established阶段

Established:BGP对等体交换update、keepalive、route-refresh报文

以后会周期性发送keepalive报文(60s)

如果收到notification报文或者收到TCP拆除链接通知,BGP转至idle状态

BGP的路由生成方式network

Network命令是逐条将IP路由表中已经存在的路由引入到BGP路由表中

通过display命令在RTC上查看是否学到BGP发布的路由条目

BGP的路由生成方式import

Import命令是根据运行的路由协议(RIP,OSPF,ISIS等)将路由引入到BGP路由表中,同时import命令还可以引入直连和静态路由

通过display命令在RTC上查看是否学到BGP引入的路由条目

原文地址:https://blog.51cto.com/13817711/2455057

时间: 2024-10-07 18:45:05

带你挑战年薪20W的广域网协议---BGP协议的相关文章

挑战20W年薪协议---BGP协议(BGP通告原则)

BGP通告原则之一 仅将自己最优可达的路由发布给邻居什么才是最优BGP路由 <R2>display bgp routing-table BGP Local router ID is 2.2.2.2 Status codes: * - valid, > - best, d - damped, h - history, i - internal, s - suppressed, S - Stale Origin : i - IGP, e - EGP, ? - incomplete Total

学会广域网当中的网红协议PPP协议

什么是广域网?广域网里面的网红协议有哪一些? ? 局域网,LAN(Local Area Network)是指在某一区域内(如一个学校.工厂和机关内)由多台计算机互联成的计算机组.一般是方圆几千米以内? 广域网(简称WAN),是指一种跨地区的数据通讯网络,通常包含一个国家或地区广域网等于是把局域网连接起来成为更大的网络 一个国家应该算是一个广域网,而超过这个范围,将许多国家级的广域网结合在一起,就形成了全球互联的"因特网".因特网是局域网再发展,广域与广域再结合的结果? 广域网当中的协议

挑战年薪20万python web工程师:大型博客系统开发

我们从招聘广告中总结出,Python web工程师须具有以下技能: 扎实的Python编程基础,熟练掌握Python开发: 掌握Python web开发框架Django.Flask; 熟悉MySQL, 熟练运用SQL, 了解常见的sql优化技巧; 熟悉基本的unix/linux命令, 能熟练使用git进行团队协同开发; 熟悉HTML5.CSS3.JavaScript.AJAX等Web前端开发技术: 熟悉jQuery.Bootstrap.Vue.Quasar等前端框架: 如你掌握了以上技能,那么恭

挑战年薪20万Python web工程师

我们最近从招聘广告中发现有很多年薪20万左右Python web工程师的职位,我们总结出这些职位需要掌握下面这些技能: 扎实的Python编程基础; 掌握Python web框架(Django/Flask/web.py)开发经验: 熟悉Linux操作系统,了解docker,能够进行日常服务的测试部署: 熟悉MySQL, 熟练运用SQL, 了解常见的sql优化技巧; HTML.JavaScript.CSS等开发技术. 熟悉基本的Unix/Linux命令, 能熟练使用git进行团队协同开发; 你具有

HCNP学习笔记之BGP协议原理及配置3-路由聚合

BGP协议可以使用命令,将具体路由聚合成一条聚合路由. 路由聚合原则采用最长相同掩码匹配的方法. 路由聚合可以减小路由表的大小 没有路由明细可以减少路由翻动,不会因为单条路由变化引起路由翻动 1 自动聚合(现网中不用,可控性差,只能聚合成主类网络) 配置自动聚合后,生成聚合后的自然网段路由,而原引入的子网路由被抑制,不会被优选和发布给BGP邻居. summary automatic  //用来使能对引入的路由进行自动聚合 undo summary automatic    //命令用来取消对引入

TCP/IP协议,HTTP协议

1. 协议  a. TCP/IP总体构架概述     TCP/IP协议并不全然符合OSI的七层參考模型.传统的开放式系统互连參考模型,是一种通信协议的7层抽象的參考模型,当中每一层运行某一特定任务.该模型的目的是使各种硬件在同样的层次上相互通信.这7层是:物理层.数据链路层.网路层.传输层.话路层.表示层和应用层.而TCP/IP通讯协议採用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完毕自己的需求.这4层分别为:     i.   应用层:应用程序间沟通的层,如超文本传送协议(HTTP

BGP协议学习笔记

BGP(Border Gateway Protocol)边界网关协议,是一种外部路由协议,边界指的是自治系统的边界,用于在自治系统间传播路由信息BGP通过在路由信息中增加AS路径和其他等附带属性信息来构造自治系统的拓扑图从而消除路由环路实施用户配置的策略. 其着眼点是选择最好的路由并控制路由的传播,而不在于发现和计算路由. BGP协议使用面向链接的TCP作为其传输层协议,提高了协议的可靠性,端口号是179. BGP是一种路径矢量路由协议,用于传输自治系统间的路由信息,BGP在启动的时候传播整张路

TCP/IP协议-IP协议

A contented mind is a perpetual feast. "知足长乐" 参考资料:TCP/IP入门经典 (第五版) TCP/IP详解 卷一:协议 一.简介 IP协议(Internet协议,网际协议),是TCP/IP协议族中最核心的协议,位于协议栈的网络层 既然位于网络层,所以IP协议最主要的功能就是 提供独立于硬件的逻辑寻址 和 支持网间数据传递的路由选择,我们将在后面的部分介绍这两个功能,下面先来分析一下IP首部 二.IP首部 我们在 TCP/IP协议-入门 中说

网络七层协议/五层协议

将网络各个层面比喻成一次深情的告白: 应用层: 规定"应用程序"的数据格式. http / ftp /email 等.   //纸条上写的是啥? 传输层: 建立"端口"到"端口"之间的通信. UDP/TCP 协议."端口". //我们帮你传纸条 网络层: 确定每一台计算机的位置,建立"主机"到"主机"之间的通信.IPv4协议,"IP地址".   // 女孩的位置 数据