嵌入式linux路由zebra

2019-07-12 19:39发布

Ubuntu 10.10下仅用来实现一些简单功能,如IP包转发。 路由器至少有2个网络接口(网卡)用来链接不同网段,通常电脑上都有有线和无线两块网卡,也可以alias一个虚拟网卡来实验。 如需用有线网卡通过无线网卡来共享网络,可能还需要做NAT(不如直接作成前面介绍的VPN更方便) 先说静态转发:
echo "1" > /proc/sys/net/ipv4/ip_forward
或者修改/etc/sysctl.conf后,sysctl -p启用,如下图 设置两块网卡,其中一块A的网关设为另一块B的IP,A口进来的消息就可以从B口送出
为了B口回来的消息能从A传出,需添加一静态路由。 动态转发:一个真正路由应具备的功能,使用各种路由协议,动态设置路由信息。
zebra支持RIPv1, RIPv2, RIPng, OSPFv2, OSPFv3, BGP-4, and BGP-4+.
1、安装zebra:sudo apt-get install quagga
2、配置文件,先从/usr/share/doc/quagga/example目录下复制需要的文件到/etc/quagga/目录下
sudo cp /usr/share/doc/quagga/examples/zebra.conf.sample /etc/quagga/zebra.conf        //总体配置文件
sudo cp /usr/share/doc/quagga/examples/ospf.conf.sample /etc/quagga/ospfd.conf          //ospf路由协议配置文件 修改zebra.conf设置路由登陆密码,特权密码等,修改ospfd.conf等。 修改/etc/quagga/daemons,选择启动的服务,改成yes,即可 3、重启服务后联机,telnet 127.0.0.1 端口 zebrasrv    2600/tcp            # zebra service
zebra        2601/tcp            # zebra vty
ripd        2602/tcp            # ripd vty (zebra)
ripngd        2603/tcp            # ripngd vty (zebra)
ospfd        2604/tcp            # ospfd vty (zebra)
bgpd        2605/tcp            # bgpd vty (zebra)
ospf6d        2606/tcp            # ospf6d vty (zebra)
ospfapi        2607/tcp            # OSPF-API
isisd        2608/tcp            # ISISd vty (zebra)
4、登陆界面和使用cisco路由时差不多,下面的操作同cisco。

一个 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# 

  

在交互式终端中操作很简单。要获得可用命令的提示,您可以在任何时刻按 ?键,然后命令的选项就会出现在屏幕上。如果您正在构建您自己的 Zebra 路由器,而且您有配置 Cisco 路由器的经验的话,您会觉得这个配置过程非常熟悉。 

到现在为止,还只有 Zebra 被配置好并且运行起来了,但是还没有任何其他的协议。接下来将开始配置的实质内容,我们将向您介绍我们的这一过程。 


MRLG 的配置和使用 
Multi-Router Looking Glass,简称 MRLG,由 EnterZone 的 John Frazier 开发,是一个基于 Web 的工具,可以用来显示 Zebra 识别出来的接口和路由。MRLG 其实仅仅是 Zebra shell 的一个 Web 界面,只能使用有限的命令集,但是在我们的测试过程中,我们发现使用它是显示路由的一个快速而有效的途径。所以,在开始配置 Zebra 协议之前,我们先向您介绍如何安装 MRLG。 

MRLG 需要 Net::Telnet Perl 软件包的支持才能与 Zebra shell 通信。不过,这个软件包没有包含在常规的 Red Hat 9 发行版本中,所以我们只好自己去下载它(参阅 参考资料中的链接)。 

由于 MRLG 是作为一个 CGI 应用程序来运行,因此我们还需要安装一个 Web 服务器。如果您是自己在尝试这些事情,您可以直接使用 Red Hat 9 自带的 httpd RPM。 

我们将 /usr/share/doc/zebra-0.93b/tools 目录中的 mrlg.cgi 文件拷贝到 /var/www/cgi-gin 目录下。然后,我们修改 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。




 andyliu 回复于:2004-09-06 14:36:08 llzqq,同意你的建议,我已经更改了标题 :D  
继续转帖如下: 
基本的实验室配置 
我们的实验室配置包括两个 Cisco 3620 路由器和一个 ThinkPad X20(有一个内置的以太网接口和一个 Home-and-Away PCMCIA 以太网卡)。两个路由器通过串行线联接起来,并且每个路由器通过以太网连接到 ThinkPad。见我们的连接图: 

图 2. 实验室连接图




 andyliu 回复于:2004-09-06 14:41:44 使用 Zebra 配置接口 
我们首先从 RIP 协议开始讲述使用 Zebra 来管理路由。如前所述,我们已经在 ThinkPad 上安装了 Zebra。由于我们在 ThinkPad 上还需要另一个网络接口,我们安装了一个虚拟的网络设备,如下: 

# modprobe dummy 
# ifconfig dummy0  

我们 telnet 到 Zebra 端口来开始配置。我们按照以下顺序与 Zebra 会话: 

清单 3. 配置 IP 接口 
[color=darkblue:a30cc25b34][/color:a30cc25b34]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 
[color=darkblue:a30cc25b34][/color:a30cc25b34] 
要注意的是我们没有用常规的方法设置 ThinkPad 的 IP 地址;而是通过 Zebra 来设置它们。这些设置保存在 /etc/zebra/zebra.conf 配置文件中,因此每次当 Zebra 服务启动时,这些设置就会生效。 

Zebra.conf 文件中由 Zebra 修改的部分如下: 


清单 4. 由 Zebra 修改过的 /etc/zebra/zebra.conf 文件 
[color=darkblue:a30cc25b34][/color:a30cc25b34]! 
! 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 

[color=darkblue:a30cc25b34][/color:a30cc25b34]
 andyliu 回复于:2004-09-06 14:49:24 我们还可以用 MRLG 来检查接口的状态,方法是:选择默认值,"router1",选中单选按钮 "show interface",然后点击 "Execute"。 

使用 Zebra 安装配置 RIP 路由 
我们已经在 ThinkPad/router 上安装配置了网络接口,接下来我们再对它进行配置,使之可以与 RIP 更新协同工作。正如我们已经提到过的,Zebra 使用单独的守护进程来实现路由协议,所以我们必须首先为 RIP 守护进程在/etc/zebra 目录下创建一个简单的配置文件ripd.conf。 

清单 5. 一个基本的 /etc/zebra/ripd.conf 文件 

hostname speedmetal-rip 
password zebra 
enable password zebra 

  

然后我们启动 ripd 守护进程: 

# service ripd start 

完成后,我们可以 telnet 到我们的 Zebra 路由器的 2602 端口来配置 RIP 守护进程。 

清单 6. 配置 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# 

  

生成的 ripd.conf 配置文件如下所示: 

清单 7. 生成的 /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 路由器称为 "A" 和 "B",为了简化这两个路由器的配置,我们只配置了一些让路由器能正常运行的基本设置,包括设置接口的 IP 地址、环回地址,以及用于串口通信的串口时钟频率。 

清单 8. 配置路由器 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"。 

清单 9. 配置路由器 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,执行如下命令: 

清单 10. 在路由器 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: 

清单 11. 在路由器 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 

  

router rip 命令启动配置 RIP 的过程。network 命令告诉路由器哪些是 RIP 要传播的网段。 

RIP 传播路由 
现在 Cisco 路由器和 Zebra 都已经配置好,我们接下来检验传播的路由。在 MRLG 中,我们选择 "show ip route" 然后点击 "Execute"。生成如下报告: 

清单 12. 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 

  

通过 RIP 得到的路由用一个 R 来标记。 

要注意的是,通过路由器 A 和路由器 B 的广播,Zebra 现在知道了 10.0.0.0/24 和 10.0.1.0/24 两个网段。测试时,我们从 ThinkPad Zebra 路由器上 ping 10.0.0.1 和 10.0.1.1,并从两个路由器上 ping 10.0.2.1(ThinkPad 的虚拟网络接口)。 

为了测试路由的 failover,我们把连接网段 10.0.0.0/24 的路由器 A 上的网络连接断开。经过总计约两分钟的过期时间以后,Zebra 得到了另一个可达 10.0.0.0/24 的路由,这个新的路由是通过路由器 B 得到的。注意在下面的清单中,Zebra 通过 192.168.1.2 到达 10.0.0.0/24,而不是先前的路径。  


清单 13. 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 

  

为什么总的过期时间大于两分钟?RIP 默认的过期时间是 30 秒,但是 RIP 协议指定了在确认一个路由已经失效之前要进行 3 次重试(共 90 秒),并且还要有一段时间来清空无效的路由(还需要 240 秒)。众所周知,RIP 协议对连接失败反应迟钝,这一点在这里得到了明确的论证。 

这里是在 failover 发生之前路由器 A 的路由表的输出。 


清单 14. Failover 之前路由器 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 


  

failover 之后: 

清单 15. Failover 之后路由器 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
 andyliu 回复于:2004-09-06 14:54:05 使用 Zebra 配置 OSPF 路由 
完成 RIP 的配置后,我们开始配置 OSPF 路由。尽管 OSPF 和 RIP 可以同时使用,不过为了配置的简化,我们现在只使用 OSPF。我们只需要把 ripd 服务停掉,就可以在 Zebra 中将 RIP 禁用。 

# service ripd stop 

和前面一样,我们从 OSPF 的一个基本的配置文件开始,这次是 ospfd.conf,文件所在目录仍是 /etc/zebra。 

清单 16. 一个基本的 /etc/zebra/ospfd.conf 文件 

hostname speedmetal-ospf 
password zebra 
enable password zebra 

  

然后,我们启动 OSPF 服务: 

# service ospfd start 

对 OSPF 的配置比 RIP 简单:基本上我们仅仅需要告诉 OSPF 去广播所有它知道的路由。 

配置 OSPF 的端口是 2604。 

下面是我们配置 OSPF 的会话。 


清单 17. 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 配置文件的修改结果如下: 

清单 18. 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 协议: 

清单 19. 移除 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 报告是这样的: 

清单 20. 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 生成的报告如下: 


清单 21. Failover 之后 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 是基于链路状态的,所以 failover 速度快得多:新的路由在 30 秒内就可以传播完成。 

结束语 
我们的出发点是一个简单的需求,那就是我们的网络课程受设备条件所限,需要寻找一个 Cisco 路由器的替代品。Zebra 是一个明智的选择,它在网络上得到了诸多的好评。正如前面我们的实验所示,Zebra 在简单网络环境中完全可以取代 Cisco 路由器,可能也能用于一些更复杂的情形。 

无可否认,要转而使用 Zebra 需要一定程度的学习。使用单独的守护进程及单独的配置文件在刚开始时令人费解,但是当我们把这些理顺了以后,感觉它几乎和 Cisco IOS 没什么区别。 

总的来说,Zebra 使得在 Linux 上实现动态路由成为一项简单的任务。如果您需要尽快构建一个路由器,而您的预算却有限,不妨试试 Zebra。 


参考资料  

GNU Zebra 网站是查找 Zebra 相关资源的理想位置。 


Multi-Router Looking Glass 需要 Net::Telnet Perl 包的支持, 可以从 CPAN 获得。 


O'Reilly BGP 一书的作者 Iljitsch van Beijnum 在其文章“Running Zebra on a Unix Machine”中对 Zebra 进行了总体上的介绍。 


在 Cisco's UniverCD 教程中有对 RIP 协议和 OSPF 协议更为详细的介绍。 


如果您需要学习一些关于构建 Linux 局域网的基本知识,请参考“局域网的组建 ” (developerWorks, 2001年2月). 


正在使用无线? 请参考“在 Linux 上构建无线接入点” (developerWorks, 2003年7月)。 


在我们的网络列表中可以找到更多的 IBM 网络软件。 


要获得所有 IBM 网络硬件的信息,请访问网络产品主页。 


在 developerWorks Linux 专区可以找到更多为 Linux 开发者准备的参考资料。