国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 網絡通信 > 正文

Linux下建立網絡路由器

2019-11-05 00:56:17
字體:
來源:轉載
供稿:網友

對于網絡互聯工程師們來說,建立一個互聯網動態路由是非常重要的。這不僅需要了解路由的概念,而且還必須知道如何付諸實踐。就目前而言,網絡設備主要由Cisco這樣的大公司來提供。大多數獨立的路由開發者們經常受到學校或實驗室環境的制約,無法充分利用現有的資源。而利用Cisco技術設備打造網絡需要大量的成本。為了打破這種局面,我們利用一個小型的實驗網絡,應用路由信息協議(Rip)和開放式最短路徑優先(OSPF)兩種技術,展示各自不同的平衡加載方案。

在我們使用的三個路由器中,有一個是利用linux技術模擬的。最初,我們試圖利用傳統的路由和選通無交互后臺程序來組建測試網絡,但很快發現這種方法設置起來十分復雜而且功能有限。最后,我們決定找一個更先進的方法建立測試網絡,幸運的是我們找到了Zebra。

什么是Zebra

Zebra是一種TCP/IP路由軟件,它支持BGP-4、BGP-4+、OSPFv2、OSPFv3、RIPv1、RIPv2和RIPng。它符合GNU的GPL標準,可以運行在Linux和其它Unix變體系統上。Zebra是最先進的路由軟件之一,最新版本可以從GUN Zebra Web站點上下載。

最早的Zebra套件是由Kunihiro Ishiguro和Yoshinari Yoshikawa在1996年開發的。目前,Zebra套件主要由IP Infusion公司負責維護,軟件的創始人之一Ishiguro是公司的CTO。

Zebra可以利用模塊法對各種協議進行治理,這種設計是獨一無二的。它可以根據網絡的需要激活或者停止協議。到目前為止,我們發現Zebra最有用的地方在于它與Cisco IOS設置格式十分相近。盡管它與IOS之間存在著一些差異,但是那些熟悉IOS的網絡工程師們會很快適應Zebra網絡環境的。目前,Zebra 1.0還沒有推出,最新的版本是Zebra 0.93b,它對于一個小型網絡已經足夠了。

Zebra的安裝

我們選擇了性能穩定的ThinkPad X20作為Zebra的硬件測試平臺,Red Hat Linux 9作為其軟件測試平臺。ThinkPad X20擁有一個內置的以太網接口。為了使其能充當路由器使用,我們為它增加了一個PCMCIA以太網卡。在安裝Zebra前,首先要確定所有的網卡都能被Linux系統識別。

Red Hat 9中已經集成了Zebra 0.93b的RPM。當然,你也可以從網上下載Zebra 軟件。為了方便起見,我們決定安裝 Zebra 0.93b RPM。Zebra RPM的安裝過程與其它軟件基本相同。安裝的項目包括二進制設置命令、小型程序、配置文件以及必需項目菜單、實例和文檔等。

Zebra的基本設置

Zebra無后臺交互程序是實實在在的路由治理程序。它控制著其它的軟件模塊,同時還提供與客戶交互的主端口。Zebra RPM套件中包括一個完整的參考設置文件。但是,我們只需要建立一個包括以下內容的/etc/zebra/zebra.conf文件就可以對Zebra進行設置了。

最簡單的Zebra設置文件:

hostname speedmetalpassWord zebraenable password zebra


無論何時,當你進入交互式設置模式時,Hostname指令將指定路由器的名稱。該名稱可以任意設置,不一定和主機的名稱相符。Password指令則確定交互式Zebra終端的登陸密碼。

/etc/zebra/zebra.conf建立后,我們可以執行下列指令來啟動zebra無后臺交互程序:

# service zebra start


現在我們可以通過連接機器的2601端口進入Zebra交互對話模式。

Zebra對話模式實例:

[root@speedmetal zebra]# telnet 127.0.0.1 2601Trying 127.0.0.1...Connected to 127.0.0.1.Escape character is '^]'.Hello, this is zebra (version 0.93b).Copyright 1996-2002 Kunihiro Ishiguro.User access VerificationPassword: zebraspeedmetal> enablePassword: zebraspeedmetal# ?  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 terminalspeedmetal#




我們很輕易就能對此了如指掌,因為可以通過點擊屏幕上的?鍵隨時了解某一命令的含義。假如有過配置Cisco路由器的經驗,相信對這一設置過程并不生疏。

到目前為止,我們只完成了Zebra自身的設置和運行,對各種協議的設置還沒有開始,假如你預備好了,就讓我們繼續吧。

設置和使用MRLG

MRLG(Multi-Router Looking Glass)是EnterZone公司John Frazier編寫的一種網基工具。它可以用來顯示可被Zebra識別的接口和路徑。MRLG實際上只是一個由有限命令組成的Zebra指定命令行處理程序的Web接口。但是我們在測試過程中,發現它可以快速顯示路徑。這一點對于網絡協議來說十分重要,因此,在設置協議前要先安裝MRLG。

MRLG需要Net::Telnet Per套件才能與Zebra指定命令行處理程序進行通信。不幸的是我們在Red Hat 9 中無法找到Net::Telnet Per套件,因此只有在網上下載了。

由于MRLG是作為一個CGI應用程序來運行的,因此我們還需要安裝一個網絡服務器軟件。用戶可以作用Red Hat 9中集成的HTTPD RPM。

我們將/usr/share/doc/zebra-0.93b/tools中的mrlg.cgi文件復制到/var/www/cgi-bin中,然后再對mrlg.cgi的第36行進行修改,由$url="http://www.sample.com/mrlg.cgi";改為$url=http://127.0.0.1/cgi-bin/mrlg.cgi。另外,我們還要對168到174行間的指令塊進行修改,修改后的指令塊如下:

if ($Form{'router'} eq 'router1')        {$server = '127.0.0.1';$login_pass = 'zebra';$bgpd = "2605";$zebra = "2601";$full_tables=1;


最后,要連接MRLG,還要將瀏覽器中的地址欄中輸入http://127.0.0.1/cgi-bin/mrlg.cgi.,結果如圖1所示。

Linux下建立網絡路由器

圖1 連接MRLG,輸入地址的顯示



實驗室配置

我們的實驗室配置包括2臺Cisco 3620路由器和一臺ThinkPad X20。ThinkPad X20除了具備內置以太網端口,還裝有一個Home-and-Away PCMCIA以太網卡。兩臺Cisco 3620路由器之間的通信主要靠串口連接來實現,它們與ThinkPad X20的連接則是靠以太網來實現的,總體架構如圖2所示。

Linux下建立網絡路由器

圖2 總體架構示意圖

利用Zebra設置網絡端口

我們利用Zebra軟件對網絡進行治理首先要靠RIP來實現。上文提到我們已經在ThinkPad上安裝了Zebra。由于我們需要在ThinkPad上建立另外一個網絡接口,為此我們必須首先設置一個虛擬網絡設備,如:

# modprobe dummy# ifconfig dummy0


接下來,我們就可以連接進入Zebra程序端口開始設置。我們與Zebra的對話須按下列順序進行。

端口設置順序:

User Access VerificationPassword: zebraspeedmetal> enablePassword: zebraspeedmetal# configure terminalspeedmetal(config)# interface eth0speedmetal(config-if)# ip address 192.168.2.1/30speedmetal(config-if)# quitspeedmetal(config)# interface eth1speedmetal(config-if)# ip address 192.168.1.1/30speedmetal(config-if)# quitspeedmetal(config)# interface dummy0speedmetal(config-if)# ip address 10.0.2.1/24speedmetal(config-if)# writeConfiguration saved to /etc/zebra/zebra.confspeedmetal(config-if)# endspeedmetal# show runCurrent configuration:!hostname speedmetalpassword zebraenable password zebra!interface lo!interface eth0 ip address 192.168.2.1/30!interface dummy0 ip address 10.0.2.1/24!interface eth1 ip address 192.168.1.1/30!!line vty!end


注重:我們并沒有按照常規方法在ThinkPad上設置IP地址,而是通過Zebra來設置它們的。這些設置保存在/etc/zebra/zebra.conf文件中,因此每當Zebra服務啟動時,這些設置便被激活。

zebra.conf文件的主要內容如下:

/etc/zebra/zebra.conf文件的內容


!! Zebra configuration saved from vty!   2003/08/20 00:07:51!hostname speedmetalpassword zebraenable password zebra!interface lo!interface eth0 ip address 192.168.2.1/30!interface dummy0 ip address 10.0.2.1/24!interface eth1 ip address 192.168.1.1/30!!line vty!


我們也可以使用MRLG查看各網絡端口的狀態,具體步驟是選擇缺省狀態“router1”,然后選擇“show interface”按鍵,點擊“Execute”。

利用Zebra設置RIP路由選擇

由于我們已在ThinkPad路由器上設置了網絡端口,接下來我們就可以對路由器進行設置使它與RIP同步工作了。Zebra使用不同的無后臺交互程序支持不同的路由協議,因此我們要先建立一個簡單的設置文件/etc/zebra /ripd.conf。

基本/etc/zebra/ripd.conf文件:

hostname speedmetal-rippassword zebraenable password zebra


運行ripd 無后臺交互程序:

# service ripd start


然后,我們就可以通過連入Zebra路由器的2602接口,對RIP無后臺交互程序進行設置了。

RIP設置:

User Access VerificationPassword: zebraspeedmetal-rip> enablePassword: zebraspeedmetal-rip# configure terminalspeedmetal-rip(config)# router ripspeedmetal-rip(config-router)# network 10.0.0.0/8speedmetal-rip(config-router)# network 192.168.0.0/16speedmetal-rip(config-router)# endspeedmetal-rip# show runCurrent configuration:!hostname speedmetal-rippassword zebraenable password zebra!interface lo!interface eth0!interface dummy0!router rip network 0.0.0.0/0 network 192.168.0.0/16!line vty!endspeedmetal-rip# writeConfiguration saved to /etc/zebra/ripd.confspeedmetal-rip#


設置后的/etc/zebra/ripd.conf 文件為:

!! Zebra configuration saved from vty!   2003/08/19 13:50:30!hostname speedmetal-rippassword zebraenable password zebra!interface lo!interface eth0!interface eth1!interface dummy0!router rip network 10.0.0.0/8 network 192.168.0.0/16!line vty!


在Cisco路由器上建立RIP路由選擇

為了使兩臺Cisco 3620路由器的設置更加簡便,我們將其命名為“A”和“B”,我們這里只對做最基本的設置以便它們可以正常工作。這些設置包括設置端口IP地址、回送地址和用于正常串口通信的串口時鐘頻率。

對路由器A的設置:

Router#config terminalRouter(config)#hostname RouterARouterA(config)#int s0/0RouterA(config-if)#ip address 192.168.0.1 255.255.255.252RouterA(config-if)#no shutRouterA(config-if)# interface fastEthernet 0/0RouterA(config-if)#ip address 192.168.2.2 255.255.255.252RouterA(config-if)#no shutRouterA(config-if)#int loopback 0RouterA(config-if)#ip address 10.0.0.1 255.255.255.0RouterA(config-if)#endRouterA#write


用同樣的方法可以對路由器B進行設置:

Router#configure terminalRouter(config)#hostname RouterBRouterB(config)#int s0/0RouterB(config-if)#ip address 192.168.0.2 255.255.255.252
RouterB(config-if)#no shutRouterB(config-if)#int fastEthernet0/0RouterB(config-if)#ip address 192.168.1.2 255.255.255.252RouterB(config-if)#no shutRouterB(config-if)#int loopback 0RouterB(config-if)#ip address 10.0.1.1 255.255.255.0RouterB(config-router)#endRouterB#write


在3620路由器上設置RIP與Zebra中的命令十分類似。我們通過控制線連接到兩臺3620路由器,并執行下列命令。

為路由器A設置RIP:

RouterA#conf tEnter configuration commands, one per line. End with CNTL/Z.RouterA(config)#router ripRouterA(config-router)#network 10.0.0.0RouterA(config-router)#network 192.168.0.0RouterA(config-router)#network 192.168.2.0RouterA(config-router)#version 2RouterA(config-router)#endRouterA#write


為路由器B設置RIP:

RouterB#conf tEnter configuration commands, one per line. End with CNTL/Z.RouterB(config)#router ripRouterB(config-router)#network 10.0.1.0RouterB(config-router)#network 192.168.0.0RouterB(config-router)#network 192.168.1.0RouterB(config-router)#version 2RouterB(config-router)#endRouterB#write


路由器的rip命令主要負責激活RIP進程,該網絡命令可以告知路由器RIP將向哪個網絡蔓延。

用RIP進行路徑拓展

現在我們已經完成了Cisco路由器和Zebra軟件的設置,接下來我們可以查看那些正在拓展的路徑。在MRLG狀態下,我們選擇“show ip route”項,點擊“Execute”,我們將獲得一些報告。

利用Zebra顯示的RIP路徑:

Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,       B - BGP, > - selected route, * - FIB routeR>* 10.0.0.0/24 [120/2] via 192.168.2.2, eth0, 00:11:05R>* 10.0.1.0/24 [120/2] via 192.168.1.2, eth1, 00:02:08C>* 10.0.2.0/24 is directly connected, dummy0K * 127.0.0.0/8 is directly connected, loC>* 127.0.0.0/8 is directly connected, loR>* 192.168.0.0/30 [120/2] via 192.168.2.2, eth0, 00:11:05C>* 192.168.1.0/30 is directly connected, eth1C>* 192.168.2.0/30 is directly connected, eth0


有R標志的路徑是通過RIP獲得的。

Zebra現在已經識別了基于路由器A和路由器B的兩個網絡10.0.0.0/24 和 10.0.1.0/24。我們可以在ThinkPad上運行ping 10.0.0.1和ping 10.0.1.1對網絡連通情況進行檢測。

為了檢驗網絡發生故障時的應對措施,我們將連接路由器A的網絡斷開,大約超時2分鐘后,Zebra開始通過路由器B繞道連接入10.0.0.0/24網。我們將在下期文中詳解。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 禄丰县| 普陀区| 沿河| 巴中市| 紫阳县| 三河市| 周宁县| 庄浪县| 乌拉特后旗| 临洮县| 历史| 萍乡市| 阿荣旗| 佳木斯市| 师宗县| 南江县| 淳化县| 周宁县| 灵山县| 光泽县| 井陉县| 梓潼县| 大关县| 吐鲁番市| 彩票| 海门市| 崇左市| 郁南县| 常州市| 英吉沙县| 仙桃市| 盘锦市| 吐鲁番市| 夏河县| 临高县| 武山县| 密山市| 岚皋县| 买车| 辽宁省| 汤原县|