基于Linux系统的BGP
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
设计与实现
基于Linux系统的BGP协议设计与实现 (徐金荣)2008-06-24 16:23基于Linux系统的BGP协议设计与实现 (徐金荣)
徐金荣
xu_jin_rong@163.com msn: xu_jin_rong@hotmail.com
1、课题的研究意义、国内外现状分析
Internet是一个全球互联的计算机网络。随着Internet的飞速发展,在全球范围 的层面上对其进行有效地管理将越来越困难。出于管理和扩展的目的,因特网被
分割成许多不同的自治系统(Autonomous System,AS)。换句话说,因特网是
由自治系统汇集而成的。AS自身可以有自己的一套规则和策略,能够把自己和
其它AS惟一地区别开来。
一个AS是拥有同一选路策略、在同一技术管理部门下运行的一组路由器。每个
AS被看作是一个 进行自我管理的网络,一个自治系统只负责管理自己内部的路
由。以AS为边界,可以将常用的动态路由协议分为AS间的EGP(Exterior Gateway Protocol,外部网关协议)和AS内部的IGP(Interior Gateway Protocol,内部网关协议)。BGP(Border Gateway Protocol,边界网关协议),就是为TCP/IP网络设计的用于自治系统之间的EGP路由协议。该协议的基本功能是与其他
BGP协议自治系统交换网 络层可达信息(Network Layer Reachable
Information,NLRI),这种可达信息包含了通往目标所要穿越的自治系统
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
,
利用这些信息,系统就可以构建一个无环的自治系统连接图,并把 形成的外部路由信息重发布给内部网关协议IGP。随着Internet的迅速发展,网络拓扑的日
趋复杂,多个自治系统间的通信的要求越来越高,BGP协议 也显得越来越重要。
BGP可以说在一定程度上综合了距离向量和链路状态算法的优点,是一种路径
向量协议。被称为路径向量协议的原因在于BGP路由信息中包含着AS号的一个序列,这个序列指明了路由经过的路径。利用这个信息可建立起各AS的连接图,从而避免路由循环。
我们已经知道在单个AS中使用内部网关路由协议(RIP,OSPF等)执行路由功能。BGP 的引入使实现自治系统间无环路由信息交换更容易,并且能够通过
无类域间路由选择(CIDR)来控制路由表的扩展。设计BGP也是为了通过使用自治系统来提 供Internet的一个结构化的清晰视图。
IETF的Inter-Domain Routing工作组分别在1989年公布了BGP协议的版本1(BGP-1)、1990年公布了版本2(BGP-2)、1993年公布了版本3(BGP -3)、1995年公布了版本4(BGP-4),BGP-4是目前Internet上使用的外部路由协议。
BGP在不断发展的过程中逐渐成为 Internet路由体系结构的基础。
本课题使用的硬件平台是X86平台,使用的操作系统是Linux系统,这样做的
优点是:
1. 将更多的精力放到对BGP协议的设计上,不用考虑硬件的设计问题;
2. Linux系统有很成熟的TCP/IP协议栈,为BGP协议的稳定运行提供保证;
3. 路由器价格昂贵,在多接口的PC机上运行特定的协议,使其具备特
定的路由功能,可以节约成本;
4. 在X86的Linux平台下,便于对协议进行开发和调试,只要在设计时
充分考虑移植性,设计出来的协议可以很容易就移植到其他硬件和软件平台下。
2、课题研究目标、研究内容、拟解决的关键问题
本课题主要是参考rfc1771文档进行BGP-4协议的设计与实现,最终的产品是
一个高模 块性、高移植性的,运行在Linux操作系统之上的BGP路由软件。该路由软件不仅可以使一台多网络接口的PC机成为BGP路由器,而且该路由软件可以很 方便地移植到三层交换机或路由器上。
BGP协议是目前Internet上使用的最广泛的外部路由协议,由于BGP协议的复杂性,有许多的关键技术有待解决,本课题旨在按照rfc1771
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
,设计和实现BGP的主要功能,对研究新一代BGP协议有很大的帮助。
本课题的研究内容涉及如下几个部分:
1. Linux内核对路由信息的存储和管理;
2. BGP协议的路由机制,包括路由决策过程等;
3. BGP的四种报文:Open报文、Update报文、Notification报文、Keepalive报文;
4. BGP协议的状态机;
5. BGP邻居之间的通信,包括IBGP邻居和EBGP邻居;
6. BGP路由表和Linux内核路由表之间路由信息的交换;
7. 将static和connected类型的路由重分配为BGP路由;
8. BGP路由器的CLI(Command Line Interface)的实现;
9. 测试环境的构建,对BGP路由器进行测试。
该课题中需要解决的关键问题有如下几点:
1. BGP状态机的实现;
2. 如何将static和connected类型的路由重分配为BGP路由;
3. BGP路由聚合的实现;
4. BGP协议的反射器的实现;
5. BGP协议的自治系统联邦;
6. CLI的实现。
3、拟采取的研究
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
、技术路线
本课题所设计的是专门针对BGP协议的路由软件,该软件在保证核心功能的基
础之上,不断增加 新的功能,例如最初的版本在执行重分配操作时,只支持static和connected两种类型路由的重分配操作,随着版本的升级,加入rip和ospf 等路由协议,便使该BGP路由软件成为一个功能更全的路由软件,此时就可以支
持rip和ospf类型路由的重分配操作。因为路由软件的设计非常复杂,几乎 每个协议之间都会涉及到信息的交换,所以在实现的过程中,先完成其核心功能,
然后视进度而定,不断扩充其功能。本课题从如下几个方面着手进行设计和实现。
BGP路由器拟采用图3.1或图3.2这两种
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
之一进行设计。这两种方案的共
同点如下:
1. 采用了manager模块与Linux内核进行通信;
2. bgp模块只能通过manager模块间接获取Linux内核信息;
3. bgp模块只负责bgp协议相关部分的操作,该模块负责和其他运行
BGP的路由器进行通信。
两个方案的不同点在于:
1. 方案1中,用户需要通过向两个VTY(虚拟终端)中输入CLI命令,分别对manager模块和bgp模块进行配置,通过VTY1配置BGP路由器接口相关的基本信息,这部分操作通常是与协议无关的,通过VTY2配置bgp协议相关的操作。
2. 方案2中,用户只需要通过一个VTY,便可以使用所有的CLI命令,而不需要区分该命令是否是协议相关的。
3. 方案1的优点在于,模块性很强,便于协议的扩展和移植。
4. 方案2的优点在于,操作方便,更像一个真实的路由器,用户不需要
在多个VTY之间来回切换输入CLI命令。
manager模块可以通过ioctl,sysctl,proc文件系统和netlink四 种方式与Linux kernel进行内核信息的交换。BGP邻居之间的通信,实质上就是BGP状态机的设计及实现。用户可以通过telnet命令登陆到BGP路由器上,一旦 登陆成功,便可以通过输入CLI命令,对BGP路由器进行配置。除和Linux通信以外,其他各个模块之间通信,都是使用TCP socket编程技术。
图3.3以方案1为例,描述了各个模块之间的通信原理图。VTY server—VTY client用于人机交互,接受CLI命令的输入;bgp server—bgp client用于BGP邻居之间的通信;local server—local client用于bgp模块和manager模块之间的通信。
4、试验方案及其可行性研究
实验环境
Dynamips cisco路由器模拟软件:dynagen 0.9.2_dynamips-0.2.7-RC3_Win_XP_setup.exe
cisco 7200 IOS镜像:c7200-js-mz.123-5.BIN
VMWare虚拟机:vmware 5.0.0
cisco仿真路由器运行平台:Microsoft Windows XP
BGP路由器运行平台:Red Hat Linux 9;Kernel:2.4.20-8
实验原理
本课题的实验环境如图4.1所示。为了便于开发和测试,在Windows上采用虚拟平台,进行实验的测试,该实验同样适合于真实的硬件环境。图4.1是一个简单的例子,R1和R2路由器是通过Dynamips模拟的cisco 7200路由器,因为使用的是真正的cisco IOS内核,所以通过Dynamips模拟出来的cisco路由器和真实的路由器功能一样。在VMware虚拟机上安装了Linux操作系统,并且有两块以太网卡eth0和eth1,BGP路由器就是在该Linux系统下运行。VMware和Windows之间建立了一个虚拟的网络VMnet0,windows操作系统下的真实网卡以及R1和R2均可以通过VMnet0访问eth0和eth1。
图4.1所示的拓扑连接,便构成了一个简单的广域网实验环境,因为是在一台主
机上运行的,所以对主机的配置要求比较高,但是最大的优点在于,操作方便,
实验结果清晰明了。通过对Dynamips的仿真能力,以及对Linux系统所支持的网络功能的分析,本课题具有较强的可行性以及实用性。
本课题侧重在功能上的实现,所以重在对BGP路由器的功能进行测试,但也不
乏性能方面的考虑。路由器的性能与多方面的因素有关,该课题主要是提供一种
BGP协议的设计和实现方法,同时方便用户轻松地把该BGP路由软件移植到其他的硬件平台上。
5、课题的创新性
本课题在多方面进行了创新:
1. 本课题研究的BGP路由软件是基于Linux平台,其特点是成本低,硬件环境容易获取,便于推广和使用;
2. 结合Dynamips cisco路由仿真软件进行实验,仅需一台PC机就可以完成所有网络实验,有很高的教学推广价值;
3. BGP路由软件只是一个初级的实验性产品,如果加入更多的协议,便
可以设计出功能更全的路由软件,让其运行在高性能多网卡的PC机上,就可以充当路由器的角色,有极高的商业价值;
4. BGP路由软件采用模块化开发方法,便于新的协议的开发和移植。