Zebra 是一个开源的 TCP/IP 路由软件,同 Cisco Internet 网络操作系统(IOS)类似。它灵活而且具有强大的功能,可以管理IPv4和IPv6路由的工具。它支持BGP-4协议、BGP-4+协议、RIPv1协议、RIPv2协议、RIPng协议、OSPFv2协议和OSPFv3协议。从 www.Zebra.org 网站下载 Zebra 的最新源程序。 |
回复:Zebra路由器 | |
有关Zebra的相关介绍 安装 Zebra ./configure make make install 配置脚本会搜索系统上已经安装的 IP 栈并且自动地设置成支持他们。当前,IP 栈很可能仅仅是指 IPv4,但是 IPv6 用户也不用担心,因为 Zebra 也会发现并且支持它。 程序安装之后,还可能必须在 /etc/services 中增加一些命令行。Zebra 的守护程序在他们自己的虚拟终端连接(VTY)下运行,所以你的系统必须知道这些虚拟终端连接。这里是你应该增加的一些连接∶ zebrasrv 2600/tcp # zebra service zebra 2601/tcp # zebra vty ripd 2602/tcp # RIPd vty ripngd 2603/tcp # RIPngd vty ospfd 2604/tcp # OSPFd vty bgpd 2605/tcp # BGPd vty ospf6d 2606/tcp # OSPF6d vty 配置 Zebra 现在介绍如何在一个服务器上创建和运行 OSPF 和 BGP。Zebra 的守护程序运用纯文本文件储存它们的配置。对于 OSPF/BGP 路由器,将用到三个文件∶zebra.conf、ospfd.conf 和 bgpd.conf。举例来说,zebra.conf 文件可能会是这样: ! Zebra configuration saved from vty ! 2002/02/28 01:46:12 ! hostname LinuxRouter /*主机名为 LinuxRouter*/ password zebra /*口令为 zebra*/ enable password z3bRa /*进入特权模式时的口令为 z3bRa */ log file /var/log/zebra/zebra.log /*日志文件的地址*/ ! interface eth0 /*以太接口 eth0*/ description Interface to External Network/*对接口的描述*/ ip address 10.0.0.1/24 /*该接口的 IP 地址*/ ! interface eth1/*以太接口 eth0*/ description Interface to Internal Network/*对接口的描述*/ ip address 192.168.66.1/24/*该接口的 IP 地址*/ 这里的感叹号充当注解标识或分隔符。尽管存在大量不同的网络接口类型(Ethernet、ISDN 等等),但只要是 Linux 内核能够辨认的网络接口类型,Zebra 都可以使用。 子网掩码都带有网络位的位数(例如/24),默认掩码则不然(比如 255.255.255.0)。注意存在两个口令,一个用于用户模式而另一个用于特权模式。这不仅有利于向非管理员提供访问权限,而且对于创建路由服务器或者路由探测镜也是非常重要的。所有 BGP 管理员都知道,这些探测镜是调试路由问题的关键,因为他们能够使你就象从一个外部 AS( AS代表自治系统)一样查看路由。 BGP 路由需要用到 AS 编号,AS 编号是一些由 ARIN (美国互联网络号码注册机构)控制的注册号码。 下一步将启动一些必要的程序。用以下命令完成∶ /usr/sbin/zebra -dk /usr/sbin/ospfd -d /usr/sbin/bgpd -d 第一个命令,启动 zebra,该守护程序实际上用来更新内核的路由表。-dk 告诉该程序作为一个守护程序运行(d),它的大部分时间在后台运行。k 是另外的一个选项,告诉 Zebra 维护所有已配置的路由。它用来保证在你测试 Zebra 的时候不会意外地删除路由表。一般情况下,设置路由和接口,需要将 ifconfig 和 route 这两个命令配合使用。而 Zebra 完全可以替代这种路由管理方式,使用起来更为简洁。 设置OSPF 接下来,我们还需要告诉守护程序将通过 OSPF 广播哪些网络以及相关的域(area)。OSPF 的可伸缩性允许它支持多个域。键入 router ospf 开始配置 OSPF,然后键入 network 192.168.66.0/24 area 0。这告诉路由器,我们将使用 OSPF 广播一个子网掩码为 255.255.255.0 的 192.168.66.0 网络。 在本例中,我们让 eth0 接口变成一个被动(passive)接口,以便使它不能发送路由更新。这对于实验是非常重要的,因为在那个方向上的其他的路由器可能监听到发送的路由更新,将接口变成一个被动(passive)接口,从而有效的避免扰乱网络的正常运行。为此,键入命令 passive - interface eth0。如果打算将此路由器作为工作路由器使用时,就没有这个必要了。一旦你完成修改,用 end 命令从配置模式中退出,然后用 write file 命令保存。这里是一个快照: labrat:~# telnet 0 2604 /*Telnet 到本地机器的 2604 端口*/ Trying 0.0.0.0... Connected to 0. Escape character is '^]'. /*用 '^]'退出该会话*/ Hello, this is zebra (version 0.84b) Copyright 1996-2000 Kunihiro Ishiguro User Access Verification Password: /*在此键入口令,如 zebra*/ ospfd> enable/*进入特权模式*/ Password: /*输入特权模式口令,如 z3bRa*/ ospfd# configure terminal /*从终端配置路由器*/ ospfd(config)# router ospf /*配置 OSPF*/ ospfd(config-router)# network 192.168.66.0/24 area 0 /*通过 OSPF 广播网络 network 192.168.66.0,/24 指出子网掩码为 24 位,area 0 指出该网络所在的域*/ ospfd(config-router)# passive-interface eth0 /*将 eth0 接口设置成一个被动(passive)接口*/ ospfd(config-router)# end /*退出配置模式*/ ospfd# write file /*保存修改*/ Configuration saved to /etc/zebra/ospfd.conf 请记住,为了让 OSPF 或 BGP 在某接口上工作,那么该接口必须处于"运行"状态。为手工运行一个接口,登录到端口 2601 并且在该接口上执行 no shut 命令。 建立 BGP labrat:~# telnet 0 2605 Trying 0.0.0.0... Connected to 0. Escape character is '^]'. Hello, this is zebra (version 0.84b) Copyright 1996-2000 Kunihiro Ishiguro User Access Verification Password: bgpd> enable Password: bgpd# configure terminal bgpd(config)# router bgp 65530 /*配置 BGP,65530 是自治系统编号。也就是将该系统配置成自治系统 65530 上的外部网关*/ bgpd(config-router)# network 192.168.66.0/24 /*由 BGP 广播的网络*/ bgpd(config-router)# neighbor 10.0.0.5 remote-as 65531 /*静态指定自治系统 65531 上 IP 地址为 10.0.0.5 的路由器为本机的邻机*/ bgpd(config-router)# end bgpd# write file Configuration saved to /etc/zebra/bgpd.conf 对于 OSPF 和 BGP,有大量选项可用,限于篇幅不能在此一一介绍。对于每个协议,我建议在实际使用之前,不妨先研究一番。为此,可以参考 GNU Zebra 文档,它会给你提供许多帮助。 结束语 |