用Zebra 在Linux 上构建路由器实战手册
一、Zebra 介绍
Zebra 是一个 TPC/IP 路由软件,支持 BGP-4、BGP-4+、OSPFv2、
OSPFv3、RIPv1、RIPv2 和 RIPng。它的发行遵循 GNU 通用公共许可
协议,可以运行于 Linux 以及其他一些 Unix 变体操作系统上。
Zebra 是那些系统最新的发行版本中的路由软件。最新版本的 Zebra
以及文档可以从 GNU Zebra 网站上下载:[url]http://www.zebra.org/[/url]
Zebra 的设计独特,采用模块的方法来管理协议。可以根据网络需要
启用或者禁用协议。
Zebra 最为实用的一点是它的配置形式同 Cisco IOS 极其类似。尽
管它的配置与 IOS 相比还是有一些不同,但是这对于那些已经熟悉
IOS 的网络工程师来说在这种环境下工作将相当自如。
二、安装
1、下载
[url]ftp://ftp.zebra.org/pub/zebra/zebra-0.95a.tar.gz[/url]
2、安装过程
# gunzip zebra-0.95a.tar.gz
#tar xvf zebra-0.95a.tar
会在当前目录下自动生成一个zebra-0.95a 子目录, 进入
zebra-0.95a 目录后执行以下命令安装:
# ./configure
# make
# make install
安装完成后执行文件位于/usr/local/sbin,如下所示:
# ls -l /usr/local/sbin
total 6480
-rwxr-xr-x 1 root root 1891727 Jan 31 23:37 bgpd
-rwxr-xr-x 1 root root 1090742 Jan 31 23:37 ospf6d
-rwxr-xr-x 1 root root 1398401 Jan 31 23:37 ospfd
-rwxr-xr-x 1 root root 824695 Jan 31 23:37 ripd
-rwxr-xr-x 1 root root 713611 Jan 31 23:37 ripngd
-rwxr-xr-x 1 root root 677048 Jan 31 23:37 zebra
配置样本文件位于/usr/local/etc,如下所示:
# ls -l /usr/local/etc
total 44
-rw------- 1 root root 572 Jan 31 23:37 bgpd.conf.sample
-rw------- 1 root root 2801 Jan 31 23:37 bgpd.conf.sample2
-rw------- 1 root root 1110 Jan 31 23:37 ospf6d.conf.sample
-rw------- 1 root root 180 Jan 31 23:37 ospfd.conf.sample
-rw------- 1 root root 412 Jan 31 23:37 ripd.conf.sample
-rw------- 1 root root 396 Jan 31 23:37 ripngd.conf.sample
-rw------- 1 root root 375 Jan 31 23:37 zebra.conf.sample
三、运行
各个zebra 模块运行时需要事先定义一个配置文件(*.conf),可直
接使用样本配置文件。
# cd /usr/local/etc
# cp zebra.conf.sample zebra.conf
可通过-h 参数查看help:
# zebra -h
Usage : zebra [OPTION...]
Daemon which manages kernel routing table management and
redistribution between different routing protocols.
-b, --batch Runs in batch mode
-d, --daemon Runs in daemon mode
-f, --config_file Set configuration file name
-i, --pid_file Set process identifier file name
-k, --keep_kernel Don't delete old routes which installed by
zebra.
-l, --log_mode Set verbose log mode flag
-A, --vty_addr Set vty's bind address
-P, --vty_port Set vty's port number
-r, --retain When program terminates, retain added route
by zebra.
-v, --version Print program version
-h, --help Display this help and exit
Report bugs to [email]bug-zebra@gnu.org[/email]
可使用-d 参数以后台进程模式启动各模块,比如zebra:
# zebra –d
查看zebra 进程是否运行:
# ps -ef | grep zebra
root 3039 1 0 14:52 ? 00:00:00 zebra -d
root 3131 2963 0 15:31 pts/3 00:00:00 grep zebra
检查后台进程监听端口:
# lsof -i:2601
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
zebra 3039 root 10u IPv6 9912 TCP
*:discp-client (LISTEN)
zebra-0.95a 安装好后会自动往系统/etc/service 中添加定义:
四、配置
zebra 是基本进程,诸如路由器hostname、接口IP 等基本信息都在
这个模块中配置。
可通过以下命令进入zebra 模块:
# telnet localhost 2601
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
Hello, this is zebra (version 0.95a).
Copyright 1996-2004 Kunihiro Ishiguro.
User Access Verification
Password:
密码缺省为zebra,输入密码后进入到以下配置界面,是不是感觉进
入到了一台真正的Cisco 路由器?
操作模式及命令跟Cisco IOS 很相似,如查看配置也是使用show
running-config,如下所示:
Router# sh run
Current configuration:
!
hostname Router
password zebra
enable password zebra
!
interface lo
!
interface eth1
ipv6 nd suppress-ra
!
interface peth0
ipv6 nd suppress-ra
!
interface sit0
ipv6 nd suppress-ra
!
interface vif0.0
ipv6 nd suppress-ra
!
interface eth0
ipv6 nd suppress-ra
!
interface vif0.1
ipv6 nd suppress-ra
!
interface veth1
ipv6 nd suppress-ra
!
interface vif0.2
ipv6 nd suppress-ra
!
interface veth2
ipv6 nd suppress-ra
!
interface vif0.3
ipv6 nd suppress-ra
!
interface veth3
ipv6 nd suppress-ra
!
interface xenbr0
ipv6 nd suppress-ra
!
line vty
!
end
下面是为接口eth1 配置一个ip 过程:
查看接口eth1 配置:
五、案例
案例网络拓朴如下:
说明:在Redhat linux 服务器和Cisco 2610 路由器上启用RIP 动态
路由器协议,实现个人PC 机(10.200.51.202/8)能访问到Cisco 2610
路由器Loopback 1(172.16.1.1/24)。
1、Cisco 2610 配置
2、Redhat linux 服务器配置:
确保zebra 和ripd 模块已运行:
# ps -ef | grep zebra
root 3039 1 0 14:52 ? 00:00:00 zebra -d
root 3314 2901 0 17:02 pts/1 00:00:00 grep zebra
# ps -ef | grep ripd
root 3052 1 0 14:54 ? 00:00:00 ripd -d
root 3316 2901 0 17:02 pts/1 00:00:00 grep ripd
配置Reahat linux 服务器Eth1 网卡ip:
配置Redhat linux 服务器RIP 动态路由协议:
3、查看
在Cisco 2610 路由器检查RIP 是否生效:
从sh ip route 输出结果(白色加显部分)可知,Cisco 2610 路由
器已成功学习到Redhat linux 服务器广播过来的RIP 路由条目。
在Redhat linux 服务器检查RIP 是否生效:
从sh ip rip 输出结果(白色加显部分)可知,Redhat linux 服务
器已成功学习到Cisco 2610 路由器广播过来的RIP 路由条目。
4、测试
在个人PC 机上添加一条到172.16.1.1/32 的静态路由:
从个人PC 机通过ping/tracert/telnet 测试网络:
从以上测试可知,Redhat linux 服务器运行的RIP 动态路由协议能
成功和Cisco 2610 路由器运行的RIP 动态路由协议配合工作。
5、特别说明
Redhat linux 服务器必须启用路由转发功能:
# echo “1” > /proc/sys/net/ipv4/ip_forward
六、结尾语
1、对于小型公司来说,可能没这么多资金购买硬件路由产品,低成
本的PC 机+linux+zebra 提供了一个可行的解决方案;
2、现在很多培训机构,特别是小型培训机构,为了节省投资,也会
采取这种架构搭建实验环境。
用Zebra 在Linux 上构建路由器实战手册
转载于:https://blog.51cto.com/rhcss/139475
用Zebra 在Linux 上构建路由器实战手册相关推荐
- 用Zebra打造Linux下小型路由器
用Zebra打造Linux下小型路由器 现在的Internet网络相当庞大,不可能在不同的网络之间建立直接的连接,所以这时就必须用路由器为不同网络之间的通信提供路径选择.Linux下搭建路由器价格非常 ...
- linux wap,在 Linux 上构建 WAP 网关(初级)
Webme09.cublog.cngoogle 在 Linux 上构建 WAP 网关(初级) | 2005-01-27 14:09 实现移动服务的最热门技术是无线应用协议(Wirele ...
- linux 赚钱游戏服务器,在Linux上构建游戏服务器所需的一切
与多个玩家玩游戏一直以来都比较有趣.它始于Atari 2600和街机机柜.当互联网时代到来时,游戏服务器使远程多人游戏成为现实. 使用当前一代的PC游戏,您可以连接到服务器或自己运行.Minecraf ...
- linux 路由器软件,用Zebra打造Linux下小型路由器(图)
首先编辑ifcfg-eth0,让它的地址为192.168.1.1, 详细内容如下: [root@rhel5~]#vi /etc/sysconfig/network-scripts/ifcfg-eth0 ...
- linux下动态路由软件,用Zebra打造Linux下小型路由器(图)
首先编辑ifcfg-eth0,让它的地址为192.168.1.1, 详细内容如下: [root@rhel5~]#vi /etc/sysconfig/network-scripts/ifcfg-eth0 ...
- 在Linux上构建ASP.NET环境-asp.net关注
在Linux上安装mono,xsp,mod_mono后,可以构建一个ASP.NET环境,Mono项目是由Novell支持的. mono官网地址: mono下载页面:/mono-downloads/do ...
- Linux上构建一个RADIUS服务器详解
作为一名网络管理员,您需要为您所需管理的每个网络设备存放用于管理的用户信息.但是网络设备通常只支持有限的用户管理功能.学习如何使用Linux上的一个外部RADIUS服务器来验证用户,具体来说是通过一个 ...
- 如何借助vsftpd在Linux上构建安全的FTP服务?
FTP(文件传输协议)是互联网上广泛使用的服务之一,主要用于将文件从一个主机传输到另一个主机.FTP本身当初不是作为一种安全协议而设计的;正因为如此,典型的FTP服务很容易遭受诸如中间人***和蛮力* ...
- linux so 发布,如何在Linux上构建发布包含.so动态库的snap安装包
Linux上要发布源码包比较容易,只要做个压缩包.tar.gz就可以.但是如果要做一个包含库和可执行文件的安装包,就比较麻烦.Linux的版本很多,需要做不同格式的安装包,比如.deb和.rpm,同时 ...
最新文章
- 以下哪一个不属于python语言的特点-Python语言的特点有哪些
- InsecureRequestWarning: Unverified HTTPS request is being made to host(requests证书警告)
- s4-8 虚拟局域网
- 2018 多校联合训练 10
- colab加载google drive并且调试时跳过不运行
- Cookie 与Session 的区别
- 双向链表的创建和相关操作
- java 多目录 编译jar_javac编译多个包下的、依赖其他jar包的java文件
- 结对项目 刘静 201303014059 计科高职13-2
- ibmt41 安装linux系统,哥我决意为IBM T41 装WIN7的决心已经到了全人类都无法阻止的地步!...
- windows 安装 mongodb
- 机器学习UCI数据库
- 电商微商已死、视商来袭
- 网络精英赛模拟练习(8)
- 在Excel里快速插入目录
- 网络连接不正常是什么原因
- 如何用 Node.js 爬虫?
- 闰年的计算方法及程序算法的实现
- 如何使用Python轻松解决TSP问题(遗传算法)
- PDF和CDF图的区别