持续创作,加快生长!这是我参加「日新方案 6 月更文挑战」的第19天,点击查看活动详情
你好,这儿是网络技能联盟站。
在之前的文章中,咱们介绍了网络基础知识,之前根本上现已将路由协议讲完,每篇文章能够说是呕心创作,也得到了我们的支撑,现在还剩最终一个动态路由协议:BGP。
今日铁定要组织一下的。之前的文章中试验触及的比较少,就算有也仅仅demo,在IS-IS的文章留言中,就有小伙伴提出要放一下试验,那么这儿统一做个解说:不是不能放,本身这次连载文章的主题便是介绍理论,理论方面十分晦涩难明,我用许多易于了解的比如和生活中的术语去解说,既然是理论的,那么我们经过一篇文章能够将每个技能点的理论把握好,我的意图就到达了。假如一篇文章中既有大篇幅的理论、又有大篇幅的试验,首要篇幅就很长很长,绝大部分人是看不究竟的,有个成语叫做”望而却步“,而且不利于我们去回忆。所以在结束最终一篇BGP文章后,接下来的连载便是试验装备了,届时每个技能点试验都会介绍三家厂商:华为、思科、瞻博网络。
H3C的指令和华为99%类似,锐捷的指令和思科的也是99%类似,没必要冗余讲解。
那么仍是回到今日的BGP主题,啥话也不说了,直接开端!
什么是BGP?
- 英文全称:
Border Gateway Protocol
- 中文意思:边界网关协议
- 是一种外部网关协议EGP
- 是一种途径矢量协议
- 依据TCP/IP,在OSI传输层(第 4 层)上运转以控制网络层(第 3 层)
BGP的前史
BGP 在 Internet 前史中发挥的关键作用,1989 年,互联网的技能才渐渐鼓起,可是此时互联网的商业行为还不被答应,直到1995年NSFNET退役,才渐渐铺开口儿。
NSFNET,英文全称:
National Science Foundation Network
,即国家科学基金会网络,这个是由美国的一个基金会树立的方案。
以前的互联网是只给政府组织和大学运用的,普通民众想都不敢想,自从NSF 取消了访问限制,商业版的运营商网络才逐步走入普通老百姓的家里。
BGP 是在 1989 年 6 月首次被标准化,在这之前,所谓的 Internet 网关是经过外部网关协议 (EGP)交流网络的,EGP 是为由中心 AS 和直接衔接到该中心的多个其他较小 AS 组成的,完全依赖于 AS 的树形结构拓扑,没有循环。
在早期阶段,根网络的网关是经过ARPANET 主干相互通讯,但随着商业实体和多个主干(例如 NSFNET)的呈现,其不足之处变得越来越明显。
BGP的呈现,处理了早期EGP的缺点,而且支撑路由战略,是的BGP的位置越来越高,咱们来看下BGP的生长道路:
这是网站https://bgp.potaroo.net/
对BGP增速的计算,能够很直观的看出其发展是指数级的,十分之快!
BGP的特点
- BGP 支撑下一跳特性
- BGP支撑战略
- BGP 支撑 CIDR
- BGP 支撑安全性
- BGP 节约网络带宽
有人喜欢把BGP比作是现实生活中的邮政服务,可是在我看来,BGP便是地图:
谈到BGP,首要想到的是BGP被分成各种自治体系AS,那么咱们联想到地图便是各个国家,每个国家都有自己的实体网络,其内部便是一个大型的ISP,从一个国家到另外一个国家,点对点铺路或者建跨海大桥不太现实,不考虑坐飞机,咱们从我国的北京到俄罗斯的莫斯科,BGP会告知你得先经过蒙古国才能进入莫斯科:
因为地图也会变化,所以相应的线路也会变化,所以各个自治体系(我国、蒙古国、俄罗斯)会去共享它们的地图,来到达路由更新。
BGP路由就跟GPS相同,有时分因为某些原因不准确,会带错路,这个时分轻则归航,重则就会车毁人亡,这个在BGP中也是相同的,BGP或许会将流量引导到不应该去的当地,然后导致问题的呈现。
BGP 的工作原理
自治体系
自治体系便是BGP中的AS,英文全称:autonomous system
。
自治体系的概念源于互联网的根本定义,即互连计算机网络的全球体系。Internet 上的自治体系 (AS)是运用相同路由战略的网络或一组网络,一般由同一Internet 服务供给商 (ISP) 供给服务。
刚刚咱们也提到了,将BGP比作是地图,那么每个国家都能够看做是一个AS:
如图所示,自治体系中的每一个都被分配了一个 ASN(自治体系编号),这答应 BGP 单独辨认每个体系,能够仅有标识一个体系。
互联网号码分配组织(IANA)在全球范围内办理和分配 ASN,当网络办理员想要创立一个新的 AS 时,他们必须向其相关的区域互联网注册组织(RIR) 请求。
ASN 经过协助辨认数据抵达意图地的最短 BGP 路由,使路由协议更加高效。
外部BGP和内部BGP
一句话解说:外部BGP相当于国与国,内部BGP相当于某个国际的省与省,或者市与市,这个依据自己的状况来。
- BGP 会话产生在不同 AS 的两个 BGP 街坊之间,则称为外部 BGP,简称eBGP
- BGP 会话产生在同一 AS(内部网络)内的两个相邻设备时,则称为内部 BGP,简称iBGP
对等互联
已树立衔接以交流 BGP 信息的两个路由器称为BGP 对等体。
这个就跟地图的邻国相同,接壤的国家都是邻国,两国能够达成许多协作协议。
对等互联的优点
- 安全性:尽管对等互连并不能阻止一切类型的网络进犯,但能够必定程度上降低依据数据嗅探进犯的风险。
- 功能:因为对等是直接衔接,所以延迟和带宽是可控的,功能一般比其他衔接方式好。
- 可靠性:对等网络不会被诸如针对 ISP 基础设施的 DDoS 进犯等问题所破坏。
- 节约本钱:尽管对等互连或许需要很多出资来实施,但能够削减持续的运营费用,这个关于后期的盈利是十分有协助的。
BGP路由挑选
咱们直接上图:
如图有四个AS,分别是AS 101、AS 102、AS 103、AS 104,其间:
- AS 101与AS 102树立了BGP对等体
- AS 102与AS 103树立了BGP对等体
- AS 101与AS 103树立了BGP对等体
- AS 103与AS 104树立了BGP对等体
BGP 答应每个对等点从其相邻对等点收集路由信息,然后进一步完整地布告该信息。
因而,AS 101 中的 ASBR 知道它如何将数据包路由到 AS 104,即便它们没有直接衔接。
BGP 是一种途径矢量路由协议,因为 ASBR 中的路由表包含网络前缀到组成途径的自治体系列表的映射。
假设坐落我国的设备想要衔接到坐落俄罗斯的设备,我国端的设备订阅了网络自治号为101的 ISP 的服务,俄罗斯端的设备订阅了网络自治号为 104 的 ISP 的服务。
在衔接俄罗斯端的设备时,我国端的设备发送带有源的数据包IP 是它自己IP 地址,方针 IP 是俄罗斯端设备的 IP 地址,数据包首要抵达 AS 101 的网关,那里的路由器判断数据包的意图地不在它自己的网络中,然后它经过 AS 101 的内部路由器路由此数据包。
自治体系内部的路由进程是运用内部网关路由协议,比如OSPF、RIP、IS-IS等协议来完结的,与 BGP 不同,内部网关路由协议不能在外部运用。
所以从我国端设备到俄罗斯端设备有两条途径:
- 线路一:我国 -> AS 101 -> AS 102 -> AS 104 -> 俄罗斯
- 线路二:我国 -> AS 101 -> AS 103 -> AS 104 -> 俄罗斯
当BGP路由中,当有多条途径时,BGP会进行最优途径挑选,会从负载、延迟、可靠性、本钱等因素去判定,下面咱们来谈一下BGP的选路准则。
BGP 选路准则⭐
先给出定论,一共有13条选路准则!十分重要,牢记❗❗❗
1、权重
优先挑选权重最高的道路,权重是 Cisco 专有特点,仅对本地路由器有用,本地 BGP 路由的默许权重为 32768,从其他对等方(内部或外部)学习的 BGP 路由的默许权重为零。
在华为设备中,权重一般是Preferred-Value,这是华为的专有特点,值越大越优。
2、本地优先级
当权重相同的时分,本地优先级越大的越优,本地是针对在一个AS内的。
3、本地始发
当本地优先级相同的时分,则首选由本地路由建议的路由,本地建议的路由在 BGP 表中的下一跳为 0.0.0.0
。
4、AS-Path
假如没有任何路由时本地建议的时分,这个时分有限挑选AS途径最短的。
5、Origin
Origin 标识路由的来历,一般有三个:
- IGP:标明路由源自内部网关协议,如 RIP 或 OSPF,“i”是最优选的。
- EGP:标明该路由源自外部网关协议,EGP 是一种已不再运用的过时路由协议。
- Incomplete:假如 BGP 表显现不完整或不知道来历,“?”是最不受欢迎的。
因而优先级便是i>e>?
6、MED
首选MED 最低的途径,MED 在自治体系之间交流。
MED英文全称:MultiExit Discriminator
,中文意思便是多出口鉴别。
经过MED能够告诉其他AS应该采纳怎样的途径进入方针AS。
7、 eBGP 优于 iBGP
这个是由途径协议决定的,没啥好说。
8、优先考虑 NEXT_HOP 的最低 IGP 度量
这个也很好了解,没啥解说的。
9、集群列表
优先挑选最短的 cluster-list,仅适用于路由反射器客户端。
10、路由器ID
首选具有最低 BGP 街坊路由器 ID的途径,路由器 ID 依据最高 IP 地址,假如有环回接口,则将运用环回上的 IP 地址,路由器 ID 也能够手动装备。
11、对等体IP地址
假如经过以上10种规矩也没有选出最佳途径,那么能够用最终大招:对等体ip地址最小的最优。
⭐ 重要的工作再说一遍,BGP选路准则必定要牢记,很重要,特别关于考证的童鞋,这块技能点都是变了法的考!
BGP 街坊状况 ⭐
这一末节也十分重要!
在传输任何路由信息之前,BGP 会与其他路由器树立街坊邻接联系,类似于 OSPF和 EIGRP,BGP 不运用广播或多播进行 BGP 街坊发现,街坊是手动装备的,并经过 TCP/179 进行通讯。
直接上图:
首要咱们要给出定论:BGP街坊状况一共有6种,分别是:
- Idle
- Connect
- Active
- OpenSent
- OpenConfirm
- Established
下面,咱们来具体阐明:
1、Idle 闲暇状况
在 BGP 闲暇状况下,路由器在路由表中查找街坊 IP 地址的有用路由。
假如它没有针对其街坊 IP 地址的路由,则它保持在闲暇状况,在这种状况下没有分配或分配很少的 BGP 资源。
还有一种状况也会让BGP 状况保持在闲暇状况,那便是封闭衔接到街坊的物理接口或封闭 BGP 邻接联系进入 BGP 进程时。
2、Connect 衔接状况
在衔接状况下,BGP 等候三次 TCP 握手完结。
假如成功,衔接重置计时器将由已树立的 BGP 会话进程重置,并向街坊发送一个 OPEN 音讯,并将进入 OpenSent 状况。
假如失利,状况将继续到 Active 状况。假如衔接重置计时器归零而且 Connect 阶段尚未完结,则衔接重置计时器将被重置而且 BGP 将尝试新的三次 TCP 握手。
3、Active 激活状况
在Active 激活状况下,建议 TCP 衔接,树立BGP 对等体联系。
假如成功,BGP 将其 OPEN 音讯发送给对等方并进入 OpenSent 状况。
假如失利或许会导致进入活动或闲暇状况。
4、OpenSent 翻开发送状况
在向街坊发送 OPEN 音讯后,BGP 也会等候来自 BGP 街坊的 OPEN 音讯,检查和比较 OPEN 音讯是否存在过错。
假如发现过错,BGP 将运用告诉音讯进行响应并跳回闲暇状况。
假如收到成功的回复,BGP 状况将变为 OpenConfirm,并向对等方发送 keepalive。
5、OpenConfirm 翻开确认状况
BGP 在 OpenConfirm 状况下等候来自对等体的 keepalive 音讯。
假如成功,则状况变为已树立。
假如失利或者保持计时器耗尽,状况会依据过错返回闲暇状况。
6、Established 已树立状况
在Established状况,路由器之间成功树立BGP 对等会话,并在此阶段开端发布更新音讯、保活音讯(默许每 60 秒)或告诉音讯的交流。
依据从每个 BGP 对等体接纳到的更新音讯,构成一个 BGP 表,并将该表中的最佳路由发送到路由表。
假如任何更新音讯包含过错,BGP 对等体将发送 NOTIFICATION 音讯并进入闲暇状况。
BGP 音讯
BGP 运用各种音讯来树立衔接、交流路由信息、检查远程 BGP 街坊是否仍然存在和产生任何过错告诉远端。
一般有四种BGP音讯:
每种音讯类型都有一个 BGP 标头:
分别是:
- marker
- length
- type
比较重要的是length和type,length表示音讯的长度,type表示音讯的类型:
- 1:BGP Open音讯
- 2:更新音讯
- 3:告诉音讯
- 4:Keepalive音讯
BGP open音讯
BGP open音讯用于树立 BGP 邻接联系,双方在树立 BGP 对等互连之前协商会话才能。
BGP update音讯
BGP update音讯用于在 BGP 对等体之间传递路由信息,update音讯用于布告共享公共途径特点的可行路由,或从服务中吊销不可行路由,两者都能够在单个 update音讯中完结。
BGP Keepalive 保活音讯
为了确保即便长期不需要发送更新,定时器也不会过期,每个对等体都会定时发送 BGP Keepalive音讯,用于确保 BGP 街坊仍在运转。
BGP Notification 告诉音讯
当检测到过错状况时发送 BGP Notification 音讯,BGP 衔接在发送后当即封闭。
BGP 会话树立进程
如图,有两台路由器:
- Router A
- Router B
左边是状况,中心的时间序列是音讯,整体进程总的来说能够分成四步:
- 树立 TCP 衔接
- 交流 BGP Open 音讯。
- 开端定时交流 Keepalive 音讯。
- 与 BGP 更新音讯交流路由信息。
图中标红的进程便是TCP三次握手,握手成功便是树立完TCP衔接了。
BGP定时器
在BGP状况中咱们提到了BGP定时器,那么BGP中一共有哪些定时器呢?
首要,咱们给出定论,BGP有以下定时器:
保活定时器
也叫心跳定时器,定时向远程街坊发送 BGP 心跳数据包,检查可达性和可用性,默许为30秒。
存活定时器
默许为90秒,即 Keep-Alive 时间的3倍。
假如 BGP 在存活时间内没有收到来自另一方的任何保活或更新音讯,那么它将宣告另一方“死亡”并终止 BGP 会话。
布告距离
布告距离用于确定在布告的路由与从 BGP 对等体删除之间必须经过多长期。
- eBGP默许值为 30 秒
- iBGP默许值为 5 秒
BGP 集体特点
BGP 集体是一个可选的、可传递的 BGP 特点,它被辨认并传递给其他 BGP 对等体。
每个标准集体都是一个 32 位的值,它们一般被分成两个 16 位值,前 16 位编码源自集体的 AS 编号,后 16 位表示由 AS 分配的仅有编号,因为每个 AS 编号都是仅有的,所以每个集体在 Internet 上也是仅有的。
BGP中一共有四种知名的集体,分别是:
1、No-Export
路由器不会将路由布告给外部对等体,仅向内部对等体布告。
如图显现了AS 1中的 R11、R12、R13向外部区域的AS2对等体R21布告No-Export路由。
2、No-Advertise
BGP 发言者不会将该路由布告给任何对等体,包含内部和外部。
如图显现了AS 1中的 R11向对等体R12、R13、R21发布了No-Advertise路由。
3、Internet
BGP 发言者将这些路由布告给一切街坊。
如图显现了AS 1中的 R11向对等体R12、R13、R21发布了Internet路由。
4、Local-AS
可用于BGP 联盟,它与No-Export根本相同,但它适用于联盟的子自治体系,被标记为Local-AS的路由仅被布告给同一子自治体系中的其他街坊,而不是布告给其他子自治体系或 eBGP 路由器。
如图所示,从AS3发出的Local-AS布告给AS1时,只能在AS1的子在自治体系AS 102中传达,不能布告给其他子自治体系AS101和eBGP 路由器 AS2.
BGP路由聚合
为了削减BGP路由表中的路由信息量,能够运用路由聚合。
Cisco 一般供给 3 种类型的 BGP 汇总:
-
聚合地址:指令
aggregate-address
能够完结。 - 手动聚合:经过空路由将汇总网络增加到 RIB,然后运用network指令宣告进BGP网络。
- 主动汇总:Cisco 默许禁用主动汇总,能够敞开进行主动汇总。
举个比如:
如图,AS10 有网络172.16.0.0/22,AS20有网络172.16.4.0/22,经过AS30的R3将此两条路由布告进AS40的R4,现在为了节约AS40的R4的路由表,决定在R3上进行路由聚合:
1、聚合地址
经过聚合指令aggregate-address
进行聚合:
2、手动聚合
手动汇总的工作原理是简略地为汇总网络增加一个静态空路由(null),这样能够存在于路由表种,然后能够经过network指令将此聚合路由增加到 BGP种。
当流量进入路由器时,路由器会挑选更精确的路由,确保不命中空路由。
3、主动汇总
Cisco 默许禁用主动汇总,咱们只需要一条指令即可敞开主动汇总:
BGP 过滤
路由过滤能够扫除从街坊发布或接纳的路由,然后到达操作流量、降低内存利用率并提高安全性的效果。
BGP 过滤一般有三种方法:
1、前缀列表
前缀列表匹配的是路由而不是流量,一般与路由映射和其他过滤方法(一般结合ACL)一起运用,前缀列表能够匹配前缀(网络本身)和前缀长度(子网掩码的长度)。
2、AS途径
AS是只有BGP才有的概念,能够设置成只运转某个AS经过或者拒绝某个AS的路由:
如图,在R21上能够拒绝来自AS1的路由。
3、路由战略 ⭐
路由战略最为丰厚,既支撑前缀列表过滤,又支撑AS途径过滤,还支撑很多高级特性的过滤,比如集体等。
这块不展开,内容太多,有兴趣能够自行研究一下,也能够装备的时分,依照厂商去查询相关手册,记住有出站战略和入站战略。
总结
BGP在数通这块仍是比较难的,本文差不多写了5000多字,可是也仅仅粗略的概括了BGP的技能点,适合我们收藏去入门了解和归纳,关于具体的介绍,还希望我们去好好读读思科的书,彻底了解BGP这个协议,读英文版有困难的童鞋能够去看看华为的文档,或者H3C的文档,看起来稍微轻松点,不过仍是建议读思科的书。
好了,一切的路由部分的理论部分现已完毕,接下来便是介绍各大厂商的装备指令,我们也能够追更哦。
下期再见!