歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 自由路由軟件Zebra基本配置完全攻略

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

日期:2017/2/27 9:33:04   编辑:更多Linux
  前言  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




Copyright © Linux教程網 All Rights Reserved