Chinaunix首页 | 论坛 | 博客
  • 博客访问: 129805
  • 博文数量: 43
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 175
  • 用 户 组: 普通用户
  • 注册时间: 2015-04-10 12:33
文章存档

2016年(9)

2015年(34)

我的朋友

分类: LINUX

2015-12-23 13:39:18

感谢:http://blog.csdn.net/dadoneo/article/details/8550288
   
    说到路由软
件,我第一印象就想起了Cisco的IOS。这是一款由Cisco自主开发的闭源路由器软件;说到开源路由软件,比较有意思的是这样两款难兄弟软件:Zebra(斑马)和Quagga(斑驴)。做过防火墙,交换机或者路由器的人应该明白CLI,命令行接口是什么意思。操作者通过命令行接口,将设备的配置(ACL等)、状态查询(流量统计等)操作,以命令的方式下发给设备,从而配置其工作状态(如隔离端口,过滤数据流、抑制风暴,防止各类攻击等)。这些接口通过CLI的形式呈现,口语化的配置,使得复杂的配置变得简单起来。
    
前面介绍的zebra到2005年发行zebra-0.95a后停止更新。后来修改版本将 zebra作为守护进程,发行新的版本改名Quagga,由savannah.gnu.org这个组织维护。
    
到目前为止,zebra和Quagga与Cisco IOS的命令架构,配置格式十分相近,同时它们的开源性,有力阻止了闭源的Cisco的IOS对整个路由软件市场的垄断。尽管它与IOS之间存在着一些差异,但是熟悉IOS的们会很快适应zebra和Quagga的网络环境的。Zebra和Quagga可以利用模块法对各种协议进行管理,这种设计是独一无二的。它可以根据网络的需要激活或者停止协议。而且安装有这款路由软件的主机,通过适当配置可以变成一个路由设备,这点让我很兴奋。目前,zebra已经停止发行,Quagga今年五月份推出quagga-0.99.21。不过对于国内的设备开发,这款开源软件已经足够了。

Quagga 源码:

 

zebra安装

下载zebra源码

  地址:

解压

1 tar -xvf  zebra-0.95a.tar.gz 2 cd zebra-0.95a/

修改zebra.h

vi ./lib/zebra.h //在103行添加如下代码

增加:

1 #ifdef GNU_LINUX 
2 #define __USE_GNU
3 #endif

告知在编译的时候使用GNU标准编译,同时这样做是因为增加了zebra对IPV6的支持。在系统头文件的in.h中定义了一个结构体:struct in6_pktinfo等结构,在zebra中被引用,所以增加定义宏以支持ipv6。

配置

./configure

编译和安装

make;make install【如果需要权限,请sudo】
如果编译过程中,出现个别库文件没有安装,请先安装依赖库文件,在后面配置vtysh的时候,可能会要求安装quagga支持;
默认安装完成后会在根目录下增加一个routing目录,如下:
root@zebra:/# ls
bin   etc         lib    lost+found  opt   routing  srv  usr ...
 
 
服务程序将被默认安装在/routing/sbin/
 
root@zebra:/# cd routing/
root@zebra:/routing# ls
etc  info  man  sbin
root@zebra:/routing# cd sbin/
root@zebra:/routing/sbin# ls
bgpd  ospf6d  ospfd  ripd  ripngd  zebra
 
 
有:bgpd ospf6d ospfd ripd ripngd zebra六个服务程序。
zebra配置文件在/routing/etc/目录下
root@zebra:/routing/sbin# cd ../etc/
root@zebra:/routing/etc# ls
bgpd.conf.sample   ospf6d.conf.sample  ripd.conf.sample    zebra.conf.sample
bgpd.conf.sample2  ospfd.conf.sample   ripngd.conf.sample
root@zebra:/routing/etc# 



配置zebra运行环境

配置zebra

生成zebra配置文件。因为系统中有简单的例子,于是就用现有的配置文件,配置登陆和进入特权模式的密码,主机名等。

mv zebra.conf.sample zebra.conf

配置vtysh

mv vtysh.conf.sample vtysh.conf

启动zebra demo程序

./zebra –d

远程登陆


telnet 127.0.0.1 2601  //如果是在局域网内登陆,则将IPaddress 改为具体的主机地址
默认所有的登录密码是:zebra
2601是zebra demo的服务端口号,其他协议的端口号自行查找相关文件获悉。 如果需要启动Zebra提供的其他服务,在/usr/local/etc/下生成特定服务的配置文件。例如,希望启动RIP协议服务,则将rip相关的配置文件和上例一样拷贝到/usr/local/etc/下,在控制台运行:ripd –d,然后ps查看,会发现ripd已经在后台运行。
阅读(1964) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~