Zebra 是个开源的 TCP/IP 路由软件,同 Cisco Internet 网络操作系统(IOS)类似。他灵活而且具备强大的功能,能够处理路由信息协议(RIP)、开放式最短路径优先协议(OSPF)和边界网关协议连同这些协议的任何变体。本文介绍了作者安装 Zebra 并且使之和真正的 Cisco 路由器配合来动态地管理路由。

动态、健壮的路由对于 Internet 网络来说极其重要,因此任何一个初涉此领域的网络工程师不但需要理解路由的概念,而且要有能力在真正的环境下驾驭他。但是,路由领域由高端网络设备供给商(比如 Cisco)提供的产品一统天下,这就意味着对于大多数人来说,只能在学校或实验室环境中才能学习路由,而且还要一直受到实践时间和实践条件的困扰。

我们在组织一门关于 TCP/IP 路由的课程时就碰到了这样的困难。在一个小型的测试环境下,我们想演示在使用路由信息协议(RIP)和开放式最短路径优先协议(OSPF)时各种不同的负载平衡情形。但是,我们手头上的 Cisco 路由器数量有限。但是我们有一些 PC 机能够使用,于是我们开始想办法用 Linux 来仿真 Cisco 路由器以解决这个问题。

开始时我们尝试使用传统的路由和网关守护进程来构建我们的测试网络,但我们很快就发现对他们进行配置比较困难,而且他们的能力有限,我们的工作得不偿失。于是我们决定尝试使用更先进的方法来完成我们的测试网络,很幸运,我们找到了 Zebra。

什么是 Zebra?

Zebra 是个 TPC/IP 路由软件,支持 BGP-4、BGP-4 、OSPFv2、OSPFv3、RIPv1、RIPv2 和 RIPng。他的发行遵循 GNU 通用公共许可协议,能够运行于 Linux 连同其他一些 Unix 变体操作系统上。Zebra 是那些系统最新的发行版本中的路由软件。最新版本的 Zebra 连同文档能够从 GNU Zebra 网站上下载(参阅 参考资料中的链接)。

最初的 Zebra 软件包由 Kunihiro Ishiguro 和 Yoshinari Yoshikawa 于1996年完成。现在,这个软件包主要由 IP Infusion――CTO 是 Ishiguro 先生――在多名网络工程师连同开源志愿者的帮助下来维持。

Zebra 的设计独特,采用模块的方法来管理协议。能够根据网络需要启用或禁用协议。

Zebra 最为实用的一点是他的配置形式同 Cisco IOS 极其类似。尽管他的配置和 IOS 相比还是有一些不同,但是这对于那些已熟悉 IOS 的网络工程师来说在这种环境下工作将相当自如。

虽然 Zebra 的版本还没有到 1.0――作者完成本文时版本到了 0.93b――但这个产品对于需要核心路由器的小型网络来说已足够了。 [请注意本文中所用到的是版本 0.93b,新的版本的安装和配置可能会有所差异。-编辑注]

安装 Zebra

我们的 Zebra 测试平台是一台旧的但是依然很好用的 ThinkPad X20,其运行的是 Red Hat Linux 9。ThinkPad 有一个内置的以太网接口,我们又给他加了一块 PCMCIA 以太网卡,使之能够完成路由器的功能。在安装 Zebra 之前,我们确认两块网卡都已被 Linux 认出并且正常工作。

在 Red Hat 9 中已附带了 Zebra-0.93b 的 RPM 安装包。这个版本和 Zebra 网站上提供的版本相同,因此我们决定直接使用他,而不再去从网上下载并自己编译。Zebra RPM 将安装二进制文档、脚本和配置文档,连同必需的手册、例子和文档文档。

Zebra 基本配置

zebra 守护进程是实际的路由管理者,控制着其他模块;而且用户主要通过他进行交互。我们最先需要配置 Zebra 守护进程,对应的配置文档是 /etc/zebra/zebra.conf。

Zebra RPM 包中有一个完整的配置文档样例。但是,就最简化的情形来说,我们实际上只需要创建一个包含以下几行的 /etc/zebra/zebra.conf 文档:


清单 1.一个最简的 Zebra 配置文档



            hostname speedmetal

            password zebra

            enable password zebra

            

hostname 指定了当您进入交互式配置方式时的路由器名。他能够是任何一个标识,不一定要和机器的主机名相同。

password 指定了登录进入交互式 Zebra 终端时需要的密码。

enable password 指定了当您想要改变配置时以较高级别身份访问 Zebra 所需要的密码。

创建了 /etc/zebra/zebra.conf 文档以后,我们现在能够执行下面的命令来启动 zebra 守护进程:

# service zebra start

现在通过 telnet 到我们的机器的 2601 端口就能够进入 Zebra 交互式会话。


清单 2. 一个 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#

            

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!