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

描述

01 互联网是如何诞生的?

一开始,电脑之间互相访问靠的是网线连接。这样,电脑能收到在网线上传输的所有数据。

TCP

但不是每台电脑都希望收到与自己无关的数据,所以需要“路由器”来将电脑们统一管理和分发,传送数据到指定的地方。

TCP

就像无形之中电脑被分了很多个“组”一样,这些“组”都使用相同的技术协议进行管理,我们将这样的“组”称之为“自治系统(AS)”

自治系统,顾名思义,就是自己管理自己,一般来说就是由机构或者组织来统一管理自己内部的网络。现实当中,常见的自治系统有一所大学,一个企业或者一个公司个体。

为了便于理解,我们把自治系统这个概念放大到“忍者世界”的国家层面。

TCP

比如中兴文档的数据想要从兴之国送去土之国雷之国火之国很明显要经过其它中间国家。

若数据想经过雨之国,那么雨之国可能会想:“凭什么让你的数据从我这里通过,我怎么知道你的数据里是不是藏着爆炸符呢?”

而且在实际中,每个自治系统都可能采用不同的数据传输手段,这样通信肯定会受到阻碍,又怎么会发展为现在的互联网呢?

02 BGP究竟是什么?

为调节这种纷争,IANA这个机构就出现主持公道了!(IANA就是负责分配IP地址的那个源头机构)

TCP

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表示向外。

TCP

可能粉丝们有疑问BGP本来就是边界网关协议啊?不就是一种外部网关协议吗?为什么还要再区分内部和外部呢?

文档君继续举例子,这个问题可以理解为分工合作,EBGP就好比每个国家的外交部,外交部专门和其他国家打交道,获取信息后传送给国内的媒体再公布给社会。

TCP

相对地,IBGP就可以理解为国内大媒体,将外交部获得的消息传递到国内。

TCP

结合上面的例子,继续来说说EBGP和IBGP有哪些区别呢?

EBGP仅处理自治系统之间的数据传输,IBGP仅处理自治系统之中的数据传输,就像外交部和国内媒体分工非常明确。

IBGP从EBGP获得的自治系统路径,是不会进行更新或者修改的,如果要更新也得由EBGP去更新或者修改,IBGP内部不会独自修改。

正如国内媒体在得到外交部发布的国际新闻以后,不能自行编造新闻,必须如实传递,不然会使得国内民众的信息不对称。

EBGP是不需要进行全互联的。比如兴之国要和火之国通信,中间相隔其他国家,如果通过另外架设网络来绕过中间国家,显然是不划算的,也是不现实的。但是如果中间国家也有使用EBGP的话,就可以透过中间国家来传递数据了,这样就不需要进行全互联了。

04 IBGP与IGP有什么区别呢?

这个时候可能又有同学疑惑,有了IBGP,是不是不需要IGP了呢?

当然不是!

IBGP与IGP重点不同,我们在学习IGP时,我们了解它有鼎鼎有名的几员大将,如OSPF、IS-IS、RIP……。IGP的重点在于自治网络中发现和计算路由,而IBGP在于控制整体路由的传播。

TCP

延用上文的例子。

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属性是如何进行路由选择和过滤的呢?

TCP

TCP

优先级属性(origin):

IGP>EGP>INCOMPLETE

源属性是有优先级的喔!IGP优先级最高,EGP次之,Incomplete优先级最低。

TCP

NEXT HOP属性

下一跳属性定义了到达目的地下一跳的设备IP地址,是告诉别人去往目的地的下一个“坐标”。比如:当我们跳格子的时候,首先要看到下一个格子的位置。对于路由器来说,要首先确认下一个格子(设备)的IP地址,才可以发送数据到这个设备。

具体还可以分为以下情况:

TCP

COMMUNITY属性

团体属性根据某些特征对路由信息进行分类,与AS无关。常被用来简化路由策略的应用和降低维护管理的难度。

TCP

有了这些属性以后,我们就可以使用算法配合这些属性,算出最佳的路径。

当然BGP并不是一个自动配置的协议,而是需要手动配置的啊!

06 BGP有哪些新发展?

接下来我们就把话筒递给BGP,让他来介绍一下BGP有哪些新发展?

TCP

信息搜集有途径——BGP Link State

TCP

经过认真的深造学习,BGP不仅扩展上文提到的属性,还定义了新的link-state NLRI,一致通过了地址族信息AFI/SAFI为163888/71的封装标准,实现了网络拓扑收集的一种新方式——BGP-LS!使得拓扑的收集更为高效!

大型组网有对策——Segment Routing

TCP

网络安全有保障——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不能满足建立超大型数据中心的需要。

TCP








审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分