第一篇:BGP协议实现的单IP双线路
用BGP协议实现的单IP双线路
BGP(边界网关协议)协议主要用于互联网AS(自治系统)之间的互联,BGP的最主要功能在于控制路由的传播和选择最好的路由。中国网通与中国电信都具有AS号(自治系统号),全国各大网络运营商多数都是通过BGP协议与自身的AS号来互联的。使用此方案来实现双线路需要在CNNIC(中国互联网信息中心)申请IDC自己的IP地址段和AS号,然后通过BGP协议将此段IP地址广播到网通、电信等其它的网络运营商,使用BGP协议互联后网通与电信的所有骨干路由设备将会判断到IDC机房IP段的最佳路由,以保*网通、电信用户的高速访问。
使用此方案具体以下优点:
1. 服务器只需要设置一个IP地址,最佳访问路由是由网络上的骨干路由器根据路由跳数与其它技术指标来确定的,不会对占用服务器的任何系统资源。服务器的上行路由与下行路由都能选择最优的路径,所以能真正实现高速的单IP双线访问。
2. 由于BGP协议本身具有冗余备份、消除环路的特点,所以当IDC服务商有多条BGP互联线路时可以实现路由的相互备份,在一条线路出现故障时路由会自动切换到其它线路。
3. 使用BGP协议还可以使网络具有很强的扩展性可以将IDC网络与其他运营商互联,轻松实现单IP多线路,做到所有互联运营商的用户访问都很快。这个是双IP双线无法比拟的。虽然BGP方案是最好的解决方案但由于此方案需要IDC提供商的设备投入与带宽投入方面较大并且技术上较为复杂,所以目前国内采用此方案仅限于实力较强的专业IDC服务商。综上所述,以上各种双线实现的方式各有优缺点,双IP双线成本较低,但网络不够稳定并且占用大量的服务器资源,普通单IP双线路只是实现了部分双线路的效果所以访问速度不佳,CDN方式对静态网页效果很好但对交互性很强的网页效果不太理想,BGP单IP双线路解决了以上所有的问题是最好的实现方式但国内采用此种方案的IDC服务商较少,如果能将BGP单IP双线与CDN加速结合起来将会是最优的解决方案。目前全国已有不少合用BGP技术方案的数据中心,但大多为特殊客户提供服务,很少有针对普通用户和IDC商的机房。郑州市景安互联网数据中心,经过长达两年的技术积累和准备工作,在取得多方面支持下,申请成功了自己的IP段,和自制域,并与电信、网通达成BGP互联协议,在今年五月份正式向全国普通用户和IDC供应商推出了BGP服务器的机房,使国内最尖端的互联解决方案走向每个使用互联网的人。并在7月初实现了长宽的BGP,达到三线互通。在8月中旬与铁通的互通。景安单IP四网互通,您投资互联网的最佳方案。
第二篇:BGP 协议原理总结
BGP协议原理总结
BGP协议3:
边界网关路由协议(版本3)
RFC1267
王尚
201192339
名词解释:
1 AS(自治系统):在单一技术管理下的一系列路由器,他们使用一个内部网关,在AS内部路由数据包的共同标准,使用同一个外部网关协议来想其他AS传输数据包。因为这个经典的解释已经被扩展,所以对于一个单一的AS来说在内部使用多个内部网关协议和有时多个系列的标准已经很普遍了。(在这里使用的AS强调了这样的事实,即便多个内部网关协议和度量标准被使用,一个AS面向其他的AS的管理拥有一个单一的连贯一致的内部路由方案,并且展示一个始终如一的图片,什么的网络通过它可以到达。从外部的路由的观点来看一个AS可以被看做一个单片集成电路:)
图1 AS系统
IGP(内部的边界网关协议)专门用于自治系统中的网关间交换数据流转通道信息的协议
EGP(外部的边界网关协议)在自治系统间的相邻的网关主机间交换路由信息的协议。常用于在INTERNET主机间交换路由表信息。一个轮询协议,利用HELLO和I-HEARD-YOU消息的转换,能让每个网关控制盒接受网络可达性信息的速率,容许每个系统控制自己的开销,同时发出命令请求更新响应。路由表包括一组一知路由器及这些路由器的可到达地址及路径开销,从而选择最佳路由。每个路由器没个120或者480秒访问邻居一次,邻居发挥完整的路由表来响应。
IBGP(内部边界网关协议)EBGP(外部边界网关协议)EBGP对等体
BGP和IGP同步:一个BGP路由器不将从内部Peer得知的目的地通告给外部Peer,除非该目的地也能通过IGP得知。若一个路由器通过IGP得知该目的地,则可以认为路由能在AS中传播,内部通达已经可以得到保证。2 3
4 5 6 7
BGP协议概述
1 BGP协议是外部路由协议,用来在AS之间传递路由信息。2 是一种增强的距离矢量路由协议。具有以下特点:
① 可靠的路由更新机制 3 4 5 6 7 8 9 ②
丰富的Metric度量方法 ③
从设计上避免了环路的发生 可以为路由附带属性信息
支持CIDR(无类别域间路由)丰富的路由过滤和路由策略
使用的传输层协议是TCP协议,使用的端口号是179 无需周期性的更新
周期性的发送KEEPALIVE报文验证TCP连接的连通性 在进行路由更新时只发送路由增量
BGP路由通告原则
1 当存在多条路径时,BGPSpeaker只选择最优的给自己使用 2 BGPSpeaker只把自己只用的路由通告给邻居
3 BGPSpeaker从EBPG获得的路由会向他的所有BGP邻居通告(包括EBGP和IBGP)
4 BGPSpeaker从IBGP获得的路由不向它的IBGP邻居发送
5 BGP Speaker从IBGP获得的路由是否会通告给他的EBGP对等体要依从于IGP和BGP同步的情况来决定
6 连接一但建立,BGP Speaker将把自己所有BGP路由通告给新的邻居
IBGP全连接
① IBGP对等体物理意义上的全连接 ② IBGP对等体逻辑意义上的全连接
BGP报文种类
1 Open:在TCP会话建立之后,两个邻居都将发送Open消息,每个邻居都
利用该消息标识自己并指定BGP操作参数
2 KeepAlive:当路由器接受了由邻居发送来的Open消息中的指定参数。
它将响应一条KeepAlive消息,此后路由器每60秒发送一条KeepAlive消息,或是以协商的保持时间的1/3为周期发送KeepAlive消息。由于KEEPALIVE纯粹是一个通信知会,不需要携带什么信息,因此KEEPALIVE报文实际上是不带数据的BGP报文头。
3 Update:被用来宣告可行路由、撤销的路由 4 Notification:只要路由器检测到差错就会发送Notificat
ion消息并关闭BGP进程,随后我们将看到BGP邻居断开,然后试图重新建立BGP邻居。BGP报文头
BGP报文的格式都是一样的:BGP报文头+BGP报文体
其中BGP报文头格式如下:
图 2 BGP报文头 ⑴ Maker(16byte):全为1,否则标记值要使用认证机制来计算(认证机制是通过认证信息的一部分来指定的)。标记可以用来探测BGP对端的同步丢失,认证进入的BGP消息。⑵ Length(2byte)BGP报文的全长,长度值必须最少19个字节,最大4096个字节。可能更多,根据报文类型决定 ⑶ Type(1byte)1-Open
2-UPDATE
3—Notification
4KeepAlive
Open报文:
⑷ ⑸ ⑹ ⑺
图3 Open报文头
Version(1字节)当前BGP版本号为3 My Autonomus System(2字节):发射者自导系统号 HoldTIME(2字节):BGP的Hold time为180秒 BGPIDE NTIFIER(4字节):发送者的BGP route ID
⑻ AUTH.CODE
⑼ AUTHE NTICATIO NDATA
Update
图 4 Update报文头
⑽ TOTALPath AttributeSLE NGTH(2字节):总的路径属性长度 0代表在UPDATE消息中没有网络层可达信息域 ⑾ Path Attribute:路径属性,在一个UPDATE中可能存在多个路径属性对。每个路径属性对包括Attribute Flags,Attribute type code,Attribute Date Length 三个字段。Attribute Flags,Attribute type code 各占一个字节。
⒈ Attribute Flags的8位分别表示:
⒉ Attribute type code指明是什么属性。
图 5 Attribute type code属性
⑿ Network(4字节): INTER NET NETWOR K编码表明这个AS的路由由这个路径属性表明
③ KeepAlive报文
④ Notification报文
图6 Notification报文头 ⑴ ERRORCODE:(1字节)
⑵ Error Subcode(1字节)
⑶ Date用来诊断Notification的原因。依赖于错误码和错误子码。Message Length=21+data length
BGP协议中消息的使用
1 通过TCP建立BGP连接时,发送Open报文
2 连接建立后,如果路由需要发送或者路由改变时,发送Update报文告知对端路由信息
3稳定后此时要定时发送KeepAlive报文以保持BGP连接的有效性
4档本地BGP在运行中发生错误时,发送Notification报文告知BGP对端 BGP有限状态机
BGP会话共有6种状态,分别是: 1CONNECT 3OpenSENT
5ESTABLISHED
BGP会话共有13种事件,影响BGP的会话,分别是: 1BGPStop
3BGPTransport ConnectionCLOSED
5BGPTRANSPORTFATALERROR 7HoldTimerExPIRED
9ReceiveOPENMESSAGE
11ReceiveUpdateMESSAGES
13-ReceiveNOTIFICATIONMESSAGE 1 空闲状态 BGP通常以空闲状态开始。在该状态下,它拒绝接收所有入连接。当一个开始事件出现的时候,BGP初始化所有BGP资源,打开重试连接计时器(ConnectRetrytimer)、初始化到邻居的TCP连接、接听来自邻居的TCP初始化消息,并将它的状态转到连接状态。开始事件是由一个操作者配置一个BGP过程,或重置一个已经存在的过程,或者由路由器软件重置BGP过程引起的。一个差错的出现会将BGP过程的状态转为空闲状态。路由器可能会试图发起另外一个是事件。但是对于路由器如何完成这个过程应当加以限制——在具有持续差错的条件下,坚持不懈的试图重新开始会导致摆动。因此,在第一次转向空闲状态以后,路由器会启动重试连接计时器,当计时器终止后,路由器就会放弃重新开始BGP。下一次ConnectRetry时间是前一次的两倍,以此类推。2 连接状态
在这种状态下,BGP过程会等到TCP连接完成以后再决定后续动作。如果TCP连接成功,BGP连接将ConnectRetry清零,完成初始化过程,给邻居发送一个Open消息并转移到发送Open消息状态。如果TCP连接建立失败。BGP过程会继续监听由邻居发起的连接、重置ConnectRetry计时器并转移到激活状态。
如果再连接状态下,ConnectRetry计时器超时了,计时器将重新开始计时,并再一次试图与邻居建立一个TCP连接,BGP状态继续保持在连接状态。任何一个其他输入事件的出现都会导致BGP状态转向空闲。3 激活状态
在这个状态下,BGP过程试图与邻居建立一个TCP连接。如果TCP连接建立成功,BGP过程将ConnectRetry清零,完成初始化工作,给邻居发送一个Open消息并转移到发送Open消息状态。
如果BGP在激活状态时,ConnectRetry计时器超时,该过程回到连接状态并且重置ConnectRetry计时器。它同样也发起一个到对等的TCP连接并且继续监听来自对等得连接。如果邻居试图与一个未知的IP 地址建立TCP会话,那么ConnectRetry计时器会被重置,连接被拒绝并且本地过程保持在激活状态。任何一个输入事件(除了开始事件,在激活状态下该事件会被忽略)都会导致状态转移为空闲。
4 发送Open消息状态
在这种状态下,已经发送了Open消息,BGP正在等待从邻居发来的Open消息。当收到一个Open消息后,检查该消息的所有字段。如果发现了差错,会给它的邻居发送一个Notification消息并且将状态转移到空闲。
如果再接收到的Open消息种没有发现差错。BGP给邻居发送一个KeepAlive消息,并且将KeepAlive计时器置位。邻居之间协商一个Hold时间,他们会选用较小的值。如果协商的Hold时间是0,则没有启动Hold和KeepAlive计时器。根据对等的AS号,决定该连接是内部的还是外部的,并且将状态转移到Open消息确认。
如果收到了一个TCP断开消息,本地过程断开BGP连接,重置ConnectRetry计时器,开始监听将要由邻居发起的新的连接并将状态转移到激活。任何一个输入事件(除了开始事件,在激活状态下该事件会被忽略)都会导致状态转移为空闲。5 Open消息确认状态
在这种状态下,BGP过程会等待一个KeepAlive或者Notification消息。如果收到KeepAlive消息,转移到已建立状态。如果收到Notification消息或者TCP断开消息,状态转移到空闲。
如果Hold计时器超时,检测到一个差错或出现一个stop事件,BGP过程会给邻居发送一个Notification消息并且断开BGP连接,将状态转向空闲。6 已建立状态
在这种状态下,BGP对等之间的连接完全建立起来了,对等之间可以交换Update、KeepAlive、Notification消息。如果收到Update或者KeepAlive消息,重新启动Hold计时器(如果协商的Hold时间是非零)。如果收到Notification消息,状态会转移到空闲。任何其他的事件都会导致Notification消息的发送并将状态转移到空闲。
BGP建立邻居后,会通过相互发送类似hello包的数据来维持邻居关系,这个数据包称为KeepAlive,默认60秒发送一次,holdtimer为180秒,即到达180秒没有收到邻居的KeepAlive,便认为邻居丢失,则断开与邻居的连接。KeepAlive发送时间间隔的推荐值为Hold计时器值饿1/3,最小为3秒。
BGP Update 消息处理
Update消息仅仅在建立状态被接收。当一个UPDATE消息被接收,每一个域要有效性检查。
如果可选的非转发的属性不认识,默认丢弃。如果可选转发属性不认识,属性标志字节 设置部分位(第三个高位顺序位),保留属性公告到别的BGP Speaker。如果可选的属性被认识,而且值有效,要根据可选参数的类型在本地处理,保留,如果必要的话,更新广播到别的BGP发言者。
如果UPDATE消息包括非空的WITHDRAWNROUTES域,先前广播的路由如果目的地包括在这里面需要从Adj-RIB_IN中移出来。BGPSpeaker应该运行决策过程,原因是先前的公告路由不再可用。
如果UPDATE消息包括了一个可用的路由,应该放在相应的Adj-RIB_IN内部,同时做下面的步骤:
① 如果网络层可达信息(NLRI)和Adj-RIB_IN的路由一样,新路由应该替换老路由,这样明确撤销了老路由的服务。BGP发言者运行决策过程,原因是老路由不再存在。
②如果新的路由重叠包含在Adj-RIB-IN老路由内部,BGPSpeaker应该运行决策过程,因为更特殊路由使得原来的更不特殊路由的一部分不可用了。
③如果新路由有和Adj_RIB_IN内包含的路由同样的路径属性,并且更特殊。不需要做任何事情。
④如果新路由的NLRI不同于Adj-RIB-IN存储的任何路由,新路由应该放入。BGP发言者应该运行决策进程。如果新路由是更不特别的重叠路由,BGP发言者应该运行对更不特殊的路由运行决策进程。
Ⅰ 决策过程
决策过程选择路由用于下一步的通告,方法是应用本地策略信息库(PIB)的策略处理Adj-RIB-IN中的路由。决策过程的输出是广播到对端的路由集合;被选的路由存储在Adj-RIB-Out中。选择过程可以定义为一个函数,给定路由的属性作为参数,返回非负的整数指示路由的优 先级别。计算路由优先级别的函数不能把以下的情况作为输入:别的路由的存在,别的路由的不存在,或者别的路由的路径属性。路由选择对每一个可用路由运用优先程度算法,选择最高优先程度的路由。
决策过程操作Adj-RIB-IN包括的路由中,同时负责:-选择路由通告到本地的AS中别的BGP发言者-选择路由通告到邻居AS中的BGP发言者-路由聚合和路由信息简化
决策过程分三期,通过不同的事件触发。
⑴一期负责计算来自邻居AS的BGP发言者的每条路有的优先级,通告到在本地AS的 别的BGP发言者到每个确定的目的地的具有最高优先级的路由。⑵二期在一期完成的时候激活。负责从到达目的地的所有路由中选择最好的路由,同时安装每个选择的路由到相应的LOC-RIB。⑶在LOC-RIB修改后激活三期。负责发布LOC_RIB中的路由到邻居AS的每个对端。路由聚合和信息简约在这期可选的执行。PHASE1: 优先级的计算
无论何时本地的BGP发言者接受到邻居AS的对端的通告新的路由,替代路由,测销路由的UPDATE消息,都要激活一期决策过程,一期决策过程是独立的过程,当没有别的工作要做的时候就停止。一期决策功能在操作任何包含路由之前锁定Adj-RIB-IN,在操作完成所有新的或者不可用的路由之后,解开Adj-RIB-IN。每一个新收到或者替代的可用路由,本的BGP发言者应该确定一个优先级。如果路由是通过本地AS的BGP发言者学习到的,或者LOCAL-PREF值被当作优先级,或者本地系统应该根据预先配置的策略信息计算路由优先级。如果路由通过邻居AS中的BGP发言者学习,优先级的计算是根据预先配置的策略。策略信息的确切特性和相关计算是本地的问题。本的发言者应该云内部更新过程选择并且通告最佳路由。PHASE2: 路由选择
第二期决策函数在第一期完成后激活。第二期函数是独立的过程当没有更进一步的工作要做的时候就停止。第二期进程要考虑ADj_RIB_IN中的所有路由,包括从自己的AS中和邻居的AS中的BGP发言者接收的路由。当运行第三期决策函数,第二期决策函数可以阻塞。第二期距测函数应该在开始函数前锁定所有的Adj-RIB-IN,在完成后解开所有。
如果BGP路由的NEXT-HOP属性描述了一个地址,在本地LOC-RIB中BGP发言者没有路由,BGP发言者应该排除在第二期决策函数外面。
为了ADj_RIB_IN中的路由的每一个目的地集合,本地BGP发言者以确定路由: A)对同一个目的地集和,最高优先级的路由,或者 B)是唯一的到目的的地路由,或者 ⑶是第二期解扣规则的选择结果。
本地发言者应该安装路由到LOC-RIB中,替代LOC-RIB中保存的任何道相同目的地的路由。本地发言者必须根据选择路由的NEXT-HOP属性确定立即下一跳,通过查找IGP悬着IGP中的可能的路径。当安装选择路由在LOC_RIB中,立即下一跳必须被使用。如果NEXT-HOP属性描述的地址改变,路由选择应该按照上面的说明重新计算。不可用的路由应该从LOC-RIB中拿出,相应的不可用路由应该从Adj-RIBs-IN拿出。解扣
在Adj-RIBs-IN中一个BGP发言者可以有多个有相同的优先级的路由到同一个目的地。本的发言者可以选择包含在相应LOC-RIB中的一条路由。本地发言者认为所有的路由,不论是邻居AS的BGP发言者的路由,还是本地AS的BGP发言者的路由是一样的。
下面的解扣过程假设一个自治系统的所有AS的每一个候选路由能够确定到NEXT-HOP属性描述的地址的路径代价(内部距离)。根据下面的算法解扣。A)如果本地系统配置考虑MULTI_EXIT_DISC,候选路由的MULTI_EXIT_DISC属性不同,选择MULTI_EXIT_DISC属性值最小的。
B)否则,选择到路与欧的NEXT-HOP属性描述的入口的代价(内部距离)最小的。如果有几个路由有相同的代价,按照下面的过程解扣
-如果最少有一个路由是通过邻居AS的BGP发言者通告的,选择邻居AS的BGP发言者通告的鲈鱼哦,如果BGP的标示符的值是所有邻居AS的BGP发言者中最小的。-否则,选者BGP标示符最小的BGP发言者通告的路由。PHASE3: 路由分发
第三期路由决策过程可以被第二期的完成激活,或者下面的事件发生: A)LOC-RIB中的到本地目的地的路由改变。
B)当本地产生的通过BGP以外的方式学习的路由改变。C)当新的BGP发言者-BGP发言者连接建立。
第三期函数是独立的过程当没有进一步的工作去做的时候停止。第三期路由决策过程应该被阻塞,如果第二期决策过程在运行。
所有的LOC-RIB中的路由应该被处理到相应的到Adj-RIBs-Out的入口。路由聚合和信息简约技术可选执行。为了更好支持未来的AS间多播能力,参加AS间多播路由的BGP发言者应该通告他从外部对端收到的路由同时如果安装在Loc-RIB内,因该通告到接收路由的对端。对没有参加AS间多播路由的BGP发言者这个通告是可选的。如果做这样一个通告,NEXT-HOP属性应该被设置为对端地址。应用可以优化这个通告,组合AS-PATH属性的信息不但包括自己的AS号码而且通告路由的对端的AS号码(这个组合要求ORIGIN属性被设置为INCOMPLETE)。另外,应用不需要传递可选的或者自决的路径属性在这种通告中。
当Adj-RIBs-Out更新而且转发信息库(FIB)完成,本地BGP发言者应该运行外部更新进程 路由覆盖
BGP发言者可以传送具有重叠的网络层可达信息(NLRI)的路由到别的BGP发言者。NLRI重叠产生于一些列目的地对非匹配的多个路由是唯一的。由于BGP使用IP前缀对NLRI编码,重叠一般要展示子网关系。路由描述了更小范围的目的地(更长的前缀)称为更特别路由,路由描述了更大范围的目的地(更短的前缀)成为更一般路由。反之同样。这种优先关系有效分解了更一般路由为两部分: -一系列目的地,仅仅使用更一般路由描述。
-一系列路由,使用更一般和更特殊路由的重叠描述。当重叠路由发生在同样的Adj-RIB-IN,更特殊的路由应该有优先权,顺序是更特殊到更一般。重叠描述的目的地的集合表明一部分更一般路由是可用的,但是当前不可用。如果一个更特殊的路由后来撤销了,重叠描述的目的地的集合将可以使用更一般的路由到达。
如果BGP发言者接收了重叠路由,决策过程应该考虑重叠路由的语义。特别是,如果BGP发言者接收了同一个对端的更一般的路由同时拒绝了更特殊的路由,那末重叠表示的目的地可能不转发到路由的AS-PATH属性列出的AS那里。因此,BGP发言者可以由下面选择:
a)同时安装更一般和更特殊的路由 b)只安装更特殊的路由
c)只安装更一般路由的非重叠部分(这意味着解聚和)d)聚合着两条路由同时安装聚合路由 e)安装更一般的路由 f)都不安装
如果一个BGP发言者选择e),应该加入ATOMIC-AGGREGATE属性到路由中。承载ATOMIC-AGGREGATE属性的路由不能被解聚和。也就是说,路由的NLRI不能被是更特殊。向这个路由转发不保证IP 包实际沿着路由的AS-PATH属性列出的AS中转。如果BGP发言者选择A),必须不在通告更特殊的路由的时候通告更一般的路由。
ⅡUpdate发送过程
Update-SEND进程负责通告UPDATE消息到所有的对端。例如,他发布决策进程选择的路由到位于同样的自治系统或者邻居自治系统的BGP发言者。不同自治系统的BGP发言者之间信息交换的法则.相同自治系统的BGP发言者之间信息交换的法则. 在BGP发言者集合之间的路由信息的发布,所有BGP发言者如果在同一个自治系统,称为内部发布。内部更新
内部更新进程是发布路由信息到本地自治系统的BGP发言者。
当BGP发言者从在本地自治系统的别的BGP收到了UPDATE消息,接收BGP发言者不应该再分配UPDATE消息中的路由信息道别的本地自治系统的BGP发言者。当BGP发言者接收了邻居自治系统的BGP发言者的一条新的路由,如果下面的情况之一发生,应该使用UPDATE消息通告路由到本的自治系统的所有的BGP发言者:
1本地BGP发言者安排给新接收的路由的优先程度高于本地发言者已经安排的接受自邻居自治系统的别的路由的优先级
2没有接收到别的邻居自治系统的BGP发言者发送的路由 3新接收路由是几个最高优先级,同样目的的的路由解扣的结果,当BGP发言者受到了UPDATE消息,有非空的WITHDRAWNRJOUTES域,应该从Adj-RIB-IN里去掉所有的在这个域中(IP前缀表示)的目的地。发言者应该做下面的附加步骤:
1如果相应的可用路由先前没有被通告,不需要做更多的行动。2如果相应的可用路由先前被通告,那末:
I 如果被选择通告的新的路由和不可用路由有相同的网络层可达信息,本的系统因该通告替代路由。
II 如果替代路由不能用于通告,BGP发言者应该包括不可用路由的目的的(IP 前缀形式)在UPDATE消息的WITHDRAWNROUTES域,因该发送这个消息到先前通告了相应的可用路由的对端。所有的通告过的可用路由因该放入相应的Adj-RIBs-Out,所有不可用的但是通告过的路由应该被从Adj-RIBs-Out清除。解扣(内部更新)
如果一个本地的BGP发言者连接到邻居AS的几个BGP发言者,有多个Adj-RIBs-IN和这些对段相关联。这些Adj-RIB-IN可以包括到同一个目的的的多个等价优先级的路由,所有的路由要通告到邻居自治系统。本的BGP发言者应该根据下面法则选择其中一条路由:
A)如果候选路由的NEXT-HOP和MULTI-EXIT-DISC属性不同,本地系统配置中考虑了MULTI-EXIT-DISC属性,选择有最低的MULTI-EXIT-DISC属性的路由。
B)如果本的系统能够确定候选路由中T-HOP属性描述的实体的路径的成本,选择成本较低的路由。
C)在所有别的情况中,选择通告路由的BGP发言者具有较低的BGP标示符的路由。外部更新
外部更新过程和邻居AS的BGP发言者路由信息的发布有关。作为阶段3选择过程的一部分,BGP发言者更新他的Adj-RIBs-Out和转发表.所有新的安装的路由和所有新的没有替代路由的不可用的路由要通过UPDATE消息通告到邻居AS内部的BGP发言者。
任何位于LOC-RIB的路由,如果是不可用的应该被撤销。在自己的AS内部如果可达地址改变应该发送UPDATE消息。控制路由流量开销
BGP协议限制路由流量(也就是UPDATE消息),目的是减少通告UPDATE消息的带宽和消化UPDATE消息信息的决策过程的处理能力。⑴ 路由通告的频率
参数MinRouteAdvertisementInterval确定了BGP发言者到特定目的地的两个路由通告之间的最小时间。这个速率限制过程是基于单个目的地的,但是这个MinRouteAdvertisementInterval值是对每一个对端设置的。
从单个BGP发言者通告可用路由到目的地集合的来自BGP发言者的两个UPDATE消息必须至少分离MinRouteAdvertisementInterval.无疑, 只有精确保持目的地集合的计时器才能做到这一点。这是不现实的开销。任何保证BGP发言者接受自邻居AS通告的两个UPDATE消息之间时间间隔的技术通告可用路由到目的的地最小间隔是MinRouteAdvertisementInterval,也要保证大于间隔的一个常量是可以接受的。
由于需要在AS内部快速收敛,本过程不能用于从本AS中别的BGP发言者发来的路由。为了避免永久黑洞,本过程不能用于明确的撤销或者不可用路由(也就是,目的地(通过IP 前缀表示)在UPDATE消息中WITHDRAWNROUTEST域的路由)。这个过程不限制路由选择的速率,但是仅仅限制路由通告的速率。当等待MinRouteAdvertisementInterval溢出时,如果新的路由被选择多次, 在MinRouteAdvertisementInterval的最后最后选择的路由被通告.⑵ 路由产生的速率
参数MINASORIGINATIONINTERVAL确定了在BGP发言者本身的AS,中报告变化的UPDATE消息的连续通告的最小间隔 JITTER
为了减少给定的BGP发言者的BGP消息产生尖峰,jITTER应该被使用于MINASORIGINATIONINTERVAL, KeepAlive,MinRouteAdvertisementInterval计时器.给定的BGP发言者应该应用同样的jITTER数量,无论UPDATE被送到那个目的地;也就是说,jITTER不能被基于“每个对端” 使用。
引入的JITTER的数量使用相应的计数器的基本值乘以一个范围是0。75到1的随机因子。
路由信息的有效组织
选择将要广播的路由信息,一个BGP发言者可以采用几个方法,组织信息为一个有效形式。①信息简约
信息简约可以在策略控制的程度上使用简约-在信息崩溃之后,相同的策略在等价类上使用在所有的目的地和路径。
决策进程使用下面方法可选的减少放在ADj-RIB_Out中的信息数量: A)网络层可达信息(NLRI)
目的IP 地址可以被看作IP 地址前缀。若地址结构和在AS管理者控制下的系统能够达成一致,有可能减少UPDATE消息中NLRI的尺寸。B)AS_PATHS(AS路径): AS路径信息可以表达为顺序AS-SEQUENCE和无序AS-SET。S-SET可以用在路由聚合算法,描述在9。2。4。2中。他们减少了AS-PATH的尺寸,通过只列出每个AS号码一次,无论在聚合的AS-PATH上出现了几次。
一个AS-SET意味着NLRI列出的目的地能够通过由AS-SET中的部分AS组成的路径到达。AS-SET提供有效的信息来避免回环;然而使用他们可能会剪除一些潜在的有用路径,原因是一些路径不再被单独通过AS-SEQUENCE的方式列出。实际使用中这不是个问题,应为一旦IP 报到达AS组的边界,这个点上的BGP发言者更可能有更多的详细路径信息并能够区分到目的地的路径。②聚合路由信息
聚合是一个过程用来组合几个不同的路由来广播一个单独的路由。聚合作为决策的一个部分发生,这样可以减少放在AjD_RIBS_Out中路由信息的数量 聚合减少了BGP发言者存储并且和别的BGP发言者交换的路由。路由聚合使用下面的独立于期望类型的路径属性和网络层可达信息的过程。
有下面属性的路由不能被聚合。除非相应的属性是唯一的MULTI_EXIT_DISC, NEXT_HOP.具有不同类型码的路径属性不能被聚合在一起.一些类型码的路径能够被聚合,使用下面的规则: ORIGIN属性:如果最少一个被聚合路由它的ORIGIN指示INCOMPLETE,聚合路由ORIGIN的属性值是IMCOMPLETE.否则,如果最少一个路由的属性是EGP,聚合路由的属性是EGP.在所有别的情况下ORIGIN属性是INTERNAL.AS-PATH属性:如果路由聚合有单一的AS-PATH属性,聚合的路由有同样的AS-PATH属性.为了聚合路由属性,我们建模AS-PATH属性作为二元组<类型,值>,”类型”定义了路径段的属性(比如AS-SEQUENCE,AS_SET),”值”定义了AS号码.如果路由被聚合有不同的AS-PATH属性,聚合的AS-PATH属性应该满足:-所有在聚合AS-PATH的AS-SEQUENCE二元组应该在最早的路由集的AS-PATH中都出现.-在聚合的AS-PATH中AS-SET类型的所有的二元组应该出现在最少一个AS-PATH类型中(可以出现为AS-SET或者AS-SEQUENCE)。
-在聚合AS-PATH中任何类型AS-SEQUENCE的二元组X领先于Y,在初始的AS-PATH中,X在每一个AS-PATH中领先于Y,不论Y的类型。
-在AS-PATH中不能由同一个二元组具有相同值却出现了两次,不论二元组的类型。应用可以选择任何算法只要符合这些规则。最少的一个构造应用应该能够执行下埋嗯的算法来满足所有的条件。
-确定最长的对所有的聚合AS-PATH属性来说的二元组序列(如上定义)。把这个序列作为聚合后的派头AS-PATH属性序列。
-设置剩下的AS-PATH属性二元组为AS-SET,把他们加入到AS-PATH后面。-如果聚合AS-PATH属性有多个相同的二元组(不论二元组的类型),清除所有的,只留下一个通过去掉AS-PATH属性中的AS-SET类型。
ATOMIC_AGGREGATE: 如果最少一个路由有这个路径属性,那末聚合后的路由应该有这个属性。
AGGREGATOR: 聚合者属性应该被忽略。路由选择标准 总的来说,在几个可替代路由中比较路由的额外法则是在本文讨论问题之外的。有两个例外。-如果新路由中AS路径出现了本地AS,新路由不能被看作比别的路由更好的路由。如果使用这样的一个路由,路由环路会发生。
-为了成功实现发布操作,只有具有稳定可能性的路由被选择。这样,一个AS必须避免使用不稳定的路由,必须不使路由自发选择快速改变。前面句子中“不稳定”和“快速”的名词量化需要经验,但是原理是清楚的。产生BGP路由
一个BGP发言者可以通过某些方式(比如通过IGP)获得的注入BGP的路由信息产生BGP路由。BGP发言者产生BGP路由应该通过决策进程来安排路由的优先级别。这些路由可以被发布到别的在本地AS的BGP发言者作为内部更新进程的一部分。在一个AS内部决定是否发送非BGP获得的路由,取决于AS内部的环境(也就是IGP类型)而且可以通过配置来控制。
BGP路径属性
每个路径属性由1字节的属性标志位,1字节的属性类型,1或2字节路由属性长度和路径属性数据组成。
属性标志位:
位0:0表示此属性必选,1表示此属性可选。
位1:0表示此属性为非过渡属性,1表示此属性为过渡属性。
位2:0表示所有属性均为路由起始处生成,1表示中间AS加入了新属性。
位3:0表示路由属性长度由1字节指示,1表示由2字节指示。
位4至位7:未用置0
位0和位1标识了BGP的4类路由属性:
-(01)公认必选:BGP的UPDATE报文中必须存在的属性。它必须能被所有的BGP工具识别。公认必选属性的丢失意味着UPDATE报文的差错。这是为了保证所有的BGP工具统一于一套标准属性。
-(01)公认自决:能被所有BGP识别的属性,但在UPDATE报文中可发可不发。
-(11)可选过渡:如果BGP工具不能识别可选属性,它就去找过渡属性位。如果此属性是过渡的,BGP工具就接受此属性,并把它向前传递给其它BGP路由器。
-(10)可选非过渡:当可选属性未被识别,且过渡属性也未被置位时,此属性被忽略,不传递给其它BGP路由器。
路由属性类型:
⑴ORIGIN(TYPECODE = 1,公认必选属性)
指示此路由起始类型:
⑵AS_PATH(TYPECODE = 2,公认必选属性)
AS路径属性由一系列AS路径段(SEGMENT)组成。每个AS路径段为一三元组<路径段类型,路径段长度,路径值>。
路径类型有:
路径段长度用1字节表示AS号的数量,即最长为255个AS号。
路径值为若干AS号,每个AS号为2字节。
⑶NEXT_HOP(TYPECODE = 3,公认必选属性)
此属性为UPDATE消息中的信宿地址所使用的下一跳。
⑷MULTI_EXIT_DISC(TYPECODE = 4,公认自决属性)
简称MED属性。为一4字节无符合整数。它在AS区域间传播,用来帮助一个其它AS区域的BGP伙伴选择进入本AS区域的人口。
⑸LOCAL_PREF(TYPECODE = 5,公认自决属性)
本地优先级属性。为一4字节无符合整数。它在AS区域内传播,用来帮助一个本AS区域内BGP伙伴选择进入其它AS区域的出口。
⑹ATOMIC_AGGREGATE(TYPECODE = 6,公认自决属性)
元聚合属性。长度为零。它表示本地BGP在若干路由中选择了一个较抽象的(LESSSPECIFIC)路由,而没有选择较具体(SPECIFIC)的路由。
⑺AGGREGATOR(TYPECODE = 7,可选过渡属性)
聚合者属性。长度为6字节,分别为最后进行路由聚合的路由器的AS号(2字节)和IP 地址(4字节)。
第三篇:网络组建IP协议
网络组建IP协议
IP协议是Internet中的交通规则,接入Internet中的每台计算机及处于十字路口的路由器都必须熟知和遵守该交通规则。IP数据包则是按该交通规则在Internet中行使的车辆,发送数据的主机需要按IP协议装载数据,路由器需要按IP协议指挥交通,接收数据的主机需要按IP协议拆卸数据。IP数据包携带着地址、满载着数据从发送数据的端用户计算机出发,在沿途各个路由器的指挥下,顺利到达目的端用户的计算机。
IP协议主要负责为计算机之间传输的数据报寻址,并管理这些数据包的分片过程。该协议对投递的数据报格式有规范、精确的定义。与此同时,IP协议还负责数据报的路由,决定数据报发送到哪里,以及在路由出现问题时更换路由。总之,运行IP协议的网络层可以为其高层用户提供的服务具有如下3个特性:
不可靠的数据投递服务。IP协议本身没有能力证实发送的数据报是否能被正确接收。数据报可能在遇到延迟、路由错误、数据报分片和重组过程中受到损坏,但IP不检测这些错误。在发生错误时,也没有机制保证一定可以通知发送方和接收方。 面向无连接的传输服务。IP协议不管数据报沿途经过哪些节点,甚至也不管数据报起始于哪台计算机,终止于哪台计算机。数据报从源始节点到目的节点可能经过不同的传输路径,而且这些数据报在传输的过程中有可能丢失。有可能正确到达。 尽最大努力投递服务。IP协议并不随意的丢失数据报,只有当系统的资源用尽、接收数据错误或网络出现故障等状态下,才不得不丢弃报文。
第四篇:互联网之IP协议
Internet(国际互联网)互联的软件基础─协 议
主讲人:邓本胜 江油市教师进修学校教师 Email:jy-dbsh@163.com 电话:*** 0816-3233119(办)QQ:11173648
2005-03-17
9.4 Internet 协议 IP 国际互联网—Internet是一个国际间包括各种计算机网络的一个巨大互相联接起来的网络,要把这不同的网络联接起来,要在两个方面互相连接起来,一是物理联接,它包括网卡、网线、路由器等,这些设备将网络上的各计算机在物理上互相联接起来,但这样联接起来后,这些计算机并不能相互访问,要让这些计算机能够互相访问,还必须让这些相互联接的计算机使用同一种交流的标准,相互之间才能实现正常的通信,这便是互联网计算机互联的软件基础,IP协议及TCP协议。
IP协议的概念:
通信协议:是对两台计算机用以交换信息所使用的公用语言规范的约定。
.1.计算机通信协议精确地定义了通信的约定。如,协议规定每台计算机所发送的每个信息的精确格式和含义。协议也规定每台计算机在哪些情况下应该发送特定的信息,以及当一个信息到来时,一台计算机应该作出怎样的响应。
IP协议,在Internet中所使用的一种专用,也是关键的网际协议,这个协议在英文中写为:Internet Protocol,这个协议我们缩写为 IP,这便是 IP协议。
IP协议非常详细地定义了一个计算机通信所遵循规则的具体细节。IP精确地定义了分组必须怎样组成,以及路由器必须怎样将一个分组递交到它的目的地。
从上说明,我们知道 IP实际上规定这样两件事情:一是相互联接的计算机对数据包的处理方式以及这些数据在网络中流动的路径说明:从何而来,至何处是目的地。
那么大家可能要问:这些数据在互联的网络中如何确保在传输中数据不会丢失呢?这又靠什么来保证呢,在 9.6节中我们还会谈到另一个协议。
连接到 Internet上的每台计算机都必须遵守网络协议的约定。每台计算机产生的分组都必须按照 IP所定义的格式。计算机接收到的分组仍然是 IP格式的源发送分组的一个拷贝。进一步而言,Internet中的每个路由器在将分组从一个网络向另一个网络递交时,都希望这些分组为 IP格式。
计算机需要有 IP软件才能在 Internet上通信,因此使用Internet的每台计算机都必须运行 IP软件。此软件在 Windows系统中一般中一个名为 Tcpip.sys的系统驱动软件,在配臵网络时系统装入。
.2.9.5 IP地址
根据 IP协议的规范,Internet上的分组称为 数据报,用以和其它网络中的分组相区别。
在日常管理中,像一个班级,我们对每一位同学要编一个号,叫学号,这个同学其本身还有一个姓名,叫名字。在 Internet上的计算机呢,也必须有名字和编号,这里的编号便是地址,即是说为了使数据报的路由选择和传递成为可能,连接到 Internet上的每台计算机都必须指定一个唯一的地址。Internet所用的地址是一些数字。每台计算机在通信之前必须知道对方计算机的地址。每台计算机被指定唯一的数据成为它的 Internet地址,通常简称为 IP地址。
Internet上的每台计算机,包括路由器在内,通信之前都有一个指定的IP地址。当一个企业或组织申请加入 Internet时,它要从 Internet的管理机构获得一组属于本组织使用的计算机的 IP地址。当该组织又有新的计算机要接入 Internet时,该组织即可指定一个地址给它。
Ip地址的表示方法。通常计算机用四个称为字节的二进制单位存储 IP地址。尽管确切的内部格式并不重要,但它有助于 IP地址的理解。只是当某个应用程序需要向用户显示 IP地址,或用户需要向一个应用程序输入自己的 IP地址时,该二进制地址就要以一种人们易于理解的格式表示。因此人们一般是以 “.”分隔成四个十进制数字表示。即 xxx.xxx.xxx.xxx的形式,这里 x表示 0至 255这些十进制数字。实际的如 202.112.7.13是一台计算机的 IP地址,而另一台可能是:192.5.48.3。
.3.在计算机中怎样查询 IP地址呢?
分两种情况,在 Windows 98(Me)操作系统中,可以在用鼠标单击“开始”,“运行”,然后输入“Winipcfg /all”命令,回车后在弹出的窗口中有明确的显示。
在 Windows 2000、Windows XP、Windows 2003等操作系统中,可以在命令行中输入“Ipconfig /all”命令查到 IP地址。具体方法是单击“开始”,点“运行”,输入“Cmd”回车后,进入 Windows 2000的命令行窗口(即一般所谓 Dos窗口),输入“Ipconfig /all”回车。
以上这两种方法很有实用价值,这两种方法严格地说是通过运行了两个程序(Winipcfg.exe、Ipconfig.exe)实现查看 IP地址的。
如何检查两台计算机是否连通呢?
这又是通过另一个程序Ping.exe来检查的。此程序也是在 Windows的命令行窗口输入执行。
IP地址所涉及的知识很多,普通用户一般可以不可更多了解,只是我们必须明确一点,在 Internet中 IP地址不是随机指定,而是有严格规定的,其它有许多专门的约定,即某些地址有专门的用处。
像 192.168.0.1是专门用来指定某一局域网络的。像 127.0.0.1是专指某台计算机本身的。
其次,IP地址要求凡在同一个网络中的所有计算机要有相同的地址前缀。之所以选择这样的地址指定策略,是为了保证 Internet中 IP数据报路由选择的效率。
大家可能要问:按照 IP地址的规范,共分四个小节,每台可取 0至 255
.4.这256个数字,四节这样的数字包含 256×256×256×256 = 4294967296台计算机,当然,这当中还有许多是不能用的,但不管怎样说,这种方案可以表示的计算机数量是有限的。随着世界范围内计算机数量的增加,可能到某一天会超出这个数据,到那时,这多出来的计算机便有可能不能联入 Internet。怎么办呢?
于是人们又提出了一种方案:这个数量的计算机我们用来表示局域网络的数量,即一台这样的计算机可以认为是某一个局域网络内的一台服务器,在此局域网络内又有若干台计算机,怎样区分它是一个局域网络的服务器呢?人们提出了子网的概念,用子网掩码来分割。这其中涉及一个网关的概念。
这里涉及了太多的内容,不是我们这种公共学科所能讲明白的,在计算机专业的相关课程里会有更加深入的介绍。同时我们也还要明白,即使将目前的 IP地址采取刚才所说的分割的办法也不能完全解决未来可能出现的计算机数量的增加的矛盾。现在人们已经提出了一种扩充 IP范围的方法,以保证未来随着计算机数量的增加,IP地址是足够使用的要求。
还有一个问题便是:使用这样的 IP地址来规定计算机的编号,我们在 Internet上浏览、访问其它计算机时,均要输入对方计算机的 IP地址编号,它要求我们必须记住对方的 IP地址,这成百上千的计算机我们又如何来记它们的 IP地址呢?显然这是不现实的,所以在互联网上实际上我们是输入对方计算机的名字来确认的,这部分内容在教材的 9.9节中讨论。即域名和域名服务器,计算机相互之间的识别、联接是根据 IP地址的规定来实现的,怎样将计算机的名字转化为 IP地址呢,这是域名服务器的作用,它是这一
.5.过程中的翻译。
9.6 传输控制协议
我们再来看看 IP协议,它规范两件事情:一是对 Internet上的计算机编号,即地址;二是对 Internet上的计算机通信时所遵循的数据分组进行规范。我们知道两台计算机要交换数据时,往往数据量是很大的,而这种大数据量不可能在一个传输周期内传送完毕,那么系统在传输时,便要将数据分割成一个小数据块(数据包),每一次仅传输一小块,一小块一小块地传输,直至所有的小块传送完毕。
请问这当中会不会发生这些小块在传送的过程中可能丢失的现象呢?这是显然的。比如,如果有很多计算机在同一时刻发送数据,Internet可能会出现超出其流量限制。当计算机发送的数据报比 Internet所能处理的数据报多时,路由器不得不丢弃到来的某些数据报。
IP协议及 IP软件不检测这种数据报的丢失情况。为了处理这些通信过程可能出现的问题,计算机采用另一个基本的传输控制协议 TCP(Transmission Control Protocol)。Tcp的功能是去掉重复数据,保证精确地按原发顺序重新组装数据报,并且在数据报发生丢失时重发数据。
解决数据报丢失的问题特别困难,因为数据报的丢失可能在传输过程的各个环节发生。TCP采用确认和超时机制处理数据报的丢失问题。除非确认在超时之前到达,否则发送方将重新发送数据。Tcp的超时机制在 Internet上工作得很好,Tcp自动根据目的计算机离源计算机的远近来自动修改超时值。
.6.Internet的结构相当复杂,一个传送过程中的数据报可以经由多条路径到达目的计算机。当路由器开始沿另一条新的路径传送数据报时,就好像高速公路上的汽车在前方出现问题时会绕道而行一样。结果由于路径的变化,一些数据报会以一中它们发送时同的顺序到达目的地。Tcp能自动检测到来的数据报,并且将它们按照原来的顺序调整过来。同样,网络硬件故障有时会导致重复的数据报,结果一个数据报的多个副本可能都会到达目的地。Tcp能够自动检测重复的数据报,而且只接受最先到达的数据报。
TCP协议的概念:
它是一种在 Internet上专门用来控制 IP数据报传送的通信协议。因此一般将它称为传输控制协议。其控制的实现是这样的:
一台计算机上的程序指定一个远程程序并发出连接呼叫,被呼叫的程序必须应答。一旦连接建立,两个程序就能够相互发送数据。最后,当程序停止运行时,双方终止对话。因此,TCP协议及软件使 Internet网上的通信类似于电话的交流方式,一旦两个程序建立了连接,它们就可以在交换任意大小的数据报后再结束通信。
大家可能要问,TCP怎样来检测重复的丢失的数据报呢?实际上 IP协议已经规定了数据报的标准,以TCP处理后对这些数据报进一步包装,即 TCP在每个数据报中都赋于了一个数据报的标识,接收方可以用到收的数据报的标识与到来的数据报的标识进行比较,如果是重复的数据报到来,接收方将不予理睬。与此相同检测丢失的数据报也是一样,接收方收到了某数据报的标识,而到来的数据报中的标识没有同样的,则说明传输过程中丢失了数据报。
.7.TCP又是怎样恢复丢失的数据报呢?
解决的方法是采用时钟和确认机制。无论何时,当数据报到达目的地时,接收端的 TCP软件就向源计算机发回一个确认信息,声明哪些数据报已经到达,发送方根据确认信息来保证所有数据报都能到达目的地。每次当 TCP软件发送数据时,就同时启动一个时钟程序。一旦超时,它就会通知 TCP。如果确认数据报在超时之前已经到达,TCP就取消这一计时器。反之,则向源计算机报告数据丢失,请求重新发送相关数据报。
只是说,这些过程均是以电子的形式来进行的,速度很快,我们感觉不到。
小结:在 Internet上一是通过 IP协议来规定计算机的地址以及数据报的规范标准,二是通过 TCP协议来控制数据报的传输,经过这两个协议的规范、控制让各计算机相互实现了通信和数据交换。
.8.
第五篇:线路转让协议
线路转让协议
今由***自愿将其名下动力线路一条所有物权转让给**有限公司,但保有其自用抽水线路及使用权。转让费为:**元整。**公司负责线路改造及管理工作,双方电费各自承担。
***继续履行电力部门原要求的相关职责。
转让方:受让方:
见证方:
年月日