1、当代通信互换技术课程设计 设计题目:BGP合同 姓 名: 学 号: 班 级: 指引教师: 201 年 月 目录 1 BGP概述 1 1.1 BGP合同定义 1 1.2 BGP合同发展经历 1 1.3 BGP合同基本思想 1 1.4 BGP合同特性 1 2 BGP合同详解 2 2.1 BGP合同消息类型 2 2.2 BGP报文种类 2 2.3 自治系统 5 2.5 BGP路由属性 6 2.5.1 BGP路由属性分类 6 2.5.2常用路由属性 7 2.
2、5.3 BGP路由传递 11 2.5.4 BGP如何依照属性完毕决策 11 2.6 BGP过滤功能 12 3 BGP应用 12 3.1 BGP使用原则 12 3.2 BGP合同中消息应用 13 3.3 BGP同步 13 3.4 成为BGP路由途径 14 参照文献 17 附录 缩略语 18 1 BGP概述 1.1 BGP合同定义 BGP(Border Gateway Protocol)是一种自治系统间动态路由合同,它基本功能是在自治系统间自动互换无环路路由信息,通过互换带有自治系统号序列属性途径可达信息,来构造自治区域拓扑图,从而消除路由环路并
3、实行顾客配备路由方略。 1.2 BGP合同发展经历 BGP合同从1989年以来就已经开始使用。它最早发布三个版本分别是RFC1105(BGP-1)、RFC1163(BGP-2)和RFC1267(BGP-3),当前使用是RFC1771(BGP- 4)。随着INTERNET飞速发展,路由表体积也迅速增长,自治区域间路由信息互换量越来越大,影响了网络性能。BGP支持无类别域间选路CIDR(Classless Inter-domain Routing),可以有效减少日益增大路由表。BGP-4正迅速成为事实上Internet边界路由合同原则。 1.3 BGP合同基本思想 不采用RIP、OSPF因
4、素:(1)RIP记录只有下一跳,没有真正定义到目地完整途径,RIP跳数上限只有16,不适合较大规模网络(2)OSPFLSDB随网络规模增长成几何数增长。 BGP提出是面向AS之间路由选取。BGP是基于途径向量路由思想,但从设计上避免了环路产生。BGP要给出到目地完整途径,不关怀跳数、费用量度,而是关怀所要通过自治系统。 1.4 BGP合同特性 (1)BGP使用TCP作为其传播合同,端标语--179 (2)BGP对拓扑构造没有限制 (3)路由更新只发送增量路由,减少占用带宽 (4)采用路由方略,对AS入口出口路由进行控制 (4)支持CIDR,便于扩展 2 BGP合同详解
5、 2.1 BGP合同消息类型 RFC1771中规定了四种BGP消息类型:打开消息(open)、更新消息(update)、告知消息(notification)、保持激活消息(keep-alive)。如下进行分述: (1) 打开消息(open)——用于打开与相邻路由器TCP链接,创立邻居关系。打开消息紧跟在固定大小BGP之后。 (2) 更新消息(update)——用于在BGP对等体间传送路由选取信息。更新数据包中信息可以构建一种描述不同自治系统间关系图。更新消息可以用于向对等体告示单个有效路由,或者使各种失效路由停止服务。更新消息还可以同步告示有效路由和使各种失效路由停止服务。更新消息涉及
6、固定大小包头以及某些特殊可选字段。 (3) 告知消息——当网络检测到出错时就会发送一种告知消息。BGP连接也就会在发送完告知消息后及时关闭。 (4) Keep-alive消息——BGP不使用基于传播合同保持激活机制来确认对等体与否可达。事实上,对等路由器通过足够快频率互换保持激活消息以使保持定期器不溢出。保持激活消息发送间隔时间比较合理最大值是保持时间间隙三分之一。要按照保持时间间隙函数值来调节保持激活消息发送频率。如果保持时间协商成果为0,则不必周期性发送保持激活消息。保持激活消息只有消息头,它长度只有19Byte。 2.2 BGP报文种类 (1)报文头 图1 报文头格式 l
7、 Type(类型)——1Byte,批示报文类型,如OPEN、UPDATE报文等 。 l Marker(标记)——16Byte,包括消息接受者可以预测值。标记可以用来探测BGP对端同步丢失,认证进入BGP报文。 l Length(长度)——2Byte,无符号整数,指定了消息全长,涉及头部字节。 (2)Open报文 图2 Open报文格式 l Version——发端BGP版本号 l My Autonomous System——本地AS号 l Hold Time——发送方提供建议保持定期器设定秒数保持定期器规定了BGP邻居以为发送方信息有效时间长度。如果BGP对等体之前OPEN报
8、文中Hold Time时间不一致,选取较小Hold Time。 l BGP Identifier——发端路由器标记符。该值是在BGP对等体之间进行握手操作过程中拟定,并且在每个本地接口及每个BGP对等体之间是保持不变。 l Optional parmeters Len——可选参数长度 l Optional Parameters——可选参数 (3)Keep-alive报文 图3Keep-alive报文格式 l Keep-alive报文——重要用于对等体路由器间运营状态以及链路可用性确认。报文构成只涉及一种BGP数据报头。Keep-alive 消息在对等路由器间互换频度以保证对方保
9、持定期器不超时为限。 l 当一台路由器与其邻居建立BGP连接之后,将以Keep-alive interval设定期间间隔周期性地向对等体发送Keep-alive 报文,表白该连接与否还可保持。 l 缺省状况下,发送Keep-alive 时间间隔为 60 秒,Hold Time是180秒。每次从邻居处接受到Keep-alive报文将重置Hold Time定期器,如果Hold Time定期器超时,peer就以为对等体Down。 (5) Update报文 Update报文是BGP系统中最重要信息,用于在同伴之间互换路由信息,它最多由三某些构成:不可达路由(unreachable)、途径属性(
10、path attributes)、网络可达性信息(NLRI,network layer reach-ability information)。 图4 Update报文格式 l Unfeasible Routes Len ——(2字节无符号整数) 不可达路由长度 l Withdrawn Routes ——(变长) 撤除路由 l Path Attribute Len ——(2字节无符号整数) 路由属性长度 l Path Attributes ——(变长) 路由属性 l Network Layer Reach-ability Information ——(变长) 网络可达信息 (6
11、)Notification报文 Notification报文重要在发生错误或对等体连接被关闭状况下使用,该消息携带各种错误代码(如定期器超时等),以及辅助错误代码及错误信息。 图5 Notification报文格式 表1 错误代码 1 2 3 4 5 6 错误类型 消息头错 Open消息错 Update消息错 保持时间超时 状态机错 退出 l Error code—错误代码。 l Errsubcode—辅助错误代码。 l Data—依赖于不同错误代码和辅助错误代码,用于标记错误因素。 2.3 自治系统 自治系统定义:由同一种技术管理机
12、构管理、使用统一选路方略某些路由器集合。自治系统内部路由合同(IGP),自治系统之间路由合同(EGP)。 (1)每个自治系统均有唯一自治系统编号,这个编号是由因特网授权管理机构分派。 (2)引入自治系统基本思想:通过不同编号来区别不同自治系统。这样,当网络管理员不盼望自己通信数据通过某个自治系统时,这种编号方式就十分有用了。或许,该网络管理员网络有能力访问这个自治系统,但由于它也许是由竞争对手在管理,或是缺少足够安全机制,因而,也许要回避它。通过采用路由合同和自治系统编号,路由器就可以拟定彼此间途径和路由信息互换办法。 (3)自治系统编号范畴是1到65535,其中1到64511是注册因特
13、网编号,64512到65535是私有网络编号。 2.4 BGP两种邻居-IBGP和EBGP 图6 (1) 如果两个互换BGP报文对等体属于同一种自治系统,那么这两个对等体就是IBGP对等体(Internal BGP),如RTB-RTD。 (2) 如果两个互换BGP报文对等体属于不同自治系统,那么这两个对等体就是EBGP对等体 (External BGP),如RTA-RTB。 (3) 虽然BGP是运营于自治系统之间路由合同,但是一种AS不同边界路由器之间也要建立BGP连接,只有这样才干实现路由信息在全网传递,如RTB和RTD,为了建立AS100和AS300之间通信,咱们要在它们之间
14、建立IBGP连接。 (4) IBGP对等体之间不一定是物理上直连,只要TCP连接可以建及时可。为了IBGP对等体路由告示可靠性,咱们普通采用loopback接口建立IBGP邻居关系,同步必要指定路由更新报文源接口。 (5) 路由器普通默认规定EBGP对等体之间是有物理上直连链路,同步普通也提供变化这个缺省设立配备命令。容许同非直连相连网络上邻居建立EBGP连接,这时需要修改EBGP最大跳数。 2.5 BGP路由属性 如何过滤某些BGP路由?如何影响BGP选路?等这些问题可以通过使用BGP丰富路由属性,就可以得到解决。BGP路由属性是一套参数,它对特定路由进行更详细描述。 2.5.1
15、 BGP路由属性分类 (1)从路由属性传递时可选性来划分: 1) 必遵属性:在路由更新数据报文中必要携带路由属性,如果缺少必遵属性,路由信息就会出错。 2) 可选属性:可以选取携带属性。 (2)从路由属性传递时范畴来划分: 1) 过渡属性:具备AS间可传递性属性就是过渡属性,过渡属性域值可以被传递到其她AS中去并继续起作用。 2) 非过渡属性:只在本AS内部传播,出了自治系统,该属性不再传递。 如下列出几种惯用属性状况: 表2 属性名 必遵/可选 过渡/非过渡 Origin 必遵 过渡 AS-Path 必遵 过渡 Next-hop 必遵 过渡 MED
16、 可选 非过渡 Local-preference 可选 非过渡 Community 可选 过渡 2.5.2常用路由属性 表3 序号 名称 序号 名称 1 Origin 9 Cluster-List 2 AS-Path 10 Destination Pref (MCI) 3 Next hop 11 Advertiser (Baynet) 4 Local-Preference 12 Rcid-Path (Baynet) 5 Atomic-Aggregate 13 MP_Reach_NLR 6 Aggregator 14
17、MP_Unreach_NLRI 7 Community 15 Extended_Communities 8 Originator-ID 16 MED (1) Origin:起点属性——定义路由信息来源,标记一条路由是如何成为BGP路由。起点属性是一种必遵过渡属性,它批示BGP路由来源。 图7 1) 路由是由“network”命令注入,则Origin属性是IGP。 2) 路由是由“redistribute”命令注入,则Origin属性是Incomplete(不完全)。 3) 由于IGP比Incomplete 人为操纵限度高,其优先级高。 (2)As-Path——A
18、S途径属性,是路由通过AS序列,即列出此路由在传递过程中通过了哪些AS,它可以防止路由循环,并用于路由过滤和选取。 图8 图9 (3)Next hop——下一跳属性,包括到达更新消息所列网络下一跳边界路由器IP地址。 图10 (4)MED属性——当某个AS有各种入口时,可以用MED属性来协助其外部AS选取一种较好入口途径。一条路由MED值越小,其优先级越高,与Cost值类似。 图11 1) 除非配备了“a-ways-compare-med”,其她时候永远只比较来自同一AS途径。 2) 不跨越AS传播 3) 通过配备router-map来设定 (5)
19、Local-Preference——本地优先级属性,用于在AS内优选到达某一目地路由,反映了BGP发言人对每条BGP路由偏好限度,属性值越大越优。 图12 (6)Community——团队属性,团队属性标记了一组具备相似特性路由信息,与它所在IP子网或自治系统无关。 2.5.3 BGP路由传递 图13 (1) 普通状况下一条路由是从自治系统内部产生,它由某种内部路由合同发现和计算,传递到自治系统边界,由自治系统边界路由器(ASBR)通过EBGP连接传播到其他自治系统中。路由在传播过程中也许会通过若干个自治系统,这些自治系统称为过渡自治系统。如:AS5。若这个自治系统有各种
20、边界路由器,这些路由器之间运营IBGP来互换路由信息。这时内部路由器并不需要懂得这些外部路由,它们只需要在边界路由器之间维护IP连通性。如:AS2、AS3、AS4。尚有一种自治系统称为Stub AS,如:AS1、AS6、AS7。其内部只有一种ASBR通过EBGP连接外部,同外部其她AS通信要靠过渡自治系统来转发数据。 (2) 对一种详细ASBR来说,其路由来源有两种:从对等体接受或者从IGP引入。对于接受路由,依照其属性(如AS途径、团队属性等)进行过滤,并设立某些属性(如本地优先级、MED值等),之后若需要话,将详细路由聚合为超网路由。BGP也许从各种对等体收到目地相似路由,依照规则选取最
21、佳路由并加入IP路由表。对于IGP路由,则要通过引入方略过滤和设立。BGP发送优选BGP路由和引入有效IGP路由给对等体。 2.5.4 BGP如何依照属性完毕决策 (1)一方面丢弃下一跳(next hop)不可达路由; (2)优选最大衡重(weight)路由; (3)优选最高本地优先级(local—preference)途径; (4)优选本路由器始发路由; (5)优选通过AS(AS—Path)至少路由; (6)优选起点类型(origin)最低路由; (7)优选MED值最低路由; (8)优选从EBGP学来路由; (9)优选AS内部最短途径可以到达路由; (10)优选BGP
22、 ID最低路由器发布路由。 2.6 BGP过滤功能 (1)可按照路由IP地址过滤; (2)可按照路由通过AS—Path过滤; (3)可按照路由属性过滤; (4)可按照路由到来接口过滤; (5)可按照过滤成果设立路由属性; BGP过滤过程如下图所示: 图14 3 BGP应用 3.1 BGP使用原则 (1)多条途径时,BGP Speaker 选取最优途径给自己使用。 (2)BGP Speaker 只把自己使用路由告示给相邻体。 (3)BGP Speaker把从EBGP获得路由向所有相邻体告示(涉及EBGP、IBGP)。 (4)BGP Speaker从IBGP获
23、得路由不向它IBGP相邻体告示。 (5)BGP Speaker从IBGP获得路由与否向它EBGP相邻体告示 (6)要视IGB与BGP同步状况而定。 3.2 BGP合同中消息应用 (1)通过TCP建立BGP连接时,发送open消息 (2)连接建立后,如果有路由需要发送或路由变化时,发送Update消息告示对端路由信息 (3)稳定后此时要定期发送Keep-alive消息以保持BGP连接有效性 (4)当本地BGP在运营中发现错误时,要发送notification消息告示BGP对端 (5)BGP使用TCP建立连接,本地监听端口为179。和TCP建立相似,BGP连接建立也要通过一系列
24、对话和握手。TCP通过握手协商告示其端口等参数,BGP握手协商参数有:BGP版本、BGP连接保持时间、本地路由器标记(Router ID)、授权信息等。这些信息都在Open消息中携带。 (6)BGP连接建立后,如果有路由需要发送则发送Update消息告示对端。Update消息发布路由时,还要携带此路由路由属性,用以协助对端BGP合同选取最优路由。 (7)在本地BGP路由变化时,要通过Update消息来告知对端BGP对等体。 (8)通过一段时间路由信息互换后,本地BGP和对端BGP都无新路由告示,趋于稳定状态。此时要定期发送Keep-alive消息以保持BGP连接有效性。对于本地BGP,如
25、果在保持时间内,未收到任何对端发来BGP消息,就以为此BGP连接已经中断,将断开此BGP连接,并删除所有从该对等体学来BGP路由。 (9)当本地BGP在运营中发现错误时,要发送notification消息告示BGP对等体。如对端BGP版本本地不支持、本地BGP收到了构造非法Update消息等。本地BGP退出BGP连接时也要发送notification消息。 3.3 BGP同步 图15 当不考虑同步状况下,RTD将RTB获得路由告示给RTE,RTE将指向AS100路由下一跳指向RTD,而RTD则将此路由指向RTC,但RTD获得AS100路由是RTB给,RTC并不懂得。 3.4 成为
26、BGP路由途径 BGP 重要工作是在自治系统之间传递路由信息,而不是去发现和计算路由信息。因此,BGP 路由信息需要通过配备命令方式注入到BGP中。 按照注入方式可分为三类:纯动态注入、半动态注入、静态注入。 (1)成为BGP路由途径之一:纯动态注入 图16 纯动态注入是指:路由器将通过IGP路由合同动态获得路由信息直接注入到BGP中去。它可以把路由器获得所有IGP 路由信息都引入到BGP系统中。这种方式配备简朴,一次性引入所有路由信息。 有关命令:import-route protocol [ process-id ] [ med med | route-policy rou
27、te-policy-name ] 1) Protocol——指定可引入外部路由合同,例如:isis、ospf、rip等 2) process-id——当引入路由合同为isis、ospf或rip时,依照需要指定进程号。 3) med——指定引入路由MED度量值。 4) route-policy-name——从其她路由合同引入路由时,可以使用该参数指定路由方略过滤路由。 (2)成为BGP路由途径之二:半动态注入 图17 半动态注入是指:路由器有选取性将IGP发现动态路由信息注入到BGP系统中去。它和纯动态注入区别在于:半动态注入一开始就有选取注入路由信息;而纯动态是把所有I
28、GP路由信息都注入,然后再过滤(可选)。 有关命令:network ipv4-address [ mask | mask-length ] [ route-policy route-policy-name ] 1) ipv4-address——BGP发布IPv4网络地址,点分十进制形式。此网络或主机地址应当是由IGP动态路由合同发现。 2) mask/mask-length——IP地址掩码或掩码长度。如果没有指定掩码,则按有类地址解决。 3) route-policy-name——发布路由应用路由方略。 (3)成为BGP路由途径之三:静态注入 图18 静态注入与半动态注入很类
29、似,不同是半动态注入路由是由IGP动态路由合同发现路由。而静态注入路由是手工配备静态路由。 BGP提供了机制告诉对端先前路由告示不再能使用。有三种方式供BGP发言者批示撤销某条路由服务: (1)对于先前告示路由,在Update消息withdraw routes字段内告示了到目地IP前缀,这样相应路由被标志为不再使用; (2)告示有相似网络层可达信息代替路由; (3)关闭BGP邻居之间连接,这意味着从服务里撤销这一对BGP对等体互相告示所有路由。 一种UPDATE消息一次只能告示一条路由,但它可以携带各种路由属性。 一种UPDATE消息一次也可告示多条路由,但它路由属性必要相似。
30、一种UPDATE消息可以同步携带各种被撤除路由。 参照文献 [1]王喆、罗进文.当代通信互换技术.北京:人民邮电出版社,6月 [2] (美)RandyZhang,MicahBarte著;黄博,葛建立译.BGP设计与实现.北京:人民邮电出版社, [3]苏明发.浅谈BGP合同.网管员世界.(8) [4] 徐劲涛,余波 . 浅议高档BGP路由合同. 江西通信科技.(3) [5] 孙轲. 关于BGP同步对路由选取影响. 电脑知识与技术.(19) [6] 刘亚萍,龚正虎,卢泽新. BGP途径选取问题研究. 中华人民共和国计算机大会
31、 附录 缩略语 AS Autonomous System 自治系统 ASBR Autonomous System Border Router 自治系统边界路由器 BGP Border Gateway Protocol 边界路由合同 CIDR Classless Inter-Domain Routing 无类型域间选路 EGP Exterior Gateway Protocol 外部网关合同 IGP Interior Gateway Protocols 内部网关合同 LSDB Interior Gateway Protocols 内部网关合同 LSDB Link State Data-Base 连接状态数据库 NLRI Network Layer Reach-ability Information 网络可达性信息 OSPF Open Shortest Path First 开放式最短途径优先 RIP Routing Information Protocol 路由信息合同 TCP Transmission Control Protocol 传播控制合同






