用Zebra 在Linux 上构建路由器实战手册
用Zebra 在Linux 上构建路由器实战手册
一、Zebra 介绍
Zebra 是一个 TPC/IP 路由软件,支持 BGP-4、BGP-4+、OSPFv2、
OSPFv3、RIPv1、RIPv2 和 RIPng。它的发行遵循 GNU 通用公共许可
协议,可以运行于 Linux 以及其他一些 Unix 变体操作系统上。
Zebra 是那些系统最新的发行版本中的路由软件。最新版本的 Zebra
以及文档可以从 GNU Zebra 网站上下载:http://www.zebra.org/
Zebra 的设计独特,采用模块的方法来管理协议。可以根据网络需要
启用或者禁用协议。
Zebra 最为实用的一点是它的配置形式同 Cisco IOS 极其类似。尽
管它的配置与 IOS 相比还是有一些不同,但是这对于那些已经熟悉
IOS 的网络工程师来说在这种环境下工作将相当自如。
二、安装
1、下载
ftp://ftp.zebra.org/pub/zebra/zebra-0.95a.tar.gz
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 bug-zebra@gnu.org
可使用-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、Redh Redhat linux at 服务器配置:
确保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 是一个 TPC/IP 路由软件,支持 BGP-4、BGP-4+、OSPFv2、
OSPFv3、RIPv1、RIPv2 和 RIPng。它的发行遵循 GNU 通用公共许可
协议,可以运行于 Linux 以及其他一些 Unix 变体操作系统上。
Zebra 是那些系统最新的发行版本中的路由软件。最新版本的 Zebra
以及文档可以从 GNU Zebra 网站上下载:http://www.zebra.org/
Zebra 的设计独特,采用模块的方法来管理协议。可以根据网络需要
启用或者禁用协议。
Zebra 最为实用的一点是它的配置形式同 Cisco IOS 极其类似。尽
管它的配置与 IOS 相比还是有一些不同,但是这对于那些已经熟悉
IOS 的网络工程师来说在这种环境下工作将相当自如。
二、安装
1、下载
ftp://ftp.zebra.org/pub/zebra/zebra-0.95a.tar.gz
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 bug-zebra@gnu.org
可使用-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、Redh Redhat linux at 服务器配置:
确保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、现在很多培训机构,特别是小型培训机构,为了节省投资,也会
采取这种架构搭建实验环境。
目录 返回
首页