最新消息:

什么是 BGP?| BGP 路由说明

网管 koic_zhzz 153浏览 0评论

边界网关协议 (BGP) 是互联网的路由协议。就像邮局处理邮件一样,BGP 选择最高效的路线来传递互联网流量。

什么是 BGP?

边界网关协议 (BGP) 就是互联网的邮政服务。当有人把一封信投进邮筒时,邮政服务就会处理这封邮件,并选择一条快速、高效的路线将这封信投递给收件人。同样地,当有人通过互联网提交数据时,BGP 负责寻找数据能传播的所有可用路径,并选择最佳的路由,这通常意味着在自治系统之间跳跃。

BGP 是通过启用数据路由来使互联网正常工作的协议。当一位在新加坡的用户加载一个源服务器位于阿根廷的网站时,BGP 就是使这种通信快速、高效地进行的协议。

什么是自治系统?

互联网是一个由网络组成的网络。它由成千上万个被称为“自治系统”(autonomous system,AS)的更小网络组成。这些网络中的每一个实际上就是由单一组织运行的一个大型路由器池。

什么是 BGP?| BGP 路由说明

如果我们继续将 BGP 比作互联网的邮政服务,那么自治系统就相当于各邮政分局。一个城镇可能有数百个邮箱,但邮箱中的所有邮件都必须先经过本地邮政分局,然后再运送到另一个目的地。自治系统中的内部路由器就好比邮箱。它们将出站流量路由到自治系统,然后使用 BGP 路由将这些流量传输到其目的地。

什么是 BGP?| BGP 路由说明

上图展示了一个简化版的 BGP。在此版本中,互联网上只有 6 个自治系统。如果 AS1 需要向 AS3 路由一个数据包,它有两种不同的选择:

跳到 AS2,然后跳到 AS3:

AS2 → AS3

或跳到 AS6,然后跳到 AS5,然后是 AS4,最后跳到 AS3:

AS6 → AS5 → AS4 → AS3

在这个简化的模型中,决策似乎很简单直接。AS2 路由所需的跃点比 AS6 路由要少,因此它是最快、最高效的路由。现在假设有成百上千个 AS,而且跃点数只是一种复杂的路线选择算法中的一部分。这就是互联网上 BGP 路由的实际情况。

互联网的结构是不断变化的,新系统不断出现,现有系统也会变得不可用。因此,每一个自治系统都必须掌握有关新路由和废弃路由的最新信息。这是通过对等会话完成的,其中,每一个自治系统都会通过 TCP/IP 协议连接到相邻的自治系统,以共享路由信息。通过这些信息,每个自治系统都能够正确地路由出站数据。

在这里,我们上面所做的比喻不再成立。与邮局不同,自治系统并非都属于同一个组织。事实上,它们往往属于互相竞争的公司。因此,BGP 路由有时会将业务因素考虑在内。自治系统往往会互相收取费用来传输通过其网络的流量,相关价格会成为最终选择哪条路由的因素。

谁在运营 BGP 自治系统?

自治系统一般属于互联网服务提供商(ISP)或其他大型组织,例如科技公司、高校、政府机构和科研机构。每个希望交换路由信息的 AS 都必须具有一个注册的自治系统编号(ASN)。互联网号码分配机构(IANA)向地区互联网注册机构(RIR)分配 ASN,后者再将其分配给 ISP 和网络。ASN 是介于 1 到 65534 之间的 16 位数字,以及介于 131072 和 4294967294 之间的 32 位数字。截至 2018 年,全世界使用中的 ASN 共有大约 6.4 万个。只有外部 BGP 才需要 ASN。

外部 BGP 与内部 BGP 有什么区别?

在互联网上,路由交换和流量传输是通过外部 BGP(eBGP)进行的。自治系统也可使用 BGP 的内部版本来路由内部网络上的数据,也就是 iBGP。应该指出的是,使用内部 BGP 并非使用外部 BGP 的前提条件。自治系统可从多种内部协议中选择,来连接内部网络上的路由器。

外部 BGP 就像国际运输。在国际上运送邮件时,需要遵循特定的标准和规则。邮件到达目的地国家后,必须通过目的地国家的本地邮政服务才能达到其最终目的地。每个国家都有自己的内部邮政服务,不必遵循其他国家的相同规则。同样,每个自治系统都可以有自己的内部路由协议,用于路由自身网络内部的数据。

BGP 的缺陷以及解决方法

在 2004 年,一家名为 TTNet 的土耳其 ISP 意外地向相邻的网络发布了错误的 BGP 路由。这些路由声称,TTNet 自己是互联网上所有流量的最佳目的地。随着这些路由不断传播到越来越多的自治系统,发生了一次大规模的中断,导致持续一天的危机,世界各地很多人都无法访问部分或全部互联网。

同样,在 2008 年,一家巴基斯坦 ISP 尝试使用一个 BGP 路由来阻止巴基斯坦用户访问 YouTube。该 IPS 随后意外地将这些路由发给了邻近的自治系统,该路由在互联网上的 BGP 网络中迅速传播开来。这个路由将尝试访问 YouTube 的用户发送到一个无效的目的地,导致 YouTube 数小时内无法访问。

这些是所谓 BGP 劫持的实例,而这种情况并不总是意外发生的。2018 年 4月,攻击者故意创建了一个错误的 BGP 路由,将原定目的地为亚马逊 DNS 服务的流量重定向。通过将这些流量重定向给自己,攻击者成功窃取了价值 10 万美元的加密货币。

这样的事件之所以会发生,是因为 BGP 的路由共享功能依赖于信任,自治系统隐式信任与它们共享的路由。当对等网络(有意或无意地)公告不正确的路由信息时,流量就会到达错误的目的地,有可能产生恶意的结果。

幸运的是,在保护 BGP 方面已经取得了一些进展。最引人注目的是 2008 年推出的资源公钥基础设施(RPKI)的路由安全框架。RPKI 使用被称为路由源授权(Route Origin Authorization, ROA)的加密签名记录,以验证哪个网络运营商允许使用 BGP 来公告某个组织的 IP 地址。这确保了获授权方才能公告某个组织的前缀。

但仅有 RPKI 的存在并不足够。如果大型网络未部署 RPKI,就有可能传播大规模的劫持攻击。目前,超过 50% 的顶级互联网服务提供商在某种程度上支持 RPKI,但需要大多数的支持才能完全保障 BGP 的安全。网络运营商可以通过实施 RPKI 和使用 Cloudflare 路由泄漏检测等网络警报技术来保护其网络。这个功能可以让客户在有未经授权者发布其前缀收到通知,从而预防 BGP 劫持攻击。

Bgp边界网关协议

内容来自网络:

路由协议分为两类:

IGP(Interior Gateway Protocol,内部网关协议),IGP 并不是一个协议,而是一类协议的统称,包括 RIP(Routing Information Protocol,路由信息协议), ISIS(Intermediate system to intermediate system,中间系统到中间系统), OSPF(Open Shortest Path First,开放式最短路径优先) 等等

EGP(Exterior Gateway Protocol,外部网关协议)并不是一个协议,也是一类协议的统称,包括 EGP(这个时候,它是一个协议的名称。这个协议现在已经被淘汰,不再使用)和 BGP(Border Gateway Protocol,边界网关协议)。

EBGP邻居关系:处于不同的AS间的BGP设备建立的邻居关系,通过这种邻居关系学习到的路由条目,其管理距离为20;

IBGP邻居关系:处于同一AS内部的BGP设备建立的邻居关系,通过这种邻居关系学习到的路由条目,其管理距离为200;

对等体(peers):在BGP中因为可以非直连建邻;故邻居也被称为对等体;

IGP和EGP协议的区别

IGP协议在工作时:

  1. 收敛快
  2. 占用资源少
  3. 选路佳

EGP协议在工作时:

  1. 可靠性:控制更新量,仅做增量更新—仅触发、无周期
  2. 可控性:不是简单的依赖度量值,而是大量可被人为修改的属性来进行选路
  3. AS-BY-AS:以一个AS为一跳

BGP特点

无类别路径矢量:距离矢量的升级版,AS-BY—AS,共享路由表

使用单播更新来发送所有信息;基于TCP 179端口工作

触发、增量更新,仅触发,无周期

具有丰富的属性来取代IGP中度量进行选路

可以在进项和出项对流量实施强大的策略

默认不被用于负载均衡,通过各种选路规则仅仅产生一条最佳路径

BGP支持认证和聚合(汇总)

BGP的数据包

BGP所有的数据均基于TCP会话传递,由TCP来进行邻居的发现及所有数据包的ACK;

Open :邻居关系的建立,正常仅收发一次,携带RID,生成方式同OSPF一致;hold time;

Keepalive:保活,周期保活BGP邻居关系,实际保活TCP会话;hello time 60s,hold time 180s;

Update:更新 携带路由条目=目标网络号+属性(各种参数)

Notification:报错 用于故障报错

Refresh:路由刷新,不是所有厂商都有

BGP的工作过程

IP可达:BGP承载于IGP之上

建立TCP会话:基于179端口,目标端口必须为179;

使用open报文建立BGP的邻居关系,生成邻居表

邻居关系建立后使用update共享路由信息,装载BGP表中,本地发出及接收到的所有路由信息

根据选路规则将BGP表中最优路径加载于路由表;

邻居建立后,一直使用keepalive周期保活TCP会话

若出现拓扑结构变化,直接使用update触发更新即可

若出现错误的配置产生故障参数时,将使用notification进行报错

结构突变

新增:最先学习到新增网段的BGP设备,使用update包共享条目即可

断开:最先知道断开网段的BGP设备,使用update包共享信息即可

无法通讯:hold time到时时,断开邻居关系和TCP会话;然后删除所有从该邻居学习到的信息

注:所有的BGP信息均基于TCP会话传输,可靠保障;

BGP的路由黑洞问题

产生条件

BGP路由基于TCP会话单播传递,传递过程中可以正常经过未运行BGP的设备;

BGP由于基于IGP运行,故路由正常均需要递归查询;

BGP仅生成唯一路径,但若递归到IGP上,实际可延多条路径传输;

当BGP协议单播传递路由时,穿越了中未运行BGP的设备时,出现控制层面可达,但数据层面在未运行BGP的设备上不可达,最终导致路由黑洞;

什么是 BGP?| BGP 路由说明-1

解决方案

物理链路全连:所有BGP设备间直连,不能非直连建邻;

邻居关系全连:所有设备运行BGP;

将BGP路由条目重发布到IGP;(只能在实验中完成,现实中由于BGP的路由条目数量远大于IGP,故将BGP发布到IGP的话会导致IGP路由器卡死)

最佳方案:MPLS多协议标签交换;

BGP的破环机制:水平分割

EBGP水平分割:针对EBGP环路

AS-PASH:BGP的一种属性,BGP的路由条目在传递过程中将记录所有经过的AS号,若接收到的路由条目中存在本地的AS号,将拒绝接收该条目;

什么是 BGP?| BGP 路由说明-2

IBGP水平分割:针对IBGP环路

一台设备若从一个IBGP邻居处学习到了路由条目,不得传递给下一个IBGP邻居;

该机制可以限制IBGP环路的出现,但同时也导致全网所有BGP设备间均需要建立邻居关系,配置量极大

路由反射器、联邦可以有条件打破IBGP水平分割

BGP的宣告问题

BGP协议在宣告路由时,将携带本地路由表中到达目标的度量值及下一跳;

度量值:可以让本地EBGP邻居,判定那台EBGP设备离目标最近;

当本地从一台IBGP邻居处学习到的路由,需要传递给本地的EBGP邻居时,度量值清除;

注:为保障路径的优秀,建议所有存在EBGP邻居的BGP路由器均需要本AS的路由;

下一跳:接收到的路由条目中,若下一跳地址为本地,那么条件不优;

该条件必须在打破水平分割、没有修改下一跳为本地时才能有意义;

意义在于迫使管理员让所有存在EBGP邻居的BGP路由器均宣告本地AS路由;

BGP的自动汇总

自动汇总的命令不针对普通的BGP路由;仅针对从IGP重发布到BGP的路由;

什么是 BGP?| BGP 路由说明-3

在BGP协议中的逐条宣告,可以理解为逐条将其他协议产生的路由重发布到BGP协议中;

在BGP协议中进行重发布,可以理解为批量的将其他协议产生的路由宣告到BGP协议中;

携带原有的度量和原有的下一跳地址其规则、目的同上面的宣告问题一致;

总结:无论在BGP协议中是宣告,还是重发布都应该在所有存在EBGP邻居关系的BGP路由器均进行配置;

注:重发布进入BGP的路由和宣告进入BGP的路由其属性中,起源属性不同;

BGP的聚合(汇总)

1. 利用了BGP的宣告特点:

本地路由表中任何形式产生的路由均可宣告
先在本地配置一条到达汇总地址的空接口防环路由,然后再在BGP协议中宣告这种汇总路由

什么是 BGP?| BGP 路由说明-4

为精确的选路,AS间常常在发送了聚合路由条目后,还需要酌情发送部分的明细路由,来保障选路;
在这种聚合配置下,只要需要再逐一的宣告有需求的明细路由即可;

BGP的标准聚合

先逐条宣告明细路由,然后再在更新源上进行聚合配置

什么是 BGP?| BGP 路由说明-5

标准的聚合配置将自动产生空接口防环路由;

精确选路

为精确的选路,AS间常常在发送了聚合路由条目后,还需要酌情发送部分的明细路由,来保障选路;

抑制列表

必须在进行标准聚合配置才能使用
“`
r5(config)#ip prefix-list ss permit 5.5.5.0/24

什么是 BGP?| BGP 路由说明-6

注:这种做法是route-map 中允许的流量反而被抑制;

Route-map

什么是 BGP?| BGP 路由说明-7

分发列表

什么是 BGP?| BGP 路由说明-8

前缀列表直接作为分发列表

什么是 BGP?| BGP 路由说明-9

BGP(边界网关协议)—–概念

什么是 BGP?| BGP 路由说明-1
什么是 BGP?| BGP 路由说明-2

在这里插入图片描述

什么是 BGP?| BGP 路由说明-4
什么是 BGP?| BGP 路由说明-5
什么是 BGP?| BGP 路由说明-6
什么是 BGP?| BGP 路由说明-7

如何区分两个对等体是IBGP关系还是EBGP关系

看两个对等体是不是属于同一个as,即对等体使用的as号是不是同一个;
相同则是IBGP,不同则是EBGP

IGP、EGP、IBGP、EBGP

IGP:

即自治系统内部的路由协议,主要包含RIPv1/v2、OSPF、ISIS、EIGRP(思科私有协议),IGP是运行在AS内部的路由协议,它解决AS内部的选路问题,其主要作用是发现、计算路由。

EGP:

即自治系统之间的路由协议,通常指BGP。EGP是运行在AS与AS之间的路由协议,它解决的是AS之间的选路问题,BGP的主要作用是控制路由的传播和选择最优路由。

IBGP:

同一个AS内部的BGP邻居关系,IBGP邻居通常是指运行BGP协议的对等体两端均在同一个AS域内,属于同一个 BGP AS内部。

EBGP:

AS之间的BGP邻居关系,EBGP邻居通常是指运行BGP协议的对等体两端分别在不同的AS内。

什么是 BGP?| BGP 路由说明-8

IGP与BGP区别

1、​IGP路由器邻居之间必须是直连网络;BGP邻居不一定。

2、IGP邻居自动发现;BGP邻居手动指定。

3、IGP可以实现负载均衡;BGP默认不会。

4、一个BPG网络(联邦或互联网)是由若干个IGP网络组成。

5、IGP路由器身后是一个交换网络,BGP路由器身后是整个企业网,而企业网是由若干个交换网组成

6、IGP网络中认为下一跳(或组成单元)是另一个路由器,BGP网络认为下一跳是下一个自制系统

什么时候不能完全依赖bgp来宣告网段实现网络连通

1、借助bgp能够交换各个网段的ip,实现多个网段互通或者实现本网段的ip被外界访问到

2、云上网络为什么大多数不完全借助bgp宣告,而是用隧道来实现大二层,大三层网络

  • 2-1、使用bgp会对已有的三层网络产生冲击,很多网段已经被规划好了,不是你想用的时候播一下就能用
  • 2-2、隧道能够更大程度上的利用ip资源,因为在他上面构建的扁平网络的ip和其它网络平面的ip可以重复,反正在隧道里,没人知道。隧道构成的扁平网络可以自由规划网段。

转载请注明:落伍老站长 » 什么是 BGP?| BGP 路由说明

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址