当前位置:文档之家› 第四章 BGP协议

第四章 BGP协议

第四章 BGP协议

4.1 BGP 简介

BGP(Border Gateway Protocol,边界网关协议)是一种用于AS(Autonomous System,自治系统)之间的动态路由协议。AS 是拥有同一选路策略,在同一技术管理部门下运行的一组路由器。

早期发布的三个版本分别是BGP-1(RFC 1105)、BGP-2(RFC 1163)和BGP-3(RFC 1267),当前使用的版本是BGP-4(RFC 1771)。BGP-4 做为事实上的Internet 外部路由协议标准,被广泛应用于ISP(Internet Service Provider,因特网服务提供商)之间。

BGP 特性描述如下:

BGP 是一种外部网关协议(Exterior Gateway Protocol,

EGP),与OSPF、RIP 等内部网关协议(Interior Gateway

Protocol,IGP)不同,其着眼点不在于发现和计算路由,而

在于控制路由的传播和选择最佳路由。

BGP 使用TCP 作为其传输层协议(端口号179),提高了协

议的可靠性。

BGP 支持CIDR(Classless Inter-Domain Routing,无类别域

间路由)。

路由更新时,BGP 只发送更新的路由,大大减少了BGP 传播

路由所占用的带宽,适用于在Internet 上传播大量的路由信

息。

BGP 路由通过携带AS 路径信息彻底解决路由环路问题。

BGP 提供了丰富的路由策略,能够对路由实现灵活的过滤和

选择。

BGP 易于扩展,能够适应网络新的发展。

在Internet 上,BGP 需要通告的路由数目极大,由于TCP 提供了可靠的传送机制,同时TCP 使用滑动窗口机制,使得BGP 可以不断地发送分组,而无需像OSPF 或EIGRP 那样停止发送并等待确认。

发送BGP 消息的路由器称为BGP 发言者(BGP Speaker),它接收或产生新的路由信息,并发布(Advertise)给其它BGP 发言者。当BGP

发言者收到来自其它自治系统的新路由时,如果该路由比当前已知路由更优、或者当前还没有该路由,它就把这条路由发布给自治系统内所有其它BGP 发言者。

相互交换消息的BGP 发言者之间互称对等体(Peer),若干相关的对等体可以构成对等体组(Peer group)。

BGP 在路由器上以下列两种方式运行:

IBGP(Internal BGP):当BGP 运行于同一自治系统内部

时,被称为IBGP;

EBGP(External BGP):当BGP 运行于不同自治系统之间

时,称为EBGP。

4.2 BGP 的消息类型

4.2.1 消息头格式

BGP有5 种消息类型:Open、Update、Notification、Keepalive和Route-refresh。

这些消息有相同的报文头,其格式如图所示。

BGP 消息的报文头格式

主要字段的解释如下:

Marker:16 字节,用于BGP 验证的计算,不使用验证时所有

比特均为“1”。

Length:2 字节,BGP 消息总长度(包括报文头在内),以

字节为单位。

Type:1 字节,BGP 消息的类型。其取值从1 到5,分别表示

Open、Update、Notification、Keepalive 和Route-refresh 消

息。其中,前四种消息是在RFC1771 中定义,而Type 为5 的

消息则是在RFC 2918 中定义的。

4.2.2 Open消息

Open消息是TCP连接建立后发送的第一个消息,用于建立BGP对等体之间的连接关系。两个邻居都要发送一个Open 消息,每个邻居都用该消息来标示自己,并规定自己的BGP 运行参数。

BGP Open 消息包含的内容包括:

1)BGP version

它明确了发起者正在运行的BGP 版本号(2,3,4),可以通过neighbor version 修改,缺省版本号为4。如果版本号不相同,路由器将自动降低版本号重发Open 消息,直到版本一致。

2)AS number

发起会话路由器的AS 号,用于确认EBGP 或者IBGP 会话。

3)Hold time

路由器必须收到一个keepalive 或者更新消息之前允许经过的最大秒数。

Holdtime 必须是0(在这种情况下,必须是没有发送Keepalive)或者至少3s。

Cisco 默认的holdtime 为180s,如果两个邻居间holdtime 不一致,选较短的那个做为两者可接受的时间。

4)BGP router-ID

选取方式和OSPF 相同,使用数值最大的loopback 口地址,没有loopback 则使用物理接口上数值最大的地址。

5)Optional parameters

用于一些可选功能的支持,例如鉴别,多协议支持及路由刷新等。

4.2.3 Update消息

Update消息用于在对等体之间交换路由信息。它既可以发布可达路由信息,也可以撤销不可达路由信息,其消息格式如图所示。

BGP Update 消息格式

一条Update 报文可以通告一类具有相同路径属性的可达路由,这些路由放在NLRI(Network Layer Reachable Information,网络层可达信息)字段中,Path Attributes字段携带了这些路由的属性,BGP 根据这些属性进行路由的选择;同时Update 报文还可以携带多条不可达路由,被撤销的路由放在Withdrawn Routes 字段中。

BGP Update 消息包含的内容包括:

1)Network Layer Reachability Information (NLRI)

用来公布IP 地址前缀和前缀长度的字节组,例如<19,198.24.160.0>

2)Path Attributes

该属性为BGP 提供了选择最短路径,检查到路由环路以及决定路由策略的信息

3)Withdrawn Routes

用来描述已经变成不可达并正从业务中撤销的目的地址字节组(长度和前缀)

注:虽然NLRI 字段可以包含多个前缀,但每一个更新消息只描述一条BGP 路由(因为路径属性只描述一条路径,但该路径可能会到达多个目的地)

4.2.4 Notification消息

当BGP检测到错误状态时,就向对等体发出Notification消息,之后BGP连接会立即中断。其消息格式如图所示。

BGP Notification 消息格式

主要字段的解释如下:

Error Code:差错码,指定错误类型。

Error Subcode:差错子码,错误类型的详细信息。

Data:用于辅助发现错误的原因,它的内容依赖于具体的差

错码和差错子码,记录的是出错部分的数据,长度不固定。

4.2.5 Keepalive消息

BGP 会周期性地向对等体发出Keepalive 消息,用来保持连接的有效性。其消息格式中只包含报文头,没有附加其他任何字段。如果路由器接受了他在邻居的Open 消息中的参数,它就会发送一个应答的Keepalive 消息。默认情况Keepalive 间隔60s,或者是达成一致的保持时间的1/3。

4.2.6 Route-refresh消息

这是一个可选的消息,Route-refresh消息用来要求对等体重新发送指定地址族的路由信息。其消息格式如图所示。

BGP Route-refresh 消息格式

主要的字段解释如下:

AFI:Address Family Identifier,地址族标识。

Res.:保留,必须置0。

SAFI:Subsequent Address Family Identifier,子地址族标识。

4.3 BGP邻居协商

在BGP说话者可以交换网络层可达性信息(正被通告的网络)前,一个BGP会话必须被建立。下图表明了在连接完全建立起前B G P邻居协商的过程。

4.4 BGP协议的状态机

1) Idle(空闲):初始地,BGP处于Idle状态直到一个操作方引发了一个启动(Start)事件,启动事件通常是由建立或重启BGP会话引起的。

2) Connect(连接):在这个状态下,BGP正等待着传输协议连接的完成。如果传输协议连接成功了,一open报文被发送给对等的路由器,BGP状态变成了开放发送(opensent)状态。若连接失败,本地系统变为激活状态,继续监视连接。

3) Active State(行动):在这个状态下,BGP试图通过启动一传输协议连接来获得一个对等体。若连接成功,一个Open报文被发送给对等路由器。若连接重试计时器超时,BGP状态变为连接(Connect)状态,并继续监视可能会由远程BGP对等体启动的连接。

4) Open Sent State (开送状态):

本状态中,BGP正等待着来自它的对等体的OPEN报文。当一个OPEN报文被接收后,检查所有域的正确性。如果检测到错误,本地系统发送出一个NOTIFICATION报文并变回到空闲状态(Idle)。如果无错, BGP开始向它的对等体发送KeepAlive报文。

5) Open Confirm(开确认):本状态下,BGP 等候KeepAlive 或Notification报文。若本地系统接收到KeepAlive报文,系统状态变为已建

立( establisted )状态。如果保持计时器(Holol timer)在KeepAlive报文到达前超时,本地系统发送出一Notification报文,状态变回到Idle。

6)Establisted(已建立):这是邻居协商的最后阶段。在establisted 状态下,BGP对等体可以交换Update , Notification 以及KeepAlive报文。

4.5 BGP 的路由属性

4.5.1 路由属性的分类

BGP 路由属性是UPDATE报文的路由属性(Path Attributes):此可变长字段包含了与网络层可达性信息字段中前缀相关联的BGP属性的列表,它对特定的路由进行了进一步的描述,路径属性给出了正被通告的前缀的信息,如优先级或者前缀源等,使得BGP 能够对路由进行过滤和选择。

BGP 路由属性都可以分为以下四类:

公认必须遵循(Well-known mandatory):所有BGP 路由器

都必须能够识别这种属性,且必须存在于Update 消息中。如

果缺少这种属性,路由信息就会出错。

公认可选(Well-known discretionary):所有BGP 路由器都

可以识别,但不要求必须存在于Update 消息中,可以根据具

体情况来选择。

可选过渡(Optional transitive):在AS 之间具有可传递性的

属性。BGP 路由器可以不支持此属性,但它仍然会接收带有

此属性的路由,并通告给其他对等体。

可选非过渡(Optional non-trasitive):如果BGP 路由器不支

持此属性,该属性被忽略,且不会通告给其他对等体。

BGP路由几种基本属性和对应的类别如表所示。

4.5.2 源(ORIGIN)属性

ORIGIN是一个公认必遵属性的例子。它定义路由信息的来源,给出了产生路由更新的源AS。这个属性标记一条路由是怎么成为BGP 路由的。一个路由可从诸如OSPF的一个IGP得到,它被再分配进BGP。本属性可由外部路由协议(EGP)或其他除IGP或EGP之外的东西(如静态路由)等得知。ORIGIN 属性有以下三种类型:

IGP:优先级最高,说明路由产生于本AS 内。

EGP:优先级次之,说明路由通过EGP 学到。

incomplete:优先级最低,它并不是说明路由不可达,而是

表示路由的来源无法确定。例如,引入的其它路由协议的路

由信息。

4.5.3 AS 路径(AS_PATH)属性

AS_PATH属性按一定次序记录了某条路由从本地到目的地址所要经过的所有AS号。当BGP将一条路由通告到其他AS时,便会把本地AS 号添加在AS_PATH列表的最前面。收到此路由的BGP路由器根据

AS_PATH属性就可以知道去目的地址所要经过的AS。离本地AS最近的相邻AS号排在前面,其他AS号按顺序依次排列。如图所示。

通常情况下,BGP 不会接受AS_PATH 中已包含本地AS 号的路由,从而避免了形成路由环路的可能。

同时,AS_PATH 属性也可用于路由的选择和过滤。在其他因素相同的情况下,BGP会优先选择路径较短的路由。比如在上图中,AS 50中的BGP 路由器会选择经过AS 40 的路径作为到目的地址8.0.0.0 的最优路由。

在某些应用中,可以使用路由策略来人为的增加AS 路径的长度,以便更为灵活地控制BGP 路径的选择。

通过配置AS 路径过滤列表,还可以针对AS_PATH 属性中所包含的AS 号来对路由进行过滤。

4.5.4 下一跳(NEXT_HOP)属性

BGP 的下一跳属性和IGP 的有所不同,不一定就是邻居路由器的IP 地址。

下一跳属性取值情况分为三种,如图所示。

BGP 发言者把自己产生的路由发给所有邻居时,将把该路由

信息的下一跳属性设置为自己与对端连接的接口地址;

BGP 发言者把接收到的路由发送给EBGP 对等体时,将把该

路由信息的下一跳属性设置为本地与对端连接的接口地址;

BGP发言者把从EBGP邻居得到的路由发给IBGP邻居时,并

不改变该路由信息的下一跳属性。如果配置了负载分担,路

由被发给IBGP邻居时则会修改下一跳属性。

4.5.5本地优先(LOCAL_PREF)属性

LOCAL_PREF 属性仅在IBGP 对等体之间交换,不通告给其他AS。它表明BGP路由器的优先级。

LOCAL_PREF属性用于判断流量离开AS时的最佳路由。当BGP的路由器通过不同的IBGP对等体得到目的地址相同但下一跳不同的多条路由时,将优先选择LOCAL_PREF属性值较高的路由。如图所示,从AS 20 到AS 10 的流量将选择Router C作为出口。

4.5.6团体(COMMUNITY)属性

团体属性用来简化路由策略的应用和降低维护管理的难度。它是一组有相同特征的目的地址的集合,没有物理上的边界,与其所在的AS 无关。公认的团体属性有:

INTERNET:缺省情况下,所有的路由都属于INTERNET 团

体。具有此属性的路由可以被通告给所有的BGP 对等体。

NO_EXPORT:具有此属性的路由在收到后,不能被发布到

本地AS之外。如果使用了联盟,则不能被发布到联盟之外,

但可以发布给联盟中的其他子AS。

NO_ADVERTISE:具有此属性的路由被接收后,不能被通

告给任何其他的BGP 对等体。

NO_EXPORT_SUBCONFED:具有此属性的路由被接收后,

不能被发布到本地AS 之外,也不能发布到联盟中的其他子

AS。

4.6 BGP 的选路规则

4.6.1 BGP 选择路由的策略

在目前的实现中,BGP 选择路由时采取如下策略:

首先丢弃下一跳(NEXT_HOP)不可达的路由;

优选Preferred-value 值最大的路由;

优选本地优先级(LOCAL_PREF)最高的路由;

优选本路由器始发的路由;

优选AS 路径(AS_PATH)最短的路由;

依次选择ORIGIN 类型为IGP、EGP、Incomplete 的路由;

优选MED 值最低的路由;

依次选择从EBGP、联盟、IBGP 学来的路由;

优选下一跳Cost 值最低的路由;

优选CLUSTER_LIST 长度最短的路由;

优选ORIGINATOR_ID 最小的路由;

优选Router ID 最小的路由器发布的路由;

4.6.2 应用BGP 负载分担时的选路

在BGP 中,由于协议本身的特殊性,它产生的路由的下一跳地址可能不是当前路由器直接相连的邻居。常见的一个原因是:IBGP 之间发布路由信息时不改变下一跳。这种情况下,为了能够将报文正确转发出去,路由器必须先找到一个直接可达的地址(查找IGP 建立的路由表项),通过这个地址到达路由表中指示的下一跳。在上述过程中,去往直接可达地址的路由被称为依赖路由,BGP 路由依赖于这些路由指导报文转发。根据下一跳地址找到依赖路由的过程就是路由迭代(recursion)。

目前系统支持基于迭代的BGP 负载分担,即如果依赖路由本身是负载分担的(假设有三个下一跳地址),则BGP 也会生成相同数量的下一跳地址来指导报文转发。需要说明的是,基于迭代的BGP 负载分担并不需要命令配置,这一特性在系统上始终启用。

在实现方法上,BGP 的负载分担与IGP 的负载分担有所不同:IGP 是通过协议定义的路由算法,对到达同一目的地址的不

同路由,根据计算结果,将度量值(metric)相等的(如

RIP、OSPF)路由进行负载分担,选择的标准很明确(按

metric)。

BGP 本身并没有路由计算的算法,它只是一个选路的路由协

议,因此,不能根据一个明确的度量值决定是否对路由进行

负载分担,但BGP 有丰富的选路规则,可以在对路由进行一

定的选择后,有条件地进行负载分担,也就是将负载分担加

入到BGP 的选路规则中去。

在图中,Router D和Router E是Router C的IBGP对等体。当Router A和Router B同时向Router C通告到达同一目的地的路由时,如果用户在Router C配置了负载分担(如balance 2),则当满足一定的选路规则后,并且两条路由具有相同的AS_PATH属性、ORIGIN 属性、LOCAL_PREF和MED值时,Router C就把接收的两条路由同时加入到转发表中,实现BGP路由的负载分担。Router C只向Router D和Router E转发一次该路由,AS_PATH不变,但NEXT_HOP属性改变为Router C的地址,而不是原来的EBGP对等体地址。其它的BGP过渡属性将按最佳路由的属性传递。

4.6.3 BGP 发布路由的策略

在目前的实现中,BGP 发布路由时采用如下策略:

存在多条有效路由时,BGP 发言者只将最优路由发布给对等

体;

BGP 发言者只把自己使用的路由发布给对等体;

BGP 发言者从EBGP 获得的路由会向它所有BGP 对等体发布

(包括EBGP对等体和IBGP 对等体);

BGP 发言者从IBGP 获得的路由不向它的IBGP 对等体发布;

BGP 发言者从IBGP 获得的路由发布给它的EBGP 对等体

(关闭BGP 与IGP同步的情况下,IBGP 路由被直接发布;开

启BGP 与IGP 同步的情况下,该IBGP 路由只有在IGP 也发

布了这条路由时才会被同步并发布给EBGP 对等体);

连接一旦建立,BGP 发言者将把自己所有的BGP 路由发布给

新对等体。

4.7 IBGP 和IGP 同步

同步是指IBGP 和IGP 之间的同步,其目的是为了避免出现误导外部AS 路由器的现象发生。

如果一个AS中有非BGP路由器提供转发服务,经该AS转发的IP报文将可能因为目的地址不可达而被丢弃。如图1-11所示,Router E通过BGP从Router D可以学到Router A的一条路由8.0.0.0/8,于是将到这个目的地址的报文转发给Router D,Router D查询路由表,发现下一跳是Router B(通过peer next-hop-local命令手动设置)。由于Router D从IGP 学到了到Router B的路由,所以通过路由迭代,Router D将报文转发给Router C。但Router C并不知道去8.0.0.0/8 的路由,于是将报文丢弃。

图 IBGP 和IGP 同步

如果设置了同步特性,在IBGP 路由加入路由表并发布给EBGP 对等体之前,会先检查IGP 路由表。只有在IGP 也知道这条IBGP 路由时,它才会被加入到路由表,并发布给EBGP 对等体。

在下面的情况中,可以关闭同步特性。

本AS 不是过渡AS(上图中的AS20 就属于一个过渡AS)

本AS 内所有路由器建立IBGP 全连接

4.8大规模BGP 网络所遇到的问题

4.8.1 路由聚合

在大规模的网络中,BGP 路由表十分庞大,使用路由聚合(Routes Aggregation)可以大大减小路由表的规模。

路由聚合实际上是将多条路由合并的过程。这样BGP 在向对等体通告路由时,可以只通告聚合后的路由,而不是将所有的具体路由都通告出去。

目前系统支持自动聚合和手动聚合方式。使用后者还可以控制聚合路由的属性,以及决定是否发布具体路由。

4.8.2 BGP 路由衰减

BGP 路由衰减(Route Dampening)用来解决路由不稳定的问题。路由不稳定的主要表现形式是路由振荡(Route flaps),即路由表中的某条路由反复消失和重现。

发生路由振荡时,路由协议就会向邻居发布路由更新,收到更新报文的路由器需要重新计算路由并修改路由表。所以频繁的路由振荡会消耗大量的带宽资源和CPU 资源,严重时会影响到网络的正常工作。

在多数情况下,BGP 协议都应用于复杂的网络环境中,路由变化十分频繁。为了防止持续的路由振荡带来的不利影响,BGP 使用衰减来抑制不稳定的路由。

BGP 衰减使用惩罚值来衡量一条路由的稳定性,惩罚值越高则说明路由越不稳定。路由每发生一次振荡(路由从激活状态变为未激活状态,称为一次路由振荡),BGP便会给此路由增加一定的惩罚值(1000,此数值为系统固定,不可修改)。当惩罚值超过抑制阈值时,此路由被抑制,不加入到路由表中,也不再向其他BGP 对等体发布更新报文。

被抑制的路由每经过一段时间,惩罚值便会减少一半,这个时间称为半衰期(Half-life)。当惩罚值降到再使用阈值时,此路由变为可用并被加入到路由表中,同时向其他BGP 对等体发布更新报文。

4.8.3 对等体组

对等体组(Peer Group)是一些具有某些相同属性的对等体的集合。当一个对等体加入对等体组中时,此对等体将获得与所在对等体组相同的配置。当对等体组的配置改变时,组内成员的配置也相应改变。

在大型BGP 网络中,对等体的数量会很多,其中很多对等体具有相同的策略,在配置时会重复使用一些命令,利用对等体组在很多情况下可以简化配置。

将对等体加入对等体组中,对等体与对等体组具有相同的路由更新策略,提高了路由发布效率。

4.8.4 团体

对等体组可以使一组对等体共享相同的策略,而利用团体可以使多个AS 中的一组BGP 路由器共享相同的策略。团体是一个路由属性,在BGP 对等体之间传播,它并不受到AS 范围的限制。

BGP 路由器在将带有团体属性的路由发布给其它对等体之前,可以改变此路由原有的团体属性。

除了使用公认的团体属性外,用户还可以使用团体属性列表自定义扩展团体属性,以便更为灵活地控制路由策略。

4.8.5 路由反射器

为避免在AS内部的循环路由,BGP不会向内部BGP对等体通告它从其他内部BGP对等体中获得的路由。

在图中,路由器A会通告给路由器B所有它经EBGP获得的路由。这些路由不会通告到路由器C,因为路由器B不会在路由器A和路由器C间传递IBGP路由。为使路由器C得知这些路由,路由器A和路由器C间需要建立IBGP连接。为保证IBGP 对等体之间的连通性,需要在IBGP 对等体之间建立全连接关系。假设在一个AS内部有n台路由器,那么应该建立的IBGP连接数就为n(n-1)/2。当IBGP对等体数目很多时,对网络资

源和CPU 资源的消耗都很大。

利用路由反射可以解决这一问题。路由反射器像是所有内部

BGP(IBGP)会话的集中路由器或焦点。与路由反射器对等的路由器称为路由反射器客户。这些客户与路由反射器相匹配并交换路由信息。路由反射器接着交换或者“反射”这一个信息给所有客户,从而消除了对全互连环境的需要。在一个AS 内,其中一台路由器作为路由反射器RR(Route Reflector),其它路由器做为客户机(Client)与路由反射器之间建立IBGP 连接。路由反射器在客户机之间传递(反射)路由信息,而客户机之间不需要建立BGP 连接。

既不是反射器也不是客户机的BGP路由器被称为非客户机(Non-Client)。非客户机与路由反射器之间,以及所有的非客户机之间仍然必须建立全连接关系。其示意图如图所示。

路由反射器示意图

路由反射器和它的客户机组成了一个集群(Cluster)。某些情况下,为了增加网络的可靠性和防止单点故障,可以在一个集群中配置一个以上的路由反射器。这时,位于相同集群中的每个路由反射器都要配置相同的Cluster_ID,以避免路由循环。如图所示。

在某些网络中,路由反射器的客户机之间已经建立了全连接,它们可以直接交换路由信息,此时客户机到客户机之间的路由反射是没有必要的,而且还占用带宽资源。目前,系统支持配置相关命令来禁止在客户机之间反射路由。

4.8.6 联盟

联盟(Confederation)是处理AS内部的IBGP网络连接激增的另一种方法,它将一个自治系统划分为若干个子自治系统,每个子自治系统内部的IBGP对等体建立全连接关系,子自治系统之间建立EBGP连接关系。其示意图如图所示。

在不属于联盟的BGP 发言者看来,属于同一个联盟的多个子自治系统是一个整体,外界不需要了解内部的子自治系统情况,联盟ID 就是标识联盟这一整体的自治系统号,如上图中的AS 200 就是联盟ID。

联盟的缺陷是:从非联盟方案向联盟方案转变时,要求路由器重新进行配置,逻辑拓扑也要改变。

在大型BGP 网络中,路由反射器和联盟可以被同时使用。

BGP协议详解

BGP协议 简介: BGP中文名字:边界网关协议 英文名字: border gateway protocol BGP协议是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。 BGP 构建在 EGP 的经验之上。是互联网上一个核心的去中心化自治路由协议。它通过维护IP路由表或‘前缀’表来实现自治系统(AS)之间的可达性,属于矢量路由协议。 BGP不使用传统的内部网关协议(IGP)的指标,而使用基于路径、网络策略或规则集来决定路由。 功能: BGP 系统的主要功能是和其他的BGP 系统交换网络可达信息。网络可达信息包括列出的自治系统(AS)的信息。这些信息有效地构造了AS 互联的拓朴图并由此清除了路由环路,同时在AS 级别上可实施策略决策。 BGP的强大过滤功能: 解决大规模网络应用中遇到的问题: 优缺点:

优点: 应用特定的属性避免环路的发生 路由信息携带丰富的属性 丰富的属性值 可以组建可扩展的巨大的网络 丰富的路由过滤和路由策略 缺点: 传统的BGP-4只能管理IPv4单播路由信息,对于使用其它网络层协议(如IPv4 组播,IPv6单播、组播)的应用,在跨自治系统传播时就受到一定限制。为了提供对多种网络层协议的支持,IETF对BGP-4进行了扩展,形成MP-BGP。 所有的用户私有网络在被BGP 传递时,都加入了RD(路由区分符),BGP 要支持这些RD 的传递,也需要多协议的BGP(MP-BGP) MP-BGP采用地址族(Address Family)来区分不同的网络层协议。目前,系统实现了多种MP-BGP扩展应用,包括对VPN的扩展、对IPv6的扩展等。 为保证IBGP对等体之间的连通性,需要在IBGP对等体之间建立全连接关系。假设在一个AS内部有n台路由器,那么应该建立的IBGP连接数就为n(n-1)/2。当IBGP对等体数目很多时,对网络资源和CPU资源的消耗都很大。 解决上述问题的方法很多,但是在解决上述主要问题的同时还必须满足如下几个标准: 简单:必须易于配置同时也易于理解 容易转变:在不改变拓扑和自治系统的前提下,能够将全连接的拓扑转变。“联盟”技术在这点上就做得不够好,对管理者来说是不幸的。 兼容性:必须保证在IBGP发言者之间的连接只有原自治系统或者域全连接的一部分的情况下,不丢失任何的路由信息。 实现技术就是——1,BGP Route Reflector

BGP协议

BGP协议 为方便管理, 互连网被划分为不同的自治系统,BGP协议用来学习不同的自治系统间的路由信息。 Autonomous Systems:运行同一种选路策略,由统一管理者管理。 自治系统号由IANA (Internet地址授权委员会)分配, 组织使用BGP连接INTERNET 时,必须要申请公有AS号。 AS: 1—65535, 其中公有: 1—64511 私有: 64512—65535 当前, BGP协议广泛在INTERNET和大型行业及企业网中应用。 路由协议作用: 动态学习互连网网的路由信息。 内部网关协议IGP, 如RIP /OSPF /EIGRP 在选择路径时, 依据:度量值 RIP 跳数 OSPF 开销=100M/带宽 EIGRP带宽+延迟 外部网关协议EGP, 当前使用的是BGP(边界网关协议, 它的前身是EGP), 在选择路径时, 采用的是BGP属性(或者可以称之为策略). 使用BGP的原因: 1.管理:电信联通 2.支持更多的路由条目(OSPF最多1万条,ISIS最多2万条,而internet现在路由条目为 13万多条) 3.策略:非常丰富的属性(路由策略)对路由进行控制。 4.扩展:IPV4 IPV6 VPNV4(MBGP, 用于MPLS-VPN) BGP属性: 一.AS路径属性. BGP是一种路径矢量型协议, 类似于RIP(距离矢量协议).。 默认情况下, BGP协议会选择一条从源到目的地的最短无环路径。

分析: 从AS200访问160.1.0.0 /16, BGP协议默认会选择: 160.1.0.0/16 300 600 i 400 500 600 i 类似于RIP的逐跳选择,以AS为跳数,选择最短的AS无环路径。 并且,在向邻居通告时,只通告自已采用的路由。 EBGP水平分割 不接收路径列表中包含本身AS号的路由更新。(防止环路)二.下一跳属性 默认, 下一跳为邻接AS路由器的外部接口IP. 如果下一跳不可达,则路由无效,解决办法: 1. 通过IGP学习 2. 修改下一跳属性 R2(config-router) # neighbor 23.0.0.3 next-hop-self neighbor 34.0.0.4 next-hop-self 可避免AS间路径在IGP中通告 三.源头属性 信息来源: i 由BGP的Network命令通告的路由 e 由EGP(早期的外部网关协议)学来的(现在已不用) ? 通过重分发到BGP进程学到的. 可信度i>e >? 实验: 基本的BGP配置. 要求: AS100 BGP + OSPF 重分发 AS200 BGP + EIGRP AS300 BGP

BGP 协议原理总结

BGP协议原理总结 BGP协议3: 边界网关路由协议(版本3) RFC1267 王尚 201192339

名词解释: 1AS(自治系统):在单一技术管理下的一系列路由器,他们使用一个内部网关,在AS内部路由数据包的共同标准,使用同一个外部网关协议来想其他AS传输数 据包。因为这个经典的解释已经被扩展,所以对于一个单一的AS来说在内部 使用多个内部网关协议和有时多个系列的标准已经很普遍了。 (在这里使用的AS强调了这样的事实,即便多个内部网关协议和度量标准被 使用,一个AS面向其他的AS的管理拥有一个单一的连贯一致的内部路由方 案,并且展示一个始终如一的图片,什么的网络通过它可以到达。从外部的路 由的观点来看一个AS可以被看做一个单片集成电路:) 图1AS系统 2IGP(内部的边界网关协议)专门用于自治系统中的网关间交换数据流转通道信息的协议 3EGP(外部的边界网关协议)在自治系统间的相邻的网关主机间交换路由信息的协议。常用于在INTERNET主机间交换路由表信息。一个轮询协议,利用H ELLO和I-HEARD-YOU消息的转换,能让每个网关控制盒接受网络 可达性信息的速率,容许每个系统控制自己的开销,同时发出命令请求更新响应。 路由表包括一组一知路由器及这些路由器的可到达地址及路径开销,从而选择最 佳路由。每个路由器没个120或者480秒访问邻居一次,邻居发挥完整的路 由表来响应。 4IBGP(内部边界网关协议) 5EBGP(外部边界网关协议) 6EBGP对等体 7BGP和IGP同步:一个BGP路由器不将从内部Peer得知的目的地通告给外部Peer,除非该目的地也能通过IGP得知。若一个路由器通过IGP得知该 目的地,则可以认为路由能在AS中传播,内部通达已经可以得到保证。 BGP协议概述 1BGP协议是外部路由协议,用来在AS之间传递路由信息。 2是一种增强的距离矢量路由协议。具有以下特点: ①可靠的路由更新机制

BGP协议原理、

1、下面有关BGP协议描述,正确的是(cd) A.BGP协议属于边界路由协议,这里的边界指路由区域的边界 B.BGP协议不仅可以发现和计算路由,而且还负责控制路由的传播和选择最优路由 C.BGP协议以TCP作为传输层协议 D.BGP协议支持CIDR和路由聚合 2、BGP协议和自治系统之间的正确关系是(b ) A.BGP协议只能被应用在自治系统之间,不能被应用在自治系统内部 B.BGP协议是运行在自治系统之间的路由协议,而OSPF、RIP及IS-IS等协议应用在自治系统内部 C.BGP协议通过在自治系统之间传播链路信息的方式来构造网络拓扑结构 D.BGP协议不能跨多个自治系统而运行 3、下面有关BGP协议描述,错误的是(c) A.BGP是一个很健壮的路由协议 B.BGP可以用来检测路由环路 C.BGP无法聚合同类路由 D.BGP是由EGP继承而来的 4、在BGP协议中,用来交换BGP版本号、自治系统号、保持时间以及BGP标识符等信息的报文是(a) A.Open报文 B.Update报文 C.keepalive报文 D.Notification报文 5、以下关于BGP协议的描述正确的是(bd ) A.BGP是一种自治系统内的动态路由发现协议,它的基本功能是在自治系统内自动交换无环路的路由信息 B.通过携带AS路径信息,可以解决路由循环问题 C.BGP-4不支持无分类区域间路由CIDR D.路由更新时,BGP只发送增量路由,大大减少了BGP传播路由所占用的带宽,适用于在Internet上传播大量的路由信息 6、以下有关BGP发送路由的说法正确的是(ab ) A.BGP工作在自治系统之间,BGP发送和引入路由的范围是整个AS自治区mn域 B.BGP采用发送增量路由的方法,完成全部路由信息的通告和维护 C.和IGP一样,BGP在发送路由时不在本地保存发送给对端的路由信息 D.BGP初始化时先发送路由信息的摘要给对端,然后再发送对端需要的路由信息,这样可以减少对链路带宽的占用 7、BGP协议中规定了BGP的两个邻居:IBGP对等体和EBGP对等体,有关对这些对等体路由的通告描述正确的是(ab ) A.BGP把从EBGP获得的路由向IBGP对等体通告

bgp是哪层协议

竭诚为您提供优质文档/双击可除 bgp是哪层协议 篇一:bgp协议原理总结 BGP协议原理总结 BGP协议3: 边界网关路由协议(版本3) RFC1267 王尚 201192339 名词解释: 1AS(自治系统):在单一技术管理下的一系列路由器,他们使用一个内部网关,在A S内部路由数据包的共同标准,使用同一个外部网关协议来想其他AS传输数据包。因为这个经典的解释已经被扩展,所以对于一个单一的AS来说在内部使用多个内部网关协议和有时多个系列的标准已经很普遍了。 (在这里使用的AS强调了这样的事实,即便多个内部网关协议和度量标准被使用,一个AS面向其他的AS的管理拥有一个单一的连贯一致的内部路由方案,并且展示一个

始终如一的图片,什么的网络通过它可以到达。从外部的路由的观点来看一个AS可以被看做一个单片集成电路:)图1AS系统 IGP(内部的边界网关协议)专门用于自治系统中的网关间交换数据流转通道信息 的协议 EGP(外部的边界网关协议)在自治系统间的相邻的网关主机间交换路由信息的协 议。常用于在INTERNET主机间交换路由表信息。一个轮询协议,利用HELLO和I-HEARD-YOU消息的转换,能让每个网关控制盒接受网络可达性信息的速率,容许每个系统控制自己的开销,同时发出命令请求更新响应。路由表包括(bgp是哪层协议)一组一知路由器及这些 路由器的可到达地址及路径开销,从而选择最佳路由。每个路由器没个120或者480秒访问邻居一次,邻居发挥完整的路由表来响应。 IBGP(内部边界网关协议) EBGP(外部边界网关协议) EBGP对等体 BGP和IGP同步:一个BGP路由器不将从内部Peer得知的目的地通告给外部 Peer,除非该目的地也能通过IGP得知。若一个

bgp协议优势

竭诚为您提供优质文档/双击可除 bgp协议优势 篇一:bgp协议原理、 1、下面有关bgp协议描述,正确的是(cd) a.bgp协议属于边界路由协议,这里的边界指路由区域的边界 b.bgp协议不仅可以发现和计算路由,而且还负责控制路由的传播和选择最优路由 c.bgp协议以tcp作为传输层协议 d.bgp协议支持cidR和路由聚合 2、bgp协议和自治系统之间的正确关系是(b) a.bgp协议只能被应用在自治系统之间,不能被应用在自治系统内部 b.bgp协议是运行在自治系统之间的路由协议,而ospF、Rip及is-is等协议应用在自治系统内部 c.bgp协议通过在自治系统之间传播链路信息的方式来构造网络拓扑结构 d.bgp协议不能跨多个自治系统而运行 3、下面有关bgp协议描述,错误的是(c)

a.bgp是一个很健壮的路由协议 b.bgp可以用来检测路由环路 c.bgp无法聚合同类路由 d.bgp是由egp继承而来的 4、在bgp协议中,用来交换bgp版本号、自治系统号、保持时间以及bgp标识符等信息的报文是(a) a.open报文 b.update报文 c.keepalive报文 d.notification报文 5、以下关于bgp协议的描述正确的是(bd) a.bgp是一种自治系统内的动态路由发现协议,它的基本功能是在自治系统内自动交换无环路的路由信息 b.通过携带as路径信息,可以解决路由循环问题 c.bgp-4不支持无分类区域间路由cidR d.路由更新时,bgp只发送增量路由,大大减少了bgp 传播路由所占用的带宽,适用于在internet上传播大量的路由信息 6、以下有关bgp发送路由的说法正确的是(ab) a.bgp工作在自治系统之间,bgp发送和引入路由的范围是整个as自治区mn域 b.bgp采用发送增量路由的方法,完成全部路由信息的

BGP路由协议详解(完整篇)

BGP路由协议详解 制作人:张选波 二〇〇九年六月二十二日

一、BGP的概况 BGP最新的版本是BGP第4版本(BGP4),它是在RFC4271中定义的;一个路由器只能属于一个AS。AS的范围从1-65535(64512-65535是私有AS号),RFC1930提供了AS 号使用指南。 BGP的主旨是提供一种域间路由选择系统,确保自主系统只能够无环地交换路由选择信息,BGP路由器交换有关前往目标网络的路径信息。 BGP是一种基于策略的路由选择协议,BGP在确定最佳路径时考虑的不是速度,而是让AS能够根据多种BGP属性来控制数据流的传输。 1、BGP的特性 BGP将传输控制协议(TCP)用作其传输协议。是可靠传输,运行在TCP的179端口上(目的端口) 由于传输是可靠的,所以BGP0使用增量更新,在可靠的链路上不需要使用定期更新,所以BGP使用触发更新。 类似于OSPF和ISIS路由协议的Hello报文,BGP使用keepalive周期性地发送存活消息(60s)(维持邻居关系)。 BGP在接收更新分组的时候,TCP使用滑动窗口,接收方在发送方窗口达到一半的时候进行确定,不同于OSPF等路由协议使用1-to-1窗口。 丰富的属性值 可以组建可扩展的巨大的网络 2、BGP的三张表 邻居关系表 ?所有BGP邻居 转发数据库 ?记录每个邻居的网络 ?包含多条路径去往同一目的地,通过不同属性判断最好路径 ?数据库包括BGP属性 路由表 ?最佳路径放入路由表中 ?EBGP路由(从外部AS获悉的BGP路由)的管理距离为20 ?IBGP路由(从AS系统获悉的路由)管理距离为200 如下图所示。

浅谈BGP协议的工作原理

浅谈BGP 协议的工作原理 图文信息中心 李宪民 【摘 要】BGP (Border Gateway Protocol :边界网关协议):是一种增强的距离矢量路由协议,属于外部路由协议。从功能上讲它是一种自治系统间的动态路由协议。它通过维护IP 路由表或‘前缀’表来实现自治系统(AS )之间的可达性,使用基于路径、网络策略或规则集来决定路由。它的基本功能是在自治系统间自动交换无环路的路由信息,通过交换带有自治系统号(AS)序列属性的网络可达信息,来构造自治系统的拓扑图,从而消除路由环路,并使得基于自治系统级别的策略控制得以实施。 本文从应用的角度出发,通过BGP 协议特点、BGP 路由通告原则、成为BGP 路由的方法、BGP 报文(消息)、BGP 邻接关系的建立、BGP 的路由属性、BGP 路由选择等七个方面对BGP 协议进行阐释。 【关键词】 BGP 路由协议 自治系统 对等体 状态机 BGP 报文 路由属性 一、BGP 协议简介 BGP (Border Gateway Protocol )是一种自治系统间的动态路由协议,它的基本功能是在自治系统间自动交换无环路的路由信息,通过交换带有自治系统号序列属性的路径可达信息,来构造自治区域的拓扑图,从而消除路由环路并实施用户配置的路由策略。与OSPF 和RIP 等在自治区域内部运行的协议对应,BGP 是一种EGP (Exterior Gateway Protocol )协议,而OSPF 、RIP 、ISIS 等为IGP (Interior Gateway Protocol )协议。BGP 协议经常用于ISP 之间。 BGP 协议从1989年以来就已经开始使用。它最早发布的三个版本分别是RFC1105(BGP-1)、RFC1163(BGP-2)和RFC1267(BGP-3),当前使用的是RFC1771(BGP- 4)。 随着INTERNET 的飞速发展,路由表的体积也迅速增加,自治区域间路由信息的交换量越来越大,影响了网络的性能。BGP 支持无类别域间选路CIDR (Classless Interdomain Routing ),可以有效的减少日益增大的路由表。BGP-4正迅速成为事实上的Internet 边界路由协议标准。 二、BGP 协议相关概念 (一)自治系统( Autonomous System ) 自治系统:是由同一个技术管理机构管理、使用统一选路策略的一些路由器的集合。每个自治系统都有唯一的自治系统编号,这个编号是由因特网授权的管理机构分配的。 引入自治系统的基本思想:通过不同的编号来区分不同的自治系统。通过采用路由协议和自治系统编号,路由器就可以确定彼此间的路径和路由信息的交换方法。 自治系统的编号范围是1到65535,其中1到64511是注册的因特网编号,64512到65535是私有网络编号。 (二)BGP 路由传递 一般情况下一条路由是从自治系统内部 产生的,它由某种内部路由协议发现和计算,传递到自治系统的边界,由自治系统边界路由 器(ASBR )通过EBGP 连接传播到其它自治系统中。路由在传播过程中可能会经过若干个 自治系统,这些自治系统称为过渡自治系统。如右图中AS5。若这个自治系统有多个边界路 由器,这些路由器之间运行IBGP 来交换路由信息。这时内部的路由器并不需要知道这些外部路由,它们只需要在边界路由器之间维护IP 连通性。如:AS2、AS3、AS4。还有一种自治系统称为Stub AS ,如:AS1、AS6、AS7。其内部只有一个ASBR 通过EBGP 连接外部,AS1AS7AS6 AS5AS4 AS3AS2

ibgp协议的作用

竭诚为您提供优质文档/双击可除 ibgp协议的作用 篇一:bgp协议原理、 1、下面有关bgp协议描述,正确的是(cd) a.bgp协议属于边界路由协议,这里的边界指路由区域的边界 b.bgp协议不仅可以发现和计算路由,而且还负责控制路由的传播和选择最优路由 c.bgp协议以tcp作为传输层协议 d.bgp协议支持cidR和路由聚合 2、bgp协议和自治系统之间的正确关系是(b) a.bgp协议只能被应用在自治系统之间,不能被应用在自治系统内部 b.bgp协议是运行在自治系统之间的路由协议,而ospF、Rip及is-is等协议应用在自治系统内部 c.bgp协议通过在自治系统之间传播链路信息的方式来构造网络拓扑结构 d.bgp协议不能跨多个自治系统而运行 3、下面有关bgp协议描述,错误的是(c)

a.bgp是一个很健壮的路由协议 b.bgp可以用来检测路由环路 c.bgp无法聚合同类路由 d.bgp是由egp继承而来的 4、在bgp协议中,用来交换bgp版本号、自治系统号、保持时间以及bgp标识符等信息的报文是(a) a.open报文 b.update报文 c.keepalive报文 d.notification报文 5、以下关于bgp协议的描述正确的是(bd) a.bgp是一种自治系统内的动态路由发现协议,它的基本功能是在自治系统内自动交换无环路的路由信息 b.通过携带as路径信息,可以解决路由循环问题 c.bgp-4不支持无分类区域间路由cidR d.路由更新时,bgp只发送增量路由,大大减少了bgp 传播路由所占用的带宽,适用于在internet上传播大量的路由信息 6、以下有关bgp发送路由的说法正确的是(ab) a.bgp工作在自治系统之间,bgp发送和引入路由的范围是整个as自治区mn域 b.bgp采用发送增量路由的方法,完成全部路由信息的

相关主题
文本预览
相关文档 最新文档