1 引言
随着计算机网络的迅猛发展,网络规模越来越大,网络也越来越复杂。传统的网络管理方式已不能满足新的需求。因此,传统网络管理效率低下,就成为当前急需解决的问题。网络的核心是路由,通过对路由的分析,能够获得大量关于网络的信息。因此,路由监测已成为网络运行和管理的重要研究内容。
通过一个具有部分路由器功能的监测代理,捕获整个网络的路由信息。通过路由信息就能分析整个网络的动态性。这里主要研究边界网关协议BGP(border gateway protocol)网络拓扑动态重构及网络稳定性。网络拓扑变动直观反映了BGP动态性,通过网络拓扑的变化能够清晰的获得故障信息,从而能及时排除故障。通过路由信息,实现了实时、动态的网络拓扑构造算法,并通过图形化的方式显示。
2 BGP域间路由监测
从管理范畴角度看,Internet由不同的自治系统(Autonomous System,AS)构成。自治系统指相对独立的网络,在一个自治系统内有自主的路由策略。这些AS可能分别隶属于不同的Internet服务提供商(Internet Service Provider,ISP),而不同的ISP可能重组成新的ISP,从而形成动态的管理组织结构。在AS内部,通过域内路由协议(InteriorGateway Protocols,IGP)管理调度路由,如OSPF、IS-IS和RIP等;在AS之间通过公共网络访问点(Network Access Point,NAP)和边界网关协议交换路由信息。BGP与IGP最明显的不同在于BGP允许每个AS按自己的路由策略选择、通告和接受路由,为路由选择提供了灵活机制。然而,为了实现这种灵活的路由机制,BGP协议的配置也十分灵活以适应各种复杂的任务,但这种灵活性也容易在配置中造成错误。一些小的本地错误配置可能造成网络中断,甚至影响整个Internet的连接。因此对于AS问路由策略的监视和验证是十分必要的。
BGP-4是一个集距离向量算法和链路状态算法于一身的协议,通过分析路由交互信息,特别是Update帧中的AS Path属性,可以得到从观测点到目的网络的AS序列。将这些序列整合,可得到关于整个网络的拓扑。另外,BGP-4是一个动态的路由协议,除了在初始情况下交互全部的路由表,BGP-4会以增量的方式发送路由变化信息。这些信息都通过Update帧发送给邻近的BGP-4 Router。通过动态的信息分析,可动态实时分析整个BGP网络。
为研究BGP网络的动态行为,首先要对BGP路由进行监测。传统基于路由表下载的路由监测加重了路由器和网络的负载,有着很大的缺陷。为解决路由监测问题,提出一套基于路由交互的域间路由监测方法,基于该方法对网络和路由器造成极小负载的前提下,采集BGP路由信息,通过该信息分析BGP的动态行为。通过Zebra建立一个监测代理,连接BGP网络中的一台边界路由器,这样,该监测代理就能接收到路由交互报文,这样,可监测和分析BGP网络的动态性。通过生成BGP网络的拓扑,实现对BGP网络的整体观测,以及对自治系统间路由变化的监测。
3 Zebra简介
Zebra是一种TCP/IP路由软件,它支持BGP-4、BGP-4+、OSPFv2、OSPFv3、RIPv1、RIPv2和RIPng。它符合GNU的GPL标准,可运行于Linux和其他Unix变体系统。Zebra套件是由Kunihiro Ishiguro和Yoshinari Yoshikawa于1996年开发的。目前,Zebra套件主要由IP Infusion公司负责维护。Zebra利用模块法管理各种协议,可根据网络求需要激活或停止协议。
Zebra的特点如下:
(1)模块化 Zebra使用多线程方式可使其容易升级和维护。某一协议模块的升级不会影响其他协议模块的运行。
(2)高速 Zebra具有比传统路由软件更高的包转发速度。
(3)可靠性 Zebra本身具有较高的可靠性。某一模块的失效不会影响到其他协议模块的执行。
Zebra的系统结构:传统路由软件多采用单线程方式提供所有路由协议的功能。Zebra则完全不同,它采用一组守护进程共同维护路由表。如ripd守护进程处理RIP协议,ospfd用于支持ospf的守护进程,bgpd用于支持bgp-4。同时为了管理内核路由表,用守护进程zebra管理内核路由表。图1所示为Zebra的系统结构。
这种多进程方式带来了可扩展性、模块化和易维护性。同时也带来多个配置文件和接口。每一个守护进程都有自己的配置文件和终端接口。当配置一个模块时需要在Zebra配置文件上进行配置。当配置BPG网络时就需要配置BGP模块的文件,这给用户的使用带来问题,为解决此问题,Zebra提供一个称为vryshell的集成用户接口脚本。Zebra的内核模式采用多线程方式。
4 使用Zebra建立BGP监测代理
使用Zebra建立BGP监测代理的步骤。Zebar的安装:
(1)解压软件包:#tar zxvf zebra-0.94。解压后会出现zebra-0.94目录,进入zebra-0.94目录;
(2)运行./configure进行配置;
(3)运行make;
(4)运行make install;
这时在/usr/local/sbin看到有bgpd、ospf6d、ospfd、ripd、ripngd、zebra6个文件。同时/usr/local/etc目录中会出现bgpd.conf.sample、bgpd.conf.samp