Linux配置网络路由器方案

来源:爱站网时间:2022-08-10编辑:网友分享
小编今天给大家带来了关于Linux配置网络路由器方案内容,对此而困扰的小伙伴可以看看以下这篇文章,希望爱站技术频道小编所整理的资料不会让你失望。

对于网络互联工程师们来说,建立一个互联网动态路由是非常重要的。这不仅需要了解路由的概念,而且还必须知道如何付诸实践。就目前而言,网络设备主要由Cisco这样的大公司来提供。大多数独立的路由开发者们常常受到学校或实验室环境的制约,

:无"G!管*垠T垠

无法充分利用现有的资源。而利用Cisco技术设备打造网络需要大量的成本。为了打破这种局面,我们利用一个小型的实验网络,应用路由信息协议(RIP)和开放式最短路径优先(OSPF)两种技术,展示各自不同的平衡加载方案。

在我们使用的三个路由器中,有一个是利用Linux技术模拟的。最初,我们试图利用传统的路由和选通无交互后台程序来组建测试网络,但很快发现这种方法设置起来十分复杂而且功能有限。最后,我们决定找一个更先进的方法建立测试网络,幸运的是我们找到了Zebra。

什么是Zebra

Zebra是一种TCP/IP路由软件,它支持BGP-4、BGP-4+、OSPFv2、OSPFv3、RIPv1、RIPv2和RIPng。它符合GNU的GPL标准,可以运行在

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自身的设置和运行,对各种协议的设置还没有开始,如果你准备好了,就让我们继续吧。

linux

设置和使用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,

%件=pY3n教{W.m}8%理!R

输入地址的显示

实验室配置

我们的实验室配置包括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的对话须按下列顺序进行。

linux

端口设置顺序:

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地址,$]!x件#提{&l而是通过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路由器,

sXB教04l]|TG{}:8IB

Pqtoa垠MtK6教WViP~x业[并执行下列命令。

为路由器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进程,

cAJ({"N管Ezc)N

该网络命令可以告知路由器RIP将向哪个网络蔓延。

linux

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

在上一期,我们已经完成了Cisco路由器和Zebra软件的设置,并介绍了查看那些正在拓展的路径的方法。而且,为了检验网络发生故障时的应对措施,我们将连接路由器A的网络断开。大约超时2分钟后,Zebra开始通过路由器B绕道接入10.0.0.0/24网。

断开路由器A后,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/3] via 192.168.1.2, eth0, 00:00:26

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

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.1.2, eth1, 00:00:26

C>* 192.168.1.0/30 is directly connected, eth1

C>* 192.168.2.0/30 is directly connected, eth0

为何总超时时间要超过2分钟呢?缺省的RIP超时只有30秒,但是RIP协议指定在确定无效路径前要进行3次重试(90秒),冲掉无效路径还需要大约240秒时间。由此可以证实RIP对于无效路径的反应是较迟钝的。

网络断开前,路由器A的路由选择如下:

RouterA#show ip route

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP

i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area

* - candidate default, U - per-user static route, o - ODR

P - periodic downloaded static route

Gateway of last resort is not set

10.0.0.0/24 is subnetted, 3 subnets

R       10.0.2.0 [120/1] via 192.168.2.1, 00:00:11, FastEthernet0/0

C       10.0.0.0 is directly connected, Loopback0

R       10.0.1.0 [120/1] via 192.168.0.2, 00:00:18, Serial0/0

192.168.0.0/30 is subnetted, 1 subnets

C       192.168.0.0 is directly connected, Serial0/0

192.168.1.0/30 is subnetted, 1 subnets

R       192.168.1.0 [120/1] via 192.168.0.2, 00:00:18, Serial0/0

[120/1] via 192.168.2.1, 00:00:11, FastEthernet0/0

192.168.2.0/30 is subnetted, 1 subnets

C       192.168.2.0 is directly connected, FastEthernet0/0

网络断开后,

)L|n5C8育:Z

路由器A的路由选择如下:

RouterA#show ip route

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP

i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area

* - candidate default, U - per-user static route, o - ODR

P - periodic downloaded static route

Gateway of last resort is not set

10.0.0.0/24 is subnetted, 3 subnets

R       10.0.2.0 [120/2] via 192.168.0.2, 00:00:09, Serial0/0

C       10.0.0.0 is directly connected, Loopback0

R       10.0.1.0 [120/1] via 192.168.0.2, 00:00:09, Serial0/0

192.168.0.0/30 is subnetted, 1 subnets

C       192.168.0.0 is directly connected, Serial0/0

192.168.1.0/30 is subnetted, 1 subnets

R       192.168.1.0 [120/1] via 192.168.0.2, 00:00:09, Serial0/0

192.168.2.0/30 is subnetted, 1 subnets

R       192.168.2.0 [120/2] via 192.168.0.2, 00:00:10, Serial0/0

通过Zebra设置OSPF路由选择

对RIP的设置完成后,接下来我们对OSPF路由选择进行设置。尽管OSPF和RIP可以同时使用,我们选择只使用OSPF,这样可以更加简单。要想从Zebra中终止RIP,只要利用下面的命令关闭ripd服务就行了。

# service ripd stop

linux

同样,我们为OSPF进行最基本的设置,我们需要有 /etc/zebra/ ospfd.conf文件。

基本的 /etc/zebra/ospfd.conf文件为:

hostname speedmetal-ospf

password zebra

enable password zebra

开启OSPF服务:

# service ospfd start

对OSPF的设置要比RIP简单一些,我们首先要确定一个理念,就是要OSPF将所能找到的所有路径都传播出去。对OSPF进行设置的端口为2604端口。

对OSPF进行设置的对话为:

[root@speedmetal zebra]# telnet 127.0.0.1 2604

User Access Verification

Password: zebra

speedmetal-ospf> enable

Password: zebra

speedmetal-ospf# configure terminal

speedmetal-ospf(config)# router ospf

speedmetal-ospf(config-router)# network 0.0.0.0/0 area 0

speedmetal-ospf(config-router)# end

speedmetal-ospf# write

Configuration saved to /etc/zebra/ospfd.conf

speedmetal-ospf# show run

Current configuration:

!

hostname speedmetal-ospf

password zebra

enable password zebra

!

!

router ospf

network 0.0.0.0/0 area 0

!

line vty

!

end

speedmetal-ospf#

结果将产生ospfd.conf设置文件。

由Zebra修改的 /etc/zebra/ospfd.conf 文件为:

!

! Zebra configuration saved from vty

!   2003/08/19 14:22:17

!

hostname speedmetal-ospf

password zebra

enable password zebra

!

!

!

interface lo

!

interface eth0

!

interface eth1

!

interface dummy0

!

router ospf

network 0.0.0.0/0 area 0

!

line vty

!

在Cisco路由器上建立OSPF

首先我们用下列命令来清除RIP并添加OSPF。

清除 RIP并添加OSPF:

RouterA#conf term

RouterA(config)no router rip

RouterA(config)#router ospf 100

RouterA(config-router)#network 0.0.0.0 255.255.255.255 area 0

RouterA(config-router)end

我们对路由器A和路由器B使用同样的方法。

利用OSPF对路径进行拓展

MRLG会显示下面的报告:

利用Zebra显示的OSPF路径为:

Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,

B - BGP, > - selected route, * - FIB route

O>* 10.0.0.0/32 [110/11] via 192.168.2.2, eth0, 00:00:01

O>* 10.0.1.1/32 [110/11] via 192.168.1.2, eth1, 00:02:53

O   10.0.2.0/24 [110/10] is directly connected, dummy0, 00:03:31

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

O>* 192.168.0.0/30 [110/58] via 192.168.2.2, eth0, 00:00:01

via 192.168.1.2, eth1, 00:00:01

O   192.168.1.0/30 [110/10] is directly connected, eth1, 00:03:21

C>* 192.168.1.0/30 is directly connected, eth1

O   192.168.2.0/30 [110/10] is directly connected, eth0, 00:03:31

C>* 192.168.2.0/30 is directly connected, eth0

注意,路径10.0.0.1/32和10.0.1.1/32有“O”标志,这表示它们是由OSPF获得的。当我们断开Zebra 路由器与路由器A的连接时,路径会自动更新。MRLG显示报告如下:

网络断开后,Zebra显示的OSPF路径为:

Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,

B - BGP, > - selected route, * - FIB route

O>* 10.0.0.1/32 [110/59] via 192.168.2.2, eth0, 00:01:10

O>* 10.0.1.1/32 [110/11] via 192.168.1.2, eth1, 00:09:46

O   10.0.2.0/24 [110/10] is directly connected, dummy0, 00:10:24

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

O>* 192.168.0.0/30 [110/58] via 192.168.1.2, eth1, 00:01:10

O   192.168.1.0/30 [110/10[ is directly connected, eth1, 00:10:14

C>* 192.168.1.0/30 is directly connected, eth1

O   192.168.2.0/30 [110/10] is directly connected, eth0, 00:10:24

C>* 192.168.2.0/30 is directly connected, eth0

由于OSPF 本身的特点,它对无效路径的识别速度比RIP迅速得多,

fKLT管的G)C提

只需要30秒的时间就可以找到新的替代路径。

结论

综上所述,我们为大家提供了一种Cisco路由器的替代方案。Zebra是一个相当不错的选择,它已经获得互联网上许多评论家的认可。从我们的实验中大家可以看到,在较简单的网络环境下,Zebra完全可以打造出可代替Cisco路由器的解决方案。

诚然,我们还应对Zebra进行深入的了解。分离式的路由选择无交互后台程序和分离式的设置文件也许会令你感到头疼,但只要我们细心理清思路,它可以与Cisco IOS设备很快兼容。总之,Zebra使Linux环境下的动态路由选择更加容易。如果你的成本有限,却又想快速建立一个网络路由器,我相信Zebra是你的最佳选择。

  Linux配置网络路由器方案内容不知道小伙伴们是不是都看明白了,为了让朋友们理解更多不同类型的技术文章,爱站技术频道网站准备了大量资料,有需要可以自行参考阅读。

上一篇:Ubuntu下安装vsftpd步骤

下一篇:Linux Squid代理服务器配置方法

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载