用Zebra 在Linux 上構建路由器實戰手冊

用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][email protected][/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、現在很多培訓機構,特別是小型培訓機構,爲了節省投資,也會
採取這種架構搭建實驗環境。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章