BGP、EBGP、IBGP、IGP还没搞清楚?

01 互联网是如何诞生的?
一开始,电脑之间互相访问靠的是网线连接。这样,电脑能收到在网线上传输的所有数据。
但不是每台电脑都希望收到与自己无关的数据,所以需要“路由器”来将电脑们统一管理和分发,传送数据到指定的地方。
就像无形之中电脑被分了很多个“组”一样,这些“组”都使用相同的技术协议进行管理,我们将这样的“组”称之为“自治系统(as)”。
自治系统,顾名思义,就是自己管理自己,一般来说就是由机构或者组织来统一管理自己内部的网络。现实当中,常见的自治系统有一所大学,一个企业或者一个公司个体。
为了便于理解,我们把自治系统这个概念放大到“忍者世界”的国家层面。
比如中兴文档的数据想要从兴之国送去土之国、雷之国、火之国。很明显要经过其它中间国家。
若数据想经过雨之国,那么雨之国可能会想:“凭什么让你的数据从我这里通过,我怎么知道你的数据里是不是藏着爆炸符呢?”
而且在实际中,每个自治系统都可能采用不同的数据传输手段,这样通信肯定会受到阻碍,又怎么会发展为现在的互联网呢?
02 bgp究竟是什么?
为调节这种纷争,iana这个机构就出现主持公道了!(iana就是负责分配ip地址的那个源头机构)
iana给每个国家(自治系统)都分配不重复的编号,这些编号可以理解为大家都遵守的和平协议的标识,而这个和平协议,就是bgp(border gateway protocol,边界网关协议)。
如果每一个国家(自治系统)都使用bgp这个规则来进行数据的传输,那么路由器也再不需要把全世界的设备都记下来,只需要把国家(自治系统)的编号记录下来就可以啦!
那数据是如何在不同自治系统的路由器之间进行传输的呢?
那就要说到bgp的两个分类了:ibgp(interior border gateway protocol,内部边界网关协议)和ebgp(external border gateway protocol,外部边界网关协议),那么他们分别是什么呢?文档君慢慢跟你道来~
03 ibgp和ebgp有什么区别?
ibgp(internal bgp)和ebgp(external bgp)从字面意思来看internal表示向内,external表示向外。
可能粉丝们有疑问bgp本来就是边界网关协议啊?不就是一种外部网关协议吗?为什么还要再区分内部和外部呢?
文档君继续举例子,这个问题可以理解为分工合作,ebgp就好比每个国家的外交部,外交部专门和其他国家打交道,获取信息后传送给国内的媒体再公布给社会。
相对地,ibgp就可以理解为国内大媒体,将外交部获得的消息传递到国内。
结合上面的例子,继续来说说ebgp和ibgp有哪些区别呢?
ebgp仅处理自治系统之间的数据传输,ibgp仅处理自治系统之中的数据传输,就像外交部和国内媒体分工非常明确。
ibgp从ebgp获得的自治系统路径,是不会进行更新或者修改的,如果要更新也得由ebgp去更新或者修改,ibgp内部不会独自修改。
正如国内媒体在得到外交部发布的国际新闻以后,不能自行编造新闻,必须如实传递,不然会使得国内民众的信息不对称。
ebgp是不需要进行全互联的。比如兴之国要和火之国通信,中间相隔其他国家,如果通过另外架设网络来绕过中间国家,显然是不划算的,也是不现实的。但是如果中间国家也有使用ebgp的话,就可以透过中间国家来传递数据了,这样就不需要进行全互联了。
04 ibgp与igp有什么区别呢?
这个时候可能又有同学疑惑,有了ibgp,是不是不需要igp了呢?
当然不是!
ibgp与igp重点不同,我们在学习igp时,我们了解它有鼎鼎有名的几员大将,如ospf、is-is、rip……。igp的重点在于自治网络中发现和计算路由,而ibgp在于控制整体路由的传播。
延用上文的例子。
ibgp负责国际新闻在国内的整体流通,就好比国内非常有话语权的大媒体,但是具体如何传递给民众并不负责。
而igp就负责消息在国内各个小媒体上的传播,并尽力于如何让这些消息传播的更快更准确,所以ibgp和igp缺一不可。
读到这里,大家已经可以分清了bgp家族中的ebgp,ibgp,igp了吧!那我们再详细说说bgp是如何工作的?
05 bgp是如何工作的?
这两个bgp建立会话的时候会有四种基本报文类型。
建立连接——open报文:open报文是tcp建立连接后发送的第一个报文,用来与其他设备或自治系统建立连接。
交换信息——update报文:update报文用于在设备或自治系统之间交换路由信息。
检测状态——notifiaction报文:当bgp检测到错误状态时,就向对等体发出notifiaction报文,之后bgp连接会自动中断。
保持连接——keepalive报文:bgp会周期性地向设备或自治系统发出keepalive消息,用来保持连接的有效性。
为方便执行会话,bgp将交互过程分为以下六种状态:
idle(空闲):为初始状态,复位tcp连接的重连计时器(通常为60 s),准备发起tcp连接。路由器查找路由表,是否有到达邻居的路由。
connect(连接):bgp发送第一个tcp连接,若收不到邻居发来的tcp应答报文,收不到应答的时间超过重连计时器规定的时间,就会重新发起tcp连接,并继续保持在connect状态。
如果tcp连接成功,就转到open sent状态。
如果tcp连接失败,就转为active状态。
active(行动):当可以发送tcp连接,也可以收到邻居的应答报文,但是依然无法建立起tcp三次握手,就会进入到此状态(tcp三次握手参见往期推文三次握手,四次挥手,原来tcp这么有礼貌!)。在此状态,bgp总是试图建立tcp连接。
如果tcp连接建立成功,就转到open sent状态。
如果tcp连接建立失败,不停重新发起tcp连接,就退回到connect状态,并在计时器结束后,转回active状态。
open sent(open发送):tcp连接成功,发送第一个open报文,并等待接收邻居的open报文。
open confirm(open证实):表示收到邻居的open报文,等待keepalive报文或者notifiaction报文,如果没有收到又会进入active状态。
established(已建立):最后bgp会话连接的时候就是established状态了。之后可以通过keepalive报文进行邻居保活。
其实说了这么多,bgp这个协议的核心也是让数据在跨域传输的时候选择最优的路径,要选择最优的路径,就必须考虑非常多的属性、时间等因素。
这里提及bgp最重要的6个属性:
本地偏好(local perference)——越大越优
这个属性会发送给自治系统里所有的ibgp路由器,也就是这个属性在自治系统里使用,并且提供离开自治系统的最优路径,这个属性值同样是越大路径越优。
举个例子,选择市内交通工具的场景就类似于比较本地优先级~
med——越小越优
说的属性就是med( multiple exit discriminator ,多出口鉴别器),如果你的相邻自治系统有两个或者多个bgp,路由和你的自治系统相连,这个时候med属性就可以定义哪条路径更优,使用med属性值来标识这些属性值越低,表示为更优的路径。
med属性特点如下:
用于向外部对等体指出进入as的首选路径。
仅在相邻两个as之间传递。
与local perference分别指引进、出as的路径。
同理,选择市间交通工具的场景就类似于比较med属性~
自治系统路径(as path)——越少越优
as path就是路由经过的所有as的集合喔!
当前我们需要跨越as进行通信的时候,将本地as号添加到列表的最前面就可以啦!
as path属性可以避免形成路由环路,还可以用于路由的选择和过滤。那么as path属性是如何进行路由选择和过滤的呢?
优先级属性(origin):
igp>egp>incomplete
源属性是有优先级的喔!igp优先级最高,egp次之,incomplete优先级最低。
next hop属性
下一跳属性定义了到达目的地下一跳的设备ip地址,是告诉别人去往目的地的下一个“坐标”。比如:当我们跳格子的时候,首先要看到下一个格子的位置。对于路由器来说,要首先确认下一个格子(设备)的ip地址,才可以发送数据到这个设备。
具体还可以分为以下情况:
community属性
团体属性根据某些特征对路由信息进行分类,与as无关。常被用来简化路由策略的应用和降低维护管理的难度。
有了这些属性以后,我们就可以使用算法配合这些属性,算出最佳的路径。
当然bgp并不是一个自动配置的协议,而是需要手动配置的啊!
06 bgp有哪些新发展?
接下来我们就把话筒递给bgp,让他来介绍一下bgp有哪些新发展?
信息搜集有途径——bgp link state
经过认真的深造学习,bgp不仅扩展上文提到的属性,还定义了新的link-state nlri,一致通过了地址族信息afi/safi为163888/71的封装标准,实现了网络拓扑收集的一种新方式——bgp-ls!使得拓扑的收集更为高效!
大型组网有对策——segment routing
网络安全有保障——bgp flow specification
dos(denial of service)/ddos(distributed denail of service)攻击对网络安全是一个重大威胁,它就像堵车一样会导致网络拥塞或者服务器cpu占用过高而无法为用户提供服务。而传统的流分类、重定向技术都有一定的缺陷。
bgp为了解决传统预防方法的缺陷,通过nlri(network layer reachability information,网络层可达信息)属性携带流量匹配信息,afi/safi为1/133,扩展了团体属性来携带数据流处理动作,比如对流量进行限速、引流、丢弃等。
极简演进有方向——evpn
互联网业务高速发展,数据中心内服务器数量的大量增加,虚拟机的产生使得二层域内mac数量剧增,传统二层以太网vpn技术vpls不能满足建立超大型数据中心的需要。


MIUI9最新消息,雷军:听说你更新我MIUI9哟,那我们来升级MIUI8吧!
温度补偿和校准的紧凑型高精度温度传感器解决方案
MIMXRT1060 EVK JTAG接口修改方法
大众和福特插手LG和SKI电池纠纷案,SKI或将扭转局势
千锤百炼 增强型灵云语音识别让车载语音交互更流畅
BGP、EBGP、IBGP、IGP还没搞清楚?
多媒体信息发布系统的传输设备种类及介绍
食用农产品合格证智能机的应用及性能
社交机器人越来越受到消费者的青睐 智能化程度越来越高
变频器故障代码大全
为VM模块和电子标签读写模块开发的测试、开发套件
线路板外形加工方法
无线测温系统在棉花加工厂中的应用
继电器的工作原理和作用
阐述硅钢片两种参数设置的区别
4029芯片引脚图及功能
各种SiC功率器件的研究和开发进入迅速发展时期
经验分享:PCB板寻找故障调试的常用三种方法
化合物半导体愈发重要,产能满载让国内厂商迎来商机
2017 IBM Forum 科技赋能,协助人类超越极限