




已阅读5页,还剩66页未读, 继续免费阅读
(计算机软件与理论专业论文)基于linux系统的边界网关协议的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西南交通大学硕士研究生学位论文第1 页 摘要 i n t e m e t 是一个由多个自治系统相互连接构成的网络,b g p 协议就是一 种应用在基于t c p i p 网络的多个自治系统间交换网络层可达性信息的路由 协议,研究b g p 协议对i n t e r a c t 的发展有着重要的意义。 本文使用l i n u x 操作系统提供的t c p i p 协议栈设计并实现了一款b g p 协议路由软件。该路由软件主要包含两个子系统,一个是b g p 子系统,用 于运行b g p 协议;另一个是r m e r 子系统,用于读取和更新l i n u x 内核路由, 同时将内核信息通过r m e r 报文发送给b g p 系统。 b g p 系统中实现了b g p 邻居关系的建立、b g p 路由通告、b g p 路由聚 合、b g p 路由重分配、b g p 路由属性的管理和b g p 有限状态机等。b g p 系 统和r m 子系统间使用基于l i n u x 系统本地的t c p 连接进行通信,r m e r 系统和l i n u x 内核之间使用入输出控制接口进行通信。b g p 系统和r m e r 系 统共同使用阿模块解析和处理用户输入的命令行。总系统中采用了虚拟 线程管理机制,共有6 种类型的线程,r e a d 类型线程用于读操作,w r i t e 类型线程用于写操作,t i m e r 类型线程用于处理超时事件,e v e n t 类型线 程用于处理b o p 状态机事件,r e a d y 类型表示准备就绪可以被调度的线程, u n u s e d 类型表示空闲的线程。 在系统设计过程中,利用l i n u x 系统强大的网络功能,充分使用了模块 化的设计方法,便于b g p 功能的扩展和新协议的增加。对该b g p 路由软件 测试的结果表明,本文设计的基于l i n u xt c p i p 协议栈的b g p 协议实现了 b g p 协议的主要功能,能够稳定地运行,具有一定的学术科研价值和商业价 值。 关键词:b g p :l i n u x ;t c p i p ;协议;路由 西南交通大学硕士研究生学位论文第页 a b s t r a c t i n t e m e ti sak i n do fn e t w o r kc o n s i s t so fm u l t i p l ei n t e r c o n n e c t e da u t o n o m o u s s y s t e m s b o r d e rg a t e w a yp r o t o c o l ( b g p ) i su s e dt oe x c h a n g en e t w o r kl a y e r r e a c h a b i l i t yi n f o r m a t i o n 邮db e t w e e nm u l t i p l ea u t o n o m o u ss y s t e m si n t r a n s m i s s i o nc o n t r o lp r o t o c o l i n t e m e tp r o t o c o l ( t c p i p ) n e t w o r k s a n a l y s i so f b g pi ss i g n i f i c a n tt ot h ed e v e l o p m e n to fi n t e m e t ,n l i sp a p e rd e s i g n sab g pr o u t i n gs o f t w a r eb a s e do nl i n u x t m ss o f t w a r e i n c l u d e st w os u b s y s t e m s o n ei sb g ps y s t e mu s e dt or u nb g p p r o t o c o l ;a n o t h e r o n ei sr m e rs y s t e mu s e dt or e a do ru p d a t el i n u xk e r n e lr o u t e r m e rs y s t e mi s a l s ou s e dt os e n dl i n u xk e r n e li n f o r m a t i o nt ob g ps y s t e mb yr m e rm e s s a g e b g ps y s t e mr e a l i z e st h ee s t a b l i s h m e n tb e t w e e nb g pn e i g h b o r s ,b g pr o u t e a d v e r t i s e m e n t ,b g pr o u t ea g g r e g a t i o n ,b g pr o u t er e d i s t r i b u t i o n ,m a n a g e m e n to f b g pr o u t ea t t r i b u t e sa n db g pf “t es t a t em a c h i n e ( f s m ) e t c b g ps y s t e m c o m m u n i c a t e sw i t hr m e rs y s t e mb yl i n u xl o c a lb a s e dt c pc o n n e c t i o n ,r m e r s y s t e mc o m m u n i c a t e sw i t hl i n u xk e r n e lb yi n p u t o u t p u tc o n t r o l ( i o c t l ) b g p s y s t e ma n dr m e rs y s t e mc o m m o n l yu s ev t ym o d u l et op a r s ea n dp r o c e s s c o m m a n dl i n e s y s t e mp e r f o r m sv i n u a lt h r e a dm e c h a n i s m ,w h i c hi n c l u d e ss i x t y p e st h r e a d s ,脚t y p et h r e a di sr e l a t e dt or e a do p e r a t i o n ,w r 胍t y p et h r e a d i sr e l a t e dt ow r i t eo p e r a t i o n ,t i m e rt y p et h r e a di su s e dt op r o c e s st i m eo u te v e n t , e v e n t t y p et h r e a di su s e dt op r o c e s sb g pf s m ,r e a d yt y p et h r e a dm e a n s t h i s t h r e a di sr e a d yt ob es c h e d u l e d u m7 s e dt y p et h r e a dm e a n st h i st h r e a di si d l e l i n u xs y s t e m sp o w e r f u ln e t w o r kf u n c t i o n sa n dm o d u l a rd e s i g nt e c h n o l o g i e s a r ew i d e l yu s e dd u r i n gt h ep r o c e s so fd e s i g n i n g s y s t e m ,w h i c hi sc o n v e n i e n tt o e x t e n db g pf u n c t i o n sa n da d dn e wp r o t o c o l s t h et e s tr e s u l to ft h i ss y s t e ms h o w s t h a tt h eb g pp r o t o c o lb a s e do nl i n u x r c p i pp r o t o c o l ss t a c kr e a l i z em a i nb g p f u n c t i o n sa n dc a nf u ns t a b l y n i sr e s e a r c hh a sc e r t a i na c a d e m i ca n dc o m m e r c i a l v a l u e k e y w o r d s :b g p ;l i n u x ;t c p i p ;p r o t o c o l ;r o u t e 西南交通大学学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学 校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查 阅和借阅。本人授权西南交通大学可以将本学术论文编入有关数据库进行检 索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 本学位论文属于 1 保密口,在年解密后适用本授权书; 2 不保密v ,适用本授权书。 学位论文作者签名:彳兮偿彖 醐硎陟石一 名 v 签 师教导 期乜日rtr 指 日 西南交通大学学位论文创新性声明 本人郑重声明:所呈交的学位论文,是在导师指导下独立进行研究工作 所得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或 集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体, 均已在文中作了明确的说明。本人完全意识到本声明的法律结果由本人承 担。 本学位论文的主要创新点如下: 论文主要基于l i n u x 平台进行b g p 协议的设计,l i n u x 系统有强大的网 络功能且成本低廉,硬件环境容易获取,便于推广和使用;b g p 协议开发过 程中,结合d y n a m i p sc i s c o 路由仿真软件进行测试,仅需一台p c 机就可以 完成所有网络实验,有一定的教学推广价值;基于l i n u x 系统的b g p 路由软 件采用模块化开发方法,便于新的协议的开发和移植,如果加入更多的协议, 便可以设计出功能更全的路由软件,让其运行在高性能多网卡的p c 机上, 就可以充当路由器的角色,有潜在的商业价值。 彳磊包和 例7 西南交通大学硕士研究生学位论文第1 页 第1 章绪论 1 1 课题研究的背景及意义 i n t e r n e t 是一个全球互联的计算机网络。随着i n t e r a c t 的飞速发展,在全 球范围的层面上对其进行有效地管理将越来越困难。出于管理和扩展的目 的,因特网被分割成许多不同的自治系统( a u t o n o m o u ss y s t e m ,a s 1 】) 。换 句话说,因特网是由自治系统汇集而成的。a s 自身可以有自己的一套规则 和策略,能够把自己和其它a s 惟一地区别开来。 一个a s 是拥有同一选路策略、在同一技术管理部门下运行的一组路由 器。每个a s 被看作是一个进行自我管理的网络,一个自治系统只负责管理 自己内部的路由。以a s 为边界,可以将常用的动态路由协议分为a s 间的 外部网关协议( e x t e r i o rg a t e w a yp r o t o c o l ,e g p | 2 1 ) 和a s 内部的内部网关协 议( i n t e r i o rg a t e w a yp r o t o c o l ,i g p 1 j ) 。边界网关协议( b o r d e rg a t e w a y p r o t o c o l ,b g p 3 j ) 就是为t c p i p 4 捌网络设计的用于自治系统之间的e g p 路 由协议。该协议的基本功能是与其他b g p 协议自治系统交换网络层可达信 息( n e t w o r kl a y e rr e a c h a b l ei n f o r m a t i o n ,n l r i 3 j ) ,这种可达信息包含了通 往目标所要穿越的自治系统记录,利用这些信息,系统就可以构建一个无环 的自治系统连接图,并把形成的外部路由信息重发布给内部网关协议i g p 。 随着i n t e m e t 的迅速发展,网络拓扑的日趋复杂,多个自治系统间的通信的 要求越来越高,b g p 协议也显得越来越重要。 b g p 可以说在一定程度上综合了距离向量和链路状态算法的优点,是一 种路径向量协议。被称为路径向量协议的原因在于b g p 路由信息中包含着 a s 号的一个序列,这个序列指明了路由经过的路径。利用这个信息可建立 起各a s 的连接图,从而避免路由循环。 我们已经知道在单个a s 中使用内部网关路由协议( 如r i p 6 ,o s p f l 7 1 等) 执行路由功能。b g p 的引入使实现自治系统间无环路由信息交换更容易, 并且能够通过无类域问路由选择( c l a s s l e s si n t e r - d o m a i nr o u t i n g , c i d r 8 】) 来控制路由表的扩展。设计b g p 也是为了通过使用自治系统来提供i n t e r n e t 的一个结构化的清晰视图。 i e t f 的i n t e r - d o m a i nr o u t i n g 工作组分别在1 9 8 9 年公布了b g p 协议的 版本1 ( b g p 1 ) ,1 9 9 0 年公布了版本2 ( b g p 2 ) ,1 9 9 3 年公布了版本3 ( b g p - 3 ) ,1 9 9 5 年公布了版本4 ( b g p 4 ) ,b g p 4 是目前i n t e r n e t 上使用的 西南交通大学硕士研究生学位论文第2 页 外部路由协议。b g p 在不断发展的过程中逐渐成为i n t c r n e t 路由体系结构的 基础。 本课题使用的硬件平台是x 8 6 平台,使用的操作系统是l i n u x 系统,这 样做的优点是: 1 ,将更多的精力放到对b g p 协议的设计上,不用考虑硬件的设计问题; 2 ,l i n u x 系统有很成熟的t c p i p 协议栈,为b g p 协议的稳定运行提供 保证; 3 ,路由器价格昂贵,在多接口的p c 机上运行特定的协议,使其具备特 定的路由功能,可以节约成本; 4 ,在x 8 6 的l i n u x 平台下,便于对协议进行开发和调试,只要在设计时 充分考虑移植性,设计出来的协议可以很容易就移植到其他硬件和软 件平台下。 1 2 本文的主要工作 一本论文使用l i n u x 系统提供的t c i p 协议栈,设计和实现了b g p 协议。 具体来说,主要的工作内容有如下几点: 1 b g p 协议的设计 本论文的b g p 协议是参考r f c l 7 7 1 实现的,其中包括b g p 协议的基本 工作原理、b g p 协议的四种报文、b g p 协议的有限状态机、b g p 协议的路径 属性以及b g p 决策过程的实现。 2 b g p 协议功能设计 在b g p 协议设计完成的基础上,尽可能完善地对b g p 协议功能进行设 计,包括基本b g p 协议配置命令,b g p 路由聚合,b g p 路由重分配,b g p 路径属性管理等功能的设计。 3 系统体系结构设计 因为本论文是基于l i n u x 系统的b g p 协议设计,使用的l i n u x 系统提供 的结构,如何管理好b g p 协议和操作系统之间的关系,这是一个关键点。 论文中从t h r e a d 管理机制、r y 模块、b g p 子系统、r m e r 子系统等多个方 面进行模块化设计,层次清晰,具有较强的可移植性,同时对各个模块间的 通信方式进行了设计。 西南交通大学硕士研究生学位论文第3 页 4 b g p 协议的测试 本文使用c i s c o 路由器模拟软件d y n a m i p s ,对本系统的功能进行了测试, 其中包括对基本b g p 协议配置命令,b g p 路由聚合命令,b g p 路由重分配 命令,b g p 路径属性管理命令等功能进行了测试。 1 3 论文组织结构 本论文共分6 章: 第1 章是“绪论 。分析该课题的研究背景及意义,明确课题研究目标, 了解国内外研究现状,介绍了本文的主要工作,简述了论文的组织结构。 第2 章介绍了边界网关协议的基本概念,包括b g p 协议的基本工作原 理,b g p 报文,b g p 状态机,b g p 路径属性等。 第3 章对系统中的各个模块进行了详细的设计。 第4 章是b g p 协议的实现部分,主要涉及b g p 路由表,以及b g p 有限 状态机的实现。 第5 章是对本文实现的b g p 协议进行测试,并对测试结果进行分析。 第6 章总结了本论文的主要工作及对本课题未来工作的展望。 西南交通大学硕士研究生学位论文第4 页 第2 章边界网关协议b g p 4 2 0 世纪8 0 年代初期,a r p a n e 一9 】使用一种称之为g g p 1 0 】的距离向量 路由协议。在该协议中,每一个路由器都要知道达到每个可达网络的路由。 随着i n t e r a c t 的发展,a r p a n e t 的构建者们发现这种路由协议的扩展性很 差,首先,随着网络规模的增加,路由表的更新以及路由算法的开销变得相 当庞大。其次,随着g g p 软件数量的增加以及运行平台的多样化,软件升 级的阻力也变大了,将i n t e r n c t 看成一个完整的通信系统是不可能的。为了 解决i n t e r a c t 的扩展性问题,r f c 8 2 7 1 1 】中引入了自治系统a s 和外部网关协 议e g p 的概念。r f c 8 2 7 中提出的解决方案是将a r p a n e t 从一个单一的互 联网络转移到一个相互连接的、自主控制的网络系统。在每个互联网络的内 部,也就是我们所说的a s 内部,管理机构可以自主选择路由协议来管理这 个a s 。这样做的效果是,a s 的概念扩大了互联的范围,并为这种分层机构 加入了新的一层。曾经是一个单一的互联网络,现在变成了一个由a s 构成 的网络,这些a s 本身就是一个独立的互联网络。在a s 内部运行的路由协 议称之为i g p 。g g p 是缺省的第一个i g p ,目前g g p 已经完全被r i p 、 i g r p 1 2 j 、o s p f 以及i s i s 1 3 】等路由协议所取代。在a s 之间通过e g p 协议 来进行通信。 e g p 对于a r p a n e t 来讲已经足够了,但是e g p 不能检测到环路,因 此在这种情况下,它不能高效地选路,它的聚合时间很长并且缺乏支持路由 策略的工具。于是在1 9 8 9 年的r f c l l 0 5 1 4 】中提出了一个全新的a s 域间协 议,它就是b g p 协议。b g p 的第一个版本在一年后的r f c l l 6 3 1 5 】中得到更 新。在1 9 9 1 年的r f c l 2 6 7 1 6 】中b g p 再二次被升级。人们习惯性地把这3 个 版本分别称为b g p 1 、b g p 2 以及b g p 3 。 在1 9 9 5 年的r f c l 7 7 1 中,提出了最新的b g p 版本b g p 4 。最重要的 区别就是b g p 4 是无类的,而早期的版本都是有类的。外部网关协议存在的 根本目的是为了保证i n t e r a c t 上路由的可管理性以及可靠性。无类域问路由 c i d r 同样也是因为这个目的而产生的。c i d r 最早在1 9 9 3 年的砒c 1 5 1 7 中 提出,作为标准的建议在同年的r f c l 5 1 9 1 7 】中完成,并在r f c l 5 2 0 1 s 】中再 次得到修改,而b g p 4 的出现就是为了支持c i d r 。 西南交通大学硕士研究生学位论文第5 页 2 1b g p 基本工作原理 b g p 是一种用于在a s 间传递网络可达信息的路径向量协议。b g p 通过 在对等体间交换网络可达信息来构建a s 可达信息拓扑图,对b g p 而言,整 个i n t e m e t 就是一个大的a s 图,到i n t e r n e t 上任一目的的路由可以通过一个 a s 路径来表示。 b g p 到它的每一个运行b g p 的对等体间都形成了基于单播的连接,为 了提高连接的可靠性,b g p 使用t c p 作为它底层的传输机制,端口号为1 7 9 。 b g p 的更新机制也因为让t c p 层来处理像确认、重传以及排序等任务而在 一定程度上得到了简化。 b g p 有4 种类型的报文,包括o p e n 报文、k e e p a l i v e 报文、u p d a t e 报文、n o t i f i c a t i o n 报文。首先两个b g p 对等体必须执行标准的t c p 三 次握手,并且打开一个到端口1 7 9 的t c p 连接。然后交换o p e n 报文并确 认b g p 连接参数,如果在收到的o p e n 报文中没有发现差错,会互相发送 k e e p a l i v e 报文以确认连接正常。在确认连接正常后,b g p 对等体之间的 连接就完全建立起来了,对等体之间开始交换u p d a t e 信息,最初交换的是 完整的b g p 路由表,之后只需要进行增量更新。b g p 对等体之间会周期性 地发送k e e p a l i v e 报文以确认连接正常。当遇到报文出错或其它异常情况 时发送n o t i f i c a t i o n 报文并关闭连接【4 5 删。 b g p 路由器进行b g p 路由通告时要遵守如下规则1 1 9 1 : 1 如果本地有多条目的前缀相同的b g p 路由存在时,把最优的b g p 路 由通告b g p 邻居; 2 b g p 路由器会把自己从e b g p 邻居学来的路由通告给所有其他b g p 邻居( 包括i b g p 邻居和e b g p 邻居) ; 3 b g p 路由器不会把从i b g p 邻居学来的路由通告给其他m g p 邻居; 4 b g p 路由器是否要把从i b g p 邻居学来的路由通告给e b g p 邻居,取 决于路由的同步情况; 5 一旦b g p 连接建立成功,b g p 路由器会把自己所有的b g p 路由通告 给新建立的b g p 邻居。 用户可以通过命令行接口( c o m m a n dl i n ei n t e r f a c e ,c u ) 对路由器进 行配置,b g p 相关的配置命令如表2 1 所示。 西南交通大学硕士研究生学位论文第6 页 表2 - 1b g p 相关配置命令【4 2 删 r o u t e rb g pa s - n u m b e r 该命令用于打开一个b g p 路由进程。默认情 况下系统没有b g p 路由进程。 n e i g h b o rf p a d d r e s sr e m o t e a sb g p 路由器用于和e b g pp e e r 或者i b g pp e e r a s n u m b e r 之间建立邻居关系。 n e t w o r k p a d d r e s s m a s k - b i t将指定的网络通过b g p 协议广播出去。 n e i g h b o r p a d d r e s ss h u t d o w n 该命令可以在不删除与这个邻居相关的 n e i g h b o r 配置命令的前提下结束b g p 会话。 n e i g h b o r p - a d d r e s sm a x i m u m - - p r e f i x 限制从特定邻居得到的前缀数目,当前缀数目 m a x m u m 超过m a x m u m 时,b g pp e e r 会话会被关闭。 b g pr o u t e r - i d p a d d r e s s用于明确地设置b g p 路由器的。 a g g r e g a t e - a d d r e s s p a d d r e s s m a s k 一6 打在b g p 路由表中创建一个聚合的条目。 r e d i s t r i b u t e p r o t o c o l把通过除b g p 外的路由协议得到的路由重新 分配到b g p 中。 b g pb e s t p a t ha s - p a t hi g n o r e用于最优路由选择。当该命令打开时,表示在 最优路径选择时,不考虑a s - p a t h 属性。默认 情况下,系统会考虑a s p a t h 属性。 b g pb e s t p a t hc o m p a r e - r o u t e r i d用于最优路由选择。当b g p 路由器从不同的 e b g pp e e r 收到多条路由时,b g p 路由器的最 优路由选择程序会选择路由器l d 最小的那条 路由作为最优路由。默认情况下,该命令是关 闭的,当两条路由的其他属性均相同时,b g p 路由器会选择先到达的那条路由。 b g pe n f o r c e - f i r s t - a s当b g p 路由器收到来自于e b g pp e e r 的一个 u p d a t e 报文,如果该条路由的a s _ p a t h 属性 中的第一个a s 号不是该e b g p p e e r 所在的a s 号,系统就拒绝该路由。默认情况下,该命令 是打开的。 n e i g h b o r p a d d r e s sn e x t - h o p s e l f当b g p 路由器通过e b g p 得到路由,并且这 些路由需要广播给一个i b g p 邻居时,发送的 下一跳信息并不改变。使用这个命令,b g p 路由器可以改变发送给i b g p 对等体的下一条 信息,把自己作为下一跳的路由器。 b g pa l w a y s - c o m p a r e - r e e d 用于最优路由选择。在最优路由选择过程中, 系统只对来自相同自治系统的路由的m e d 值 进行比较,但是这种比较不是必须的,如果要 强制比较,可以使用b g pd e t e r m i n i s t i c m e d 。 默认情况下,b g p 路由器不会比较来自不同 a s 的路由的m 值,这条命令强制b g p 路 由器对所有的路由的m e d 值进行比较,而不 管它们是否来自相同的自治系统。 b g pd e t e r m i n i s t i c m e d用于最优路由选择。强迫b g p 路由器对来自 西南交通大学硕士研究生学位论文第7 页 相同自治系统的路由的i v i e d 值进行确定性比 较。默认情况下,如果没有配置该命令,系统 不会强制对来自相同自治系统的路由的m e d 值进行比较。 b g pb e s t p a t hm e dm i s s i n g - a s - w o r s t使用该命令表示当b g p 路由器收到一个未带 m e t ) 属性的路由时,会将该路由的i v i e d 值设 为一个无穷大的数4 2 9 4 9 6 7 2 9 4 。默认情况下, 当系统接收到未带i v i e d 属性的路由时,会将 该路由的i v i e d 值设为o 。 b g pd e f a u l tl o c a l - p r e f e r e n c en u m b e r 用于最优路径选择。改变默认的本地优先级。 在未打开该命令之前,系统默认的本地优先级 为1 0 0 。本地优先级属性用于i b g pp e e r 之间, 具有较高本地优先级的路由优先。 2 2b g p 报文格式 2 2 1 报文头格式 b g p 报文的最大尺寸是4 0 9 6 字节,最小尺寸是1 9 字节。所有的b g p 报文都有一个通用的报文头,如图2 - 1 所示,b g p 报文头由1 6 字节的标志 域、2 字节的长度域和1 字节的类型域组成。根据报文类型的不同,报文头 后面可以 1 6 字节 2 字节 1 字节 图2 1 b g p 报文头格式 标志域:1 6 字节,用来检测接收的b g p 报文以及b g p 对等体间同步的丢失。 如果报文类型是o p e n ,则标志域必须全为1 ;如果o p e n 报文不携带验证 信息,则随后的其他报文的标志域必须为全为1 。否则随后的其他报文的标 志域的值可以通过验证算法计算求得。 长度:2 字节,以字节为单位的报文的长度,其中包含报文头的长度。 类型:l 字节,o p e n 、u p d a t e 、n 0 1 i c 舰o n 、k e e p a l i v e 对应的类 型值分别为1 、2 、3 、4 。 2 2 2o p e n 报文格式 o p e n 报文是b g p 对等体间t c p 连接建立后双方发送的第一个报文。 o p e n 报文被接受后发送k e e p a l i v e 报文以确认o p e n 报文。o p e n 报文 西南交通大学硕士研究生学位论文第8 页 一旦确认,u p d a t e 、k e e p a l i v e 和n o t i f i c a t i o n 报文才开始交换。图 2 2 为o p e n 报文格式。 b g p 公共头 版本 我的自治系统 保持时间 b g p l d 可选参数长度 可选参数 1 9 字节 1 字节 2 字节 2 字节 4 字节 1 字节 变长 图2 - 2 0 p e n 报文格式 版本:1 字节,表示发送者运行的b g p 版本。 我的自治系统:2 字节,表示发送者的a s 号。 保持时间:2 字节,发送者建议的以秒为单位的保持计时器的值。接收方收 到的o p e n 报文中的保持时间与自己所配置的保持时间相比较,较小的值作 为本地保持计时器的值。保持时间为两个相继的k e e p a l i v e 或和u p d a t e 报文间的以秒为单位的最大值。保持计时器超时就认为该对等体连接中断。 保持时间为0 秒或者至少为3 秒,为0 秒时表示保持计时器永远不会超时, 系统使用的默认值为1 8 0 秒。 b g pi d :4 字节,发送者的路由器m 。默认情况下,如果配置了l o o p b a c k 接口,路由器i d 为l o o p b a c k 接口中的最高的i p 地址,如果没有配置l o o p b a c k 接口,路由器i d 为所有物理接口中最高的坤地址。 可选参数长度:1 字节,指示接下来可选参数域的整体长度,用字节来表示。 如果该值为0 ,表示无可选参数。 可选参数:由若干个三元组 组成,长度分别 为1 字节、1 字节、可变长度。 2 2 3u p d a t e 报文格式 u p d a t e 报文是b g p 最重要的一种报文,也是最复杂的报文,它携带了 i n t e r a c t 的路由可达信息。正是通过u p d a t e 报文,b g p 形成了关于整个 i n t e m e t 的无循环的拓扑视图。u p d a t e 报文主要由网络层可达信息n l r i 、 路径属性、不可达路由三部分组成。u p d a t e 报文格式如图2 3 所示。 西南交通大学硕士研究生学位论文第9 页 b g p 公共头 版本 我的自治系统 保持时间 b g p i d 可选参数长度 可选参数 1 9 字节 1 字节 2 字节 2 字节 4 字节 1 字节 变长 图2 - 3u p d a t e 报文格式 不可达路由长度:2 字节,以字节为单位的撤销路由域的长度,0 表示无撤 销路由,并且在该消息中不包含撤销路由域。 撤销路由:变长,是需要撤销的路由的一个列表,由一系列 二元组组成。长度占1 个字节,表示以比特为单位的被撤销路由的i p 地址 前缀的长度,如果该值为0 ,表示前缀与所有的路由匹配。通过给前缀填充 一些尾比特来保证该字段长度以字节为单位,尾比特的值任意,一般置零。 总路径属性长度:2 字节,以字节为单位的路径属性域的长度,0 表示在这 个消息中不包含属性和n l r i 。 路径属性:变长,列出了与n l r i 相关的属性。由一系列 三元组组成,如图2 4 所示。p 比特位用来表示可选过渡属性 是完整的还是不完整的。对于公认属性或者可选非过渡属性来说,p 比特位 值为0 。表2 - 2 给出了常见的属性类型码以及每个属性类型可能的属性值。 2 字节 1 - 2 字节 变长 b g p 路径属性格式 口丑二工口j 工二二亘 t 字节 l 属性类型码 i 1 字节 属性类型格式 o : 1 = 可选的0 = 公认的 t -1 = 过渡的0 = 非过渡的 p : l ;不完整的0 = 完整的 e k 1 = 属性长度是2 字节0 = 属性长度寅醯字节 图2 4b g p 路径属性及属性类型格式 表2 2 属性类型和相关的属性值 属性名称 i 属性类型码属性值码l 属性值 o r i g i n l 10 l i g p 西南交通大学硕士研究生学位论文第10 页 1e g p 2i n c o m p u e t e a s _ p m a - i 21 a ss e t 2 a s _ s e q u e n c e n e x t h o p 30 下一跳的i p 地址 m u l t i _ e x i t _ d i s c 4 o4 字节m e d 值 l o c a lp r e f50 4 字节l o c a l _ p r e f 值 a t o m i ca g g r e g a t e60 没有 a g g r e g a t o r7 0 聚合体的a s 号和口地址 网络层可达信息:变长,由一系y o - - 元组组成。其中,长度占 1 个字节,表示以比特为单位的n l r ! 的p 地址前缀的长度,如果该值为0 , 表示前缀与所有的路由匹配。通过给前缀填充一些尾比特来保证该字段长度 以字节为单位,尾比特的值任意,一般置零。 2 2 4k e e p a l i v e 报文格式 ,b g p 相邻对等体间周期性地交换k e e p a l i v e 报文,并据此来判断远端 对等体是否可达。k e e p a l i v e 报文发送间隔建议为保持时间的1 3 ,默认值 为6 0 秒,但是该时间段不能低于1 秒。如果保持时间为o ,则无须周期性地 发送k e e p a l i v e 报文。k e e p a l i v e 报文只有1 9 字节的报头信息,后面没 有任何数据。 2 2 5n o t i f i q 蜘o n 报文格式 在b g p 协议中,每当检测到一个错误,总要发送一个n o t i f i c a t i o n 报文,然后关闭相关的对等体连接。n o t i f i c a t i o n 报文包括错误码、错误 子码、数据三个域,如图2 5 所示。 b g p 公共头 错误码 错误子码 数据 1 9 字节 1 字节 l 字节 变长 图2 - 5n o t i f i c a t i o n 报文格式 在n o t i f i c a t i o n 报文中,错误码表示当前错误的类型,错误子码则提 供了更详细的错误信息,数据域则是与当前错误相关的具体数据,可以用于 诊断出错信息。r f c l 7 7 1 中定义了6 种错误码和2 0 种错误子码,如表2 3 西南交通大学硕士研究生学位论文第11 页 所示。 错误码:1 字节,指示错误的类型。 错误子码:1 字节,提供有关错误的更详细的信息。 数据:变长,用来诊断错误的原因。数据域的内容取决于错误码和错误子码。 表2 3b g p 错误码及错误子码 错误名称错误码 错误子码错误子码的详细内容 报文头错误 11 连接不同步 2 报文长度无效 3 报文类型无效 o p e n 报文错误 21 不支持的版本号 2 无效的对等体a s 3 无效的b g pi d 4 不支持的可选参数 5 鉴别失败 6 不可接受的保持时间 u p d 气珏报文错误 31 畸形的属性列表 2 不可识别的公认属性 3 公认属性丢失 4 属性标志错误。 5 属性长度错误 6 o r i g i n 属性无效 7 a s 路由环路 8 n e x th o p 属性无效 9 可选属性错误 1 0 网络字段无效 1 1 畸形的a s p a t h 属性 保持计时器超时 4 o 无 有限状态机错误 50 无 终止 6o 无 2 3b g p 路径属性 路径属性是一条b g p 路由的特定属性信息,它准确描述了一条b g p 路 由,路径属性是用于b g p 路由决策的主要参数。路径属性可以分为4 大类: 公认必遵、公认自决、可选过渡、可选非过渡。表2 4 列出了各个路径属性 所属的类别。 公认必遵:u p d a t e 报文中n l r i 路由必须携带的属性。所有的b g p 路 西南交通大学硕士研究生学位论文第12 页 由器都必须能够识别和处理该属性。公认必遵属性丢失,表示发生错误。 公认自决:所有的b g p 路由器都必须能够识别该属性,但不要求必须出 现在u p d a t e 报文n l r i 的属性字段中。 可选过渡:不要求所有的b g p 路由器必须能够识别该属性。如果不能识 别,b g p 路由器应该接受该属性,并传递给其他b g p 对等体。 可选非过渡:不要求所有的b g p 路由器必须必须能够识别该属性。如果 不能识别,b g p 路由器应该忽略该属性,不再传递给其他b g p 对等体。 表2 - 4b g p 路径属性 属性名称 属性类别 o r i g i n 公认必遵 a s p a t h公认必遵 n e x th o p 公认必遵 m u l t i _ e x i t _ d i s c 可选非过渡 l o c 池,r e f 公认自决 a t o m i ca g g r e g a t e 公认自决 a g g r e g a t o r 可选过渡 2 - 3 1o r i g i n 属性 o r i g i n 属性是一个公认必遵属性,它指明了b g p 路由信息的来源。 o r i g i n 属性由产生该b g p 路由的a s 指定,在传递过程中一般不会变化。 当b g p 有多条路由时,它会将o r i g i n 属性作为最优路由选择的一个因素。 它规定了下面几种源: 1 ) i g p :通过n e t w o r k 命令或从发起者a s 的一个内部协议学习到的路 由就具有此属性。 2 ) e g p :从e g p 学习到的路由具有此属性。 3 ) i n c o m p l e t e :通过其它手段学习到的路由具有此属性,例如使用 聚合操作所产生的路由。i n c o m p l e t e 属性并不代表路由有故障, 只代表路由来源的信息不完整。b g p 通过重分配学习到的路由会携 带i n c o m p l e t e 属性,因为在这种情况下无法决定路由的初始源。 a sp a t h 是一个公认必遵属性,这个属性指出了到达该目的网络所 要经过的一系列自治系统的自治系统号,它有两种排列方式:a s s e t 和 西南交通大学硕士研究生学位论文第13 页 a ss e q u e n c e 。当一个b g ps p e a k e r 通过u p d a t e 报文转发一条b g p 路 由时候,它根据以下规则修改路由信息的a sp a t h 属性: 1 当通告一条路由给i n t e r n a lp e e r 时,不修改a s属性; 2 当通告一条路由给时,按下面情况_p进at行hexternalp e e r : 1 ) 如果当前a sp a t h 属性的第一个段是a s s e q u e n c e ,就把自己 当前所处的自治系统号做为最后一个元素放到这个队列里面( 默认 情况下是在最左边) 。如果这个动作导致a s _ _ p a t h 段的溢出,则新 增加一个a ss e q u e n c e 段,并把自己做在的自制系统号放在里面; 2 ) 如果当前a sp a t h 属性的第一个段的类型为a ss e t ,则新增一 a s e q u e n c e 段,并把当前所处的自制系统号添加进去; , 3 ) 如果_ s 当前a s p a t h 属性为空,则新增二个a ss e q u e n c e 段,并 把当前所处的自制系统号添加进去。 a sp a t h 属性的另一个功能就是避免路由环路。如果b g p 路由器从它 的外部对端收到一条路由,而a sp a t h 包含这个b g p 路由器自己的a s 号, 于是该路由器就知道这是条环路路由,从而将这样的路由丢弃掉。 2 3 3n e x th o p 属性 n e x t h o p 是一个公认必遵属性,它指明了到达目的地网络的下一跳路 由器的口地址。n e x th o p 的取值要遵循如下规则: 1 ) 如果正在进行路由宣告的路由器和接收的路由器在不同的a s 内( 外 部对等体) ,n e x th o p 是正在宣告的路由器接口的p 地址。 如果正在进行路由宣告的路由器和接收的路由器在同一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院护理工作质量管理与提升措施
- 个人志愿服务记录与总结模板
- 小学升初中英语复习试卷
- 三基考试题库及答案护士
- 药品的相关知识考试题及答案
- 电力施工现场安全防护措施手册
- 公司年度财务决算报告模板及范例
- 山东企业线下活动策划方案
- 3.9 列宁与十月革命 说课稿 2024-2025学年部编版历史九年级下册
- 建筑方案设计钢笔表现图
- 剑桥国际英语教程词汇指南初级版
- 产后抑郁的预防及护理
- 教师网络安全培训内容
- 养老护理员礼仪
- 护理疑难病例讨论肺心病
- 真石漆施工质量缺陷分析与防治
- 中学副校长培训方案
- 砌体工程质量控制培训课件
- 无人机测试评分标准
- 沟通技巧培训课件(共66张PPT)
- GB/T 42538.1-2023农林拖拉机安全第1部分: 基本型拖拉机
评论
0/150
提交评论