zebra介绍和安装

zebra介绍和安装   

说到路由软件,我第一印象就想起了Cisco的IOS。这是一款由Cisco自主开发的闭源路由器软件;说到开源路由软件,比较有意思的是这样两款难兄弟软件:Zebra(斑马)和Quagga(斑驴)。做过防火墙,交换机或者路由器的人应该明白CLI,命令行接口是什么意思。操作者通过命令行接口,将设备的配置(ACL等)、状态查询(流量统计等)操作,以命令的方式下发给设备,从而配置其工作状态(如隔离端口,过滤数据流、抑制风暴,防止各类攻击等)。这些接口通过CLI的形式呈现,口语化的配置,使得复杂的配置变得简单起来。

前面介绍的zebra到2005年发行zebra-0.95a后停止更新。后来修改版本将 zebra作为守护进程,发行新的版本改名Quagga,由savannah.gnu.org这个组织维护。

而我最早接触Zebra是刚毕业那年,即2011年四月份,在第一家公司做基于MIPS和Intel Xscale的网络分析仪(专门提供给网络安全部门,集监控、采集和分析为一体的智能网络监控设备)。又因为我在Cisco的模拟器:Cisco
Packet Tracer
上做过基于Cisco产品的网络架构项目。所以当得知有一款能和Cisco IOS媲美的路由软件,而且代码是开放的的时候,我很兴奋,于是赶紧学习起来。公司用的是zebra,版本我忘记了,遗憾的是当时没有写博的习惯,以致学习源码设计的各类辅助理解的图,都遗失了。如今只能根据自己的理解,加上温故源码慢慢回忆。

到目前为止,zebra和Quagga与Cisco IOS的命令架构,配置格式十分相近,同时它们的开源性,有力阻止了闭源的Cisco的IOS对整个路由软件市场的垄断。尽管它与IOS之间存在着一些差异,但是熟悉IOS的网络工程师们会很快适应zebra和Quagga的网络环境的。Zebra和Quagga可以利用模块法对各种协议进行管理,这种设计是独一无二的。它可以根据网络的需要激活或者停止协议。而且安装有这款路由软件的主机,通过适当配置可以变成一个路由设备,这点让我很兴奋。目前,zebra已经停止发行,Quagga今年五月份推出quagga-0.99.21。不过对于国内的设备开发,这款开源软件已经足够了。

废话少说,进入正题

环境:ubuntu 12.04;

我只粗略看过Quagga的源码,框架上和zebra类似,所以下面就只介绍zebra的安装和使用,以及安装编译过程中可能出现的问题,和大家一起探讨。但是Quagga的源码,我在这里给出连接,希望好学之士能够学习。后面我尝试使用,有问题一起解决。

Quagga 源码:http://download.savannah.gnu.org/releases/quagga/

zebra安装

下载zebra源码

  地址:https://www.mangob2b.com/en/zebra/download-zebra

解压

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

修改zebra.h

vi ./lib/zebra.h +103

增加:

1 #ifdef GNU_LINUX
2
3 #define  __USE_GNU
4
5 #endif

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

配置

./configure

编译和安装

make;make install【如果需要权限,请sudo】
如果编译过程中,出现个别库文件没有安装,请先安装依赖库文件,在后面配置vtysh的时候,可能会要求安装quagga支持;
服务程序将被默认安装在/usr/local/sbin下,有:bgpd ospf6d ospfd ripd ripngd zebra六个服务程序。

配置zebra运行环境

配置zebra

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

sudo cp zebra.conf.sample /usr/local/etc/zebra.conf

配置vtysh

sudo cp vtysh.conf.sample /usr/local/etc/vtysh.conf

启动zebra demo程序

./zebra –d

远程登陆


telnet 127.0.0.1 2601  //如果是在局域网内登陆,则将IPaddress 改为具体的主机地址
2601是zebra demo的服务端口号,其他协议的端口号自行查找相关文件获悉。
如果需要启动Zebra提供的其他服务,在/usr/local/etc/下生成特定服务的配置文件。例如,希望启动RIP协议服务,则将rip相关的配置文件和上例一样拷贝到/usr/local/etc/下,在控制台运行:ripd –d,然后ps查看,会发现ripd已经在后台运行。

最后,你可以大肆修改这个工程,增加自己的实现,这工程里面也有好多漂亮的代码,如日志管理,内存管理等,是一款不可多得的学习代码。

时间: 2024-10-12 21:34:12

zebra介绍和安装的相关文章

Tokyo Tyrant(TTServer)系列(一)-介绍和安装

Tokyo Cabinet 是日本人Mikio Hirabayashi 开发的一款DBM 数据库,该数据库读写非常快,哈希模式写入100 万条数据只需0.643 秒,读取100 万条数据只需0.773 秒,是Berkeley DB 等DBM 的几倍.Tokyo Tyrant 是由同一作者开发的Tokyo Cabinet 数据库网络接口.它拥有Memcached兼容协议,也可以通过HTTP 协议进行数据交换. Tokyo Tyrant 加上Tokyo Cabinet,构成了一款支持高并发的分布式持

Laravel介绍及安装

Laravel是目前最流行的php框架,此前已有耳闻,还没有好好的研究下,目前由于项目的需求要用到这个框架,所以只能硬着头皮学习了.今天算是Laravel学习的第一天,先讲讲laravel框架的安装流程. 下载最新版本Laravel框架,可以到Laravel官网下载,也可以到国内社区下载,下载后解压到服务器网根目录. LaraveL框架使用Composer(PHP包管理工具)来管理代码依赖性. 首先,你需要下载Composer的PHAR打包文件( composer.phar ),下载完成后把它放

System center 2012 R2 实战五、SCVMM2012R2介绍及安装

大家好,今天我来分享的是微软System center组件中第一个组件,SCVMM2012R2的安装,说起SCVMM2012R2,我还想与大家聊一聊,SCVMM2012R2在微软私有云中的作用. 我们知道,微软的私有云一共分为三个层,最底层,是基础架构层,基础架构层上面是服务标准与自动化流程,最上面的是应用管理层,那么什么是基础架构层,基础架构层在微软私有云中是干什么的呢,我先来跟大家说一说我的理解. 微软私有云基础架构层,在我看来,主要作用是,通过微软的云计算,改善企业的IT环境,将企业传统的

Storm介绍及安装部署

本节内容: Apache Storm是什么 Apache Storm核心概念 Storm原理架构 Storm集群安装部署 启动storm ui.Nimbus和Supervisor 一.Apache Storm是什么 Apache Storm是自由开源的分布式实时计算系统,擅长处理海量数据,适用于数据实时处理而非批处理. 批处理使用的大多是鼎鼎大名的hadoop或者hive,作为一个批处理系统,hadoop以其吞吐量大.自动容错等优点,在海量数据处理上得到了广泛的使用.但是,hadoop不擅长实时

python 常库介绍及安装方法

文大赛,秀绝招,赢无人机! python 常库介绍及安装方法 标签: PYTHON库 2016-10-13 15:32 798人阅读 评论(0) 收藏 举报  分类: 其他(33)  bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheetahcherrypy:一个WEB frameworkctypes:用来调用动态链接库DBUtils:数据库连接池django:一个WEB frameworkdocutils:用来写文档的dpkt:数据包的解包和组包My

Web服务介绍 & httpd安装

Web简介 什么是Web WWW:World Wide Web,万维网 英国人TimBerners-Lee在1989年欧洲共同体的一个大型科研机构工作时发明的 Web是一种超文本信息系统,其主要实现方式是超文本连接 Web特点 1.Web页面的图形化和易于链接 2.Web与操作系统.浏览器平台无关 3.分布式 4.动态习惯 5.交互性 Web工作原理 HTTP(Hyper Text Transfer Protocol,超文本传输协议):提供了访问超文本信息的功能,是Web浏览器和Web服务器之间

Memcached介绍及安装

memcached:由LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一款软件,现已成为mixi,hatena,Facebook,Vox,LiveJournal等众多服务器提高Web应用程序扩展性的重要因素: memcached是一款开源.高性能.分布式内存对象缓存系统,可应用各种需要缓存的场景,其主要目的是通过降低对Database的访问来加速web应用程序.它是一个基于内存的"键值对"存储,用于存储数据库调用.API调用或页

VMware Horizon View Config Tool 用户使用手册之一 -- VCT介绍和安装之前的准备

安装Horizon View Configuration Tool VMware Horizon View Configuration Tool (以下简称为vCT), 现在版本为1.0, 本产品的用途为帮助用户自动安装部署 Horizon View 5.3的基础环境,其中包括域服务器,VMware vCenter 服务器,View Connection 服务器和View Composer服务器.本工具替代了复杂的手动安装部署步骤,能够自动部署基础的Horizon View环境. vCT发布为一

兄弟连新版ThinkPHP视频教程1.ThinkPHP 3.1.2 介绍及安装

老师给咋们这么好的礼物,咋可不能浪费^_^记在博客上方便以后查阅 ## ThinkPHP 3 介绍及安装#讲师:赵桐正微博:http://weibo.com/zhaotongzheng 本节课大纲:一.ThinkPHP的介绍            //了解    MVC        M - Model 模型                工作:负责数据的操作        V - View  视图(模板)        工作:负责前台页面显示        C - Controller 控制器