分享
 
 
 

Linux下建立网络路由器

王朝system·作者佚名  2008-05-21
窄屏简体版  字體: |||超大  

对于网络互联工程师们来说,建立一个互联网动态路由是非常重要的。这不仅需要了解路由的概念,而且还必须知道如何付诸实践。就目前而言,网络设备主要由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 speedmetal

passWord zebra

enable password zebra

无论何时,当你进入交互式设置模式时,Hostname指令将指定路由器的名称。该名称可以任意设置,不一定和主机的名称相符。Password指令则确定交互式Zebra终端的登陆密码。

/etc/zebra/zebra.conf建立后,我们可以执行下列指令来启动zebra无后台交互程序:

# service zebra start

现在我们可以通过连接机器的2601端口进入Zebra交互对话模式。

Zebra对话模式实例:

[root@speedmetal zebra]# telnet 127.0.0.1 2601

Trying 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 Verification

Password: zebra

speedmetal> enable

Password: zebra

speedmetal# ?

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

speedmetal#

我们很轻易就能对此了如指掌,因为可以通过点击屏幕上的?键随时了解某一命令的含义。假如有过配置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所示。

图1 连接MRLG,输入地址的显示

实验室配置

我们的实验室配置包括2台Cisco 3620路由器和一台ThinkPad X20。ThinkPad X20除了具备内置以太网端口,还装有一个Home-and-Away PCMCIA以太网卡。两台Cisco 3620路由器之间的通信主要靠串口连接来实现,它们与ThinkPad X20的连接则是靠以太网来实现的,总体架构如图2所示。

图2 总体架构示意图

利用Zebra设置网络端口

我们利用Zebra软件对网络进行治理首先要靠RIP来实现。上文提到我们已经在ThinkPad上安装了Zebra。由于我们需要在ThinkPad上建立另外一个网络接口,为此我们必须首先设置一个虚拟网络设备,如:

# modprobe dummy

# ifconfig dummy0

接下来,我们就可以连接进入Zebra程序端口开始设置。我们与Zebra的对话须按下列顺序进行。

端口设置顺序:

User Access Verification

Password: zebra

speedmetal> enable

Password: zebra

speedmetal# configure terminal

speedmetal(config)# interface eth0

speedmetal(config-if)# ip address 192.168.2.1/30

speedmetal(config-if)# quit

speedmetal(config)# interface eth1

speedmetal(config-if)# ip address 192.168.1.1/30

speedmetal(config-if)# quit

speedmetal(config)# interface dummy0

speedmetal(config-if)# ip address 10.0.2.1/24

speedmetal(config-if)# write

Configuration saved to /etc/zebra/zebra.conf

speedmetal(config-if)# end

speedmetal# show run

Current configuration:

!

hostname speedmetal

password zebra

enable 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 speedmetal

password zebra

enable 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-rip

password zebra

enable password zebra

运行ripd 无后台交互程序:

# service ripd start

然后,我们就可以通过连入Zebra路由器的2602接口,对RIP无后台交互程序进行设置了。

RIP设置:

User Access Verification

Password: zebra

speedmetal-rip> enable

Password: zebra

speedmetal-rip# configure terminal

speedmetal-rip(config)# router rip

speedmetal-rip(config-router)# network 10.0.0.0/8

speedmetal-rip(config-router)# network 192.168.0.0/16

speedmetal-rip(config-router)# end

speedmetal-rip# show run

Current configuration:

!

hostname speedmetal-rip

password zebra

enable password zebra

!

interface lo

!

interface eth0

!

interface dummy0

!

router rip

network 0.0.0.0/0

network 192.168.0.0/16

!

line vty

!

end

speedmetal-rip# write

Configuration saved to /etc/zebra/ripd.conf

speedmetal-rip#

设置后的/etc/zebra/ripd.conf 文件为:

!

! Zebra configuration saved from vty

! 2003/08/19 13:50:30

!

hostname speedmetal-rip

password zebra

enable 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 terminal

Router(config)#hostname RouterA

RouterA(config)#int s0/0

RouterA(config-if)#ip address 192.168.0.1 255.255.255.252

RouterA(config-if)#no shut

RouterA(config-if)# interface fastEthernet 0/0

RouterA(config-if)#ip address 192.168.2.2 255.255.255.252

RouterA(config-if)#no shut

RouterA(config-if)#int loopback 0

RouterA(config-if)#ip address 10.0.0.1 255.255.255.0

RouterA(config-if)#end

RouterA#write

用同样的方法可以对路由器B进行设置:

Router#configure terminal

Router(config)#hostname RouterB

RouterB(config)#int s0/0

RouterB(config-if)#ip address 192.168.0.2 255.255.255.252

RouterB(config-if)#no shut

RouterB(config-if)#int fastEthernet0/0

RouterB(config-if)#ip address 192.168.1.2 255.255.255.252

RouterB(config-if)#no shut

RouterB(config-if)#int loopback 0

RouterB(config-if)#ip address 10.0.1.1 255.255.255.0

RouterB(config-router)#end

RouterB#write

在3620路由器上设置RIP与Zebra中的命令十分类似。我们通过控制线连接到两台3620路由器,并执行下列命令。

为路由器A设置RIP:

RouterA#conf t

Enter configuration commands, one per line. End with CNTL/Z.

RouterA(config)#router rip

RouterA(config-router)#network 10.0.0.0

RouterA(config-router)#network 192.168.0.0

RouterA(config-router)#network 192.168.2.0

RouterA(config-router)#version 2

RouterA(config-router)#end

RouterA#write

为路由器B设置RIP:

RouterB#conf t

Enter configuration commands, one per line. End with CNTL/Z.

RouterB(config)#router rip

RouterB(config-router)#network 10.0.1.0

RouterB(config-router)#network 192.168.0.0

RouterB(config-router)#network 192.168.1.0

RouterB(config-router)#version 2

RouterB(config-router)#end

RouterB#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 route

R>* 10.0.0.0/24 [120/2] via 192.168.2.2, eth0, 00:11:05

R>* 10.0.1.0/24 [120/2] via 192.168.1.2, eth1, 00:02:08

C>* 10.0.2.0/24 is directly connected, dummy0

K * 127.0.0.0/8 is directly connected, lo

C>* 127.0.0.0/8 is directly connected, lo

R>* 192.168.0.0/30 [120/2] via 192.168.2.2, eth0, 00:11:05

C>* 192.168.1.0/30 is directly connected, eth1

C>* 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网。我们将在下期文中详解。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有