自由路由軟件ZEBRA基本配置完全攻略

前言

  Zebra是一個路由軟件包,提供基於TCP/IP路由服務,支持RIPv1, RIPv2, RIPng, OSPFv2, OSPFv3, BGP- 4, 和 BGP-4+等衆多路由協議。Zebra還支持BGP特性路由反射器(Route Reflector)。除了傳統的 IPv4路由協議,Zebra也支持IPv6路由協議。如果運行的SNMP守護進程(需要ucd-snmp)支持SMUX協 議,Zebra還能支持路由協議MIBs。

  由以上可見,Zebra的確是一個很不錯的路由系統,但比起真正的路由器就簡直是小兒科,所以網絡高手 就當這文章是小孩子過家家吧,而對於象我這樣的初學者(特別是沒有真實設備或足夠設備進行實驗) 也不失爲一個學習和熟悉路由配置、路由協議的好工具。我沒有實際的配置經驗,對路由的技術細節也 不是十分清晰,完全是在扔破磚頭。希望路由高手指正概念錯誤。

  安裝

  Zebra目前最新的版本是0.92a,它的安裝非常簡單,我們只需從http://www.zebra.org/下載zebra- 0.92a.tar.gz,然後執行以下命令安裝(本文環境是RedHat7.2):

  shell> tar xzf zebra-0.92a.tar.gz

  shell> cd zebra-0.92a

  shell> ./configure

  shell> make

  shell> make install

  這樣Zebra就安裝好了,安裝的執行文件:

  shell> ls /usr/local/sbin

  bgpd

  ospfd

  ripd

  zebra

  配置文件:

  shell> ls /usr/local/etc

  bgpd.conf.sample

  ospfd.conf.sample

  zebra.conf.sample

  bgpd.conf.sample2

  ripd.conf.sample

  運行

  編譯安裝完Zebra後,可以看到有4個可執行文件和5個配置樣本文件,我們就使用它的配置樣本文件:

  shell> cd /usr/local/etc

  shell> cp zebra.conf.sample zebra.conf

  Zebra的各進程有各自的終端接口或VTY,如果我們需要給連接到它們的端口設置別名的話,在/etc/ services文件添加如下內容:

  zebrasrv

  2600/tcp

  # zebra service

  zebra

  2601/tcp

  # zebra vty

  ripd

  2602/tcp

  # RIPd vty

  ripngd

  2603/tcp

  # RIPngd vty

  ospfd

  2604/tcp

  # OSPFd vty

  bgpd

  2605/tcp

  # BGPd vty

  ospf6d

  2606/tcp

  # OSPF6d vty

  然後就可以啓動Zebra了:

  shell> zebra -d

  這樣,Zebra就以守護進程啓動了,其它的參數請參考zebra -h。

  基本路由配置命令

  直接用telnet連接:

  shell> telnet localhost 2601

  Trying 127.0.0.1...

  Connected to localhost.

  Escape character is '^]'.

  Hello, this is zebra (version 0.92a).

  Copyright 1996-2001 Kunihiro Ishiguro.

  User Access Verification

  Password:

  Zebra會提示輸入口令,我們通過/usr/local/etc/zebra.conf可以看到口令是zebra,enable口令也是zebra。

  輸 入口令zebra,得到路由器用戶模式提示符:

  Router>

  進入特權模式:

  Router> en

  Password:

  Router#

  輸入一個問號,看看Zebra提供了多少路由命令:

  Router# ?

  configure

  Configuration from vty interface

  copy

  Copy configuration

  debug

  Debugging functions (see also 'undebug')

  disable

  Turn off privileged mode command

  end

  End current mode and change to enable mode.

  exit

  Exit current mode and down to previous mode

  help

  Description of the interactive help system

  list

  Print command list

  no

  Negate a command or set its defaults

  quit

  Exit current mode and down to previous mode

  show

  Show running system information

  terminal

  Set terminal line parameters

  who

  Display who is on vty

  write

  Write running configuration to memory, network, or terminal

  提供的命令很少,實際路由器好多命令都沒有,我們只能用有限的命令投入到無限的實驗中去。

  Router# sh run

  Current configuration:

  !

  hostname Router

  password zebra

  enable password zebra

  !

  interface lo

  !

  interface eth0

  !

  line vty

  !

  end

  Zebra把操作系統的網絡接口當做路由器的接口,所以在做比較複雜的路由實驗,會需要比較多的網卡。

  進入全局模式,儘可能把實際可用的配置命令都實驗一遍:

  Router# conf t

  Router(config)#

  自己取一個路由器名字:

  Router(config)# hostname r1

  r1(config)#

  Zebra比較簡單,登陸口令不是在line下修改,而是直接在全局模式下用password修改r1(config)# password {password}

  Zebra不支持enable secret {password}這種MD5加密口令,只能使用enable password {password}來修改 enable口令:

  r1# conf t

  r1(config)# enable password {password}

  在路由器配置中加密所有的口令:

  r1(config)# service password-encryption

  回到特權模式:

  r1(config)# exit

  r1# sh run

  Current configuration:

  !

  hostname r1

  password 8 alA5.vcyMAwXQ

  enable password 8 ksbxOFN8xcFMc

  service password-encryption

  !

  interface lo

  !

  interface eth0

  !

  line vty

  !

  end

  我們看到剛纔的明文密碼都進行加密了,給我們的實驗機也提高安全性。Zebra有一點比較噁心,如果我 們先設置了service password-encryption,然後再修改口令,sh run就發現口令又都是明文的了,但是由 於有service password-encryption,所以就無法登陸了。

  去掉會話超時,免得10分鐘沒有動作,就把我們給踢了。但是在實際的路由器配置中,爲安全起見我們 最好還是設上會話超時。

  r1# conf t

  r1(config)# line vty

  r1(config-line)# exec-timeout 0 0

  設置日誌記錄,Zebra可以把日誌記錄到標準輸出、syslog、以及指定輸出文件:

  r1(config-line)# exit

  r1(config)# log stdout

  r1(config)# no log stdout

  r1(config)# log syslog

  r1(config)# no log syslog

  r1(config)# log file /usr/local/etc/zebra.log

  配置接口IP地址:

  r1(config)# int lo

  r1(config-if)# ip address 127.0.0.1/8

  r1(config-if)# exit

  r1(config)# int eth0

  r1(config-if)# ip address 192.168.5.121/24

  Zebra比較奇怪,不能使用ip address 192.168.5.121 255.255.255.0這種形式設置IP。測試一下,就設置成和Linux中使用的一樣。

  保存我們剛纔的配置:

  r1(config-if)# exit

  r1(config)# exit

  r1# copy run start

  Configuration saved to /usr/local/etc/zebra.conf

  r1#

  2、用Zebra做簡單的RIP實驗

  RIP是應用較早、使用較普遍的IGP,適用於小型同類網絡,是典型的距離向量(distance-vector)協 議。RIP通過廣播UDP報文來交換路由信息,每30秒發送一次路由信息更新。RIP提供跳躍計數(hop count)作爲尺度來衡量路由距離,跳躍計數是一個包到達目標所必須經過的路由器的數目。如果到相同 目標有二個不等速或不同帶寬的路由器,但跳躍計數相同,則RIP認爲兩個路由是等距離的。RIP最多支 持的跳數爲15,即在源和目的網間所要經過的最多路由器的數目爲15,跳數16表示不可達。RIPv2支持 驗證、密鑰管理、路由彙總、無類域間路由(CIDR)和變長子網掩碼(VLSMs)。

  Zebra支持RIPv2,使用ripd程序實現RIP路由功能,但ripd程序需要在zebra程序讀取接口信息,所以zebra 一定要在ripd之前啓動。由於條件所限,下面的RIP實驗是在兩臺單網卡的RedHat7.2下做的,所以只是 最簡單的演示。

  按照上面基本配置的方法初始化第一臺機器:

  shell_1> cd /usr/local/etc

  shell_1> cp zebra.conf.sample zebra.conf

  shell_1> cp ripd.conf.sample ripd.conf

  shell_1> zebra -d

  進入zebra設置IP

  shell_1> telnet localhost 2601

  Password:

  Router> en

  Password:

  Router# conf t

  Router(config)# hostname r1

  r1(config)# int eth0

  r1(config-if)# ip address 192.168.5.121/24

  r1(config-if)# ctrl+z

  r1# copy run start

  進入第一臺機器的rip設置

  shell_1> ripd -d

  shell_1> telnet localhost 2602

  Password:

  ripd> en

  ripd# conf t

  ripd(config)# hostname r1_ripd !改個名字好辨認

  r1_ripd(config)# router rip !啓動rip

  r1_ripd(config-rout


本文轉自http://doc.linuxpk.com/40619.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章