注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

itoedr的it学苑

记录从IT文盲学到专家的历程

 
 
 

日志

 
 

边界网关协议:border gateway protocol:BGP  

2013-07-12 13:16:56|  分类: 网际技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

定义:

在因特网的网关主机之间交换选路信息的协议。

边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。 BGP 构建在 EGP 的经验之上。 BGP 系统的主要功能是和其他的 BGP 系统交换网络可达信息。网络可达信息包括列出的自治系统(AS)的信息。这些信息有效地构造了 AS 互联的拓朴图并由此清除了路由环路,同时在 AS 级别上可实施策略决策。

释义

BGP/BGP4Border Gateway Protocol

BGP-4 提供了一套新的机制以支持无类域间路由。这些机制包括支持网络前缀的通告、取消 BGP 网络中 “ 类 ” 的概念。 BGP-4 也引入机制支持路由聚合,包括 AS 路径的集合。这些改变为提议的超网方案提供了支持。BGP-4 采用了路由向量路由协议,在配置BGP时,每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“BGP发言人”。

1989年发布了主要的外部网关协议:边界路由协议(BGP),新版本BGP-4 是在1995年发布的。

BGP路由选择协议执行中使用4种分组:打开分组(open)、更新分组(update)、存活分组(keepalive)、通告分组(notification)。

基本介绍

IETF先后为BGP制定了多个建议,分别为:

RFC 4271:当前正使用的BGP协议版本,称之为BGP4

RFC 1654BGP4协议的第一个规范。

RFC 1105RFC 1163RFC 1267RFC1771BGP4之前的BGP版本。

尽管BGP 协议是为自治系统间的路由选择而设计,但它也可以用于自治系统内部,是一类双重路由选择协议。两个可以在自治系统之间进行通信的BGP相邻结点必须存在于同一个物理链路上。位于同一个自治系统内的BGP路由器可以互相通信,以确保它们对整个自治系统的所有信息都相同,而且通过信息交换后,它们将决定自治系统内哪个BGP路由器作为连接点来负责接收来自自治系统外部的信息。

有些自治系统仅仅作为一个数据传输的通道,这些自治系统既不是数据的发起端,也不是数据的接收端。BGP协议必须与存在于这些自治系统内部的路由协议打交道,以使数据能正确通过它们。BGP协议的路由刷新消息由“网络号:自治系统路径”对所组成,每一个自治系统路径都是一系列自治系统的名字字符串,它记录了通向最终目标所经过的网络。BGP协议的路由刷新消息通过传输控制协议TCP进行可靠传输。两个路由器之间最初始的数据交换就是整个BGP 协议的路由选择表。随着路由表的不断变化,发送路由选择刷新消息的次数也越来越多,与其他一些路由选择协议有所区别,BGP协议不要求对整个路由选择表进行周期性刷新,相反,运行BGP协议的路由器保持了每一个路由选择表的最新版本。尽管BGP协议保持通向特定目标的所有路径的路由选择表,但在路由选择刷新消息中仅仅说明最佳路径。BGP协议的路由度量方法可以是一个任意单位的数,它指明某一个特定路径可供参考的程度,这些度量方法通常都是由网络管理人员通过配置文件来设置。可参考的程度可以基于任何数字准则,例如最终系统计数(计数越小时路径越佳)、数据链路的类型。

协议结构

Marker 16 bytesLength 2 bytesType 1 byte

Marker – 信息包含信息接收端可预测值。

Length – 包含协议头的信息长度。

Type –信息类型。信息可能是:OpenUpdateNotificationKeepalive

打开(Open)分组,用来与相邻的另一个BGP发言人建立联系

更新(Update)分组,用来发送某一路由的信息,以及列出多条要撤销的路由

保活(Keepalive)分组,用来确认打开分组和周期性地证实邻站关系

通知(Notification)分组,用来发送检测到的差错[1]

在传输协议连接建立之后,各端发送的第一个信息是 OPEN 信息。如果 OPEN 信息可以接收,会返回发送确认 OPEN 信息的 KEEPALIVE 信息。一旦 OPEN 信息获得确认,UPDATEKEEPALIVE NOTIFICATION 信息进行相互交换。

BGP属性

1)公认必遵(Well-Known Mandatory

ORIGIN(起源):这个属性说明了源路由是怎样放到BGP表中的。有三个可能的源IGP,EGP,以及INCOMPLETE.路由器在多个路由选择的处理中使用这个信息。路由器选择具有最低ORIGIN类型的路径。

AS_PATHAS路径):指出包含在UPDATE报文中的路由信息所经过的自治系统的序列。

Next_HOP(下一跳)声明路由器所获得的BGP路由的下一跳,对EBGP会话来说,下一跳就是通告该路由的邻居路由器的源地址。

2)公认自决(Well-Known Discretionary

LOCAL_PREF(本地优先级):本地优先级属性是用于告诉自治系统内的路由器在有多条路径的时候,怎样离开自治系统。本地优先级越高,路由优先级越高。

ATOMIC_AFFREFATE(原子聚合):原子聚合属性指出已被丢失了的信息。

3)可选过渡(Optional Transitive

AGGREGATOR(聚合者):此属性标明了实施路由聚合的BGP路由器ID和聚合路由的路由器的AS号。

COMMUNITY(团体):此属性指共享一个公共属性的一组路由器。

4)可选非过渡(Optional Nontransitive

MED(多出口区分):该属性通知AS以外的路由器采用哪一条路径到达AS,它也被认为是路由的外部度量,低MED值表示高的优先级。

ORIGINATOR_ID(起源ID):路由反射器会附加到这个属性上,它携带本AS路由器的路由器ID,用以防止环路。

CLUSTER_LIST(簇列表):此属性显示了采用的反射路径。

BGP特征

1.用属性(Attribute)描述路径,而不是用度量值;

2.使用TCP(端口179)作为传输协议,继承了TCP的可靠性和面向连接的特性;

3.通过Keepalive信息来检验TCP的连接;

4.具有丰富的属性特征,方便实现基于策略的路由;

5.拥有自己的BGP表;

6.支持VLSMCIDR

7.适合在大型网络中使用。



●建立邻接关系的基本过程
BGP会在每对邻接路由器之间形成一条TCP连接,由这条连接发送BGP消息,最终发送包含路由信息的BGP更新消息。
每个路由器都要显式地配置其邻接路由器的IP地址,路由器通过这些信息了解哪些IP地址试图建立TCP连接。如果路由器接收到未配置为BGP邻接路由器的 IP地址发来的TCP连接请求(BGP端口179),它会直接拒绝该请求。TCP连接建立之后,BGP开始发送BGP Open消息。一旦一对Open消息互相交换完毕,邻接路由器即进入已建立(established)状态,这是可工作的BGP路由器对的稳定状态。此 时,BGP的更新消息可以进行交换。

●BGP邻接关系建立的关键特性
1)BGP的TCP端口号:179
2)可以通过bgp timers keepalive holdtime路由器子命令或对每个邻接路由器使用neighbor timers命令来设置保活(keepalive)和保持(hold)定时器的时间。其默认值分别为60和180秒。它们用来判断邻接路由器是否失效。
3)在同一AS中的邻接路由器可以成为内部BGP(iBGP)邻接路由器。
4)在另一AS中的邻接路由器可以成为外部BGP(eBGP)邻接路由器。
5)确定BGP路由器ID(RID)的顺序如下:bgp router-id命令,BGP进程启动时处于up状态的loopback接口的最大IP,BGP进程启动时处于up状态的其他接口的最大IP。
6)怎样确定到达邻接路由器路由的源IP地址:可使用neighbor update-source命令,或者,默认情形下,使用该路由的外发接口的IP地址。
7)怎样确定到达邻接路由器路由的目的IP地址:使用neighbor命令显式指定。
8)自动汇总(auto-summary)功能默认是屏蔽的,可以通过auto-summary路由器子命令激活。
9)邻接路由器的认证方式:只支持MD5,使用neighbor password命令配置。

●内部BGP邻接路由器
前面已经介绍了iBGP邻接路由器是同处于一个AS中的路由器。iBGP路由器对通常使用loopback接口的IP地址来连通,以获得更高的可用性。在 单个AS中,每对路由器之间常常至少有两条路由,如果使用一个一般接口的IP地址来建立TCP连接,一旦该接口失效(此时可能还有其他路由可连 通),BGP的TCP连接也会随之失败。显然,使用loopback地址来建立连接会更为合理。
  评论这张
 
阅读(160)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017