用 Linux 打造路由器( 二 )



建立一个高级路由器

许多人对路由器感到比较陌生,事实上作为一个防火墙使用的 Linux 系统已经是一个路由器了,只不过还有点"简陋"而已 。然而,我们的目标是用 Linux 打造一个"高级"路由器,它必须能够利用动态路由协议(上文提到的协议皆为动态路由协议)工作 。这些协议能够使路由器互换相关信息,从而共享穿越网络时所用的那些路径--路由 。这一点对于大型网络(比如 Internet)而言是"异常"重要的,因为此时再用静态路由(也就是人工计算设置路由)是根本不现实的 。

举例来说,即使在比较理想--即不考虑路由的变化的情况下,一个边界网关协议(BGP)路由表也至少包含 100,000 条以上的表项 。这时,手工建立这样的静态路由是难以忍受的 。很明显,即使我们的网络小于 Internet--比如一个大型公司网络,我们还是更加喜欢动态路由协议 。

外部网关协议 BGP 通常作为 Internet 的骨干使用,而其它的协议(如 OSPF)则适于小型的互连网络 。开放式最短路径优先(OSPF)协议是一个应用最广的内部网关协议(IGP) 。Zebra 是一个开放源代码程序包,通过它你可以在 Linux 上运行 BGP 与 / 或 OSPF 。

安装 Zebra

你既可以从 Zebra.org 网站下载 Zebra 的最新源程序,也能从 Redhat 和 Debian 中获得它,但不一定是最新版的 。从源代码中进行软件安装,你就会发现使用的是一些普通的安装过程 。简介如下:

代码:
./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

如果你已经熟悉 Cisco IOS,那你就能在短时间内掌握 Zebra,因为你会发现两者极为相似 。Zebra 的每个守护程序使用一个单独的 VTY,这些 VTY 可以通过一个远程登录会话进行动态配置 。所以,如果你需要设置 OSPF,简单地远程登录到该 Linux 上 2604 端口;为了修改内核的路由表或设置路由协议间的再分发,你可以远程登录到端口 2601,该 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 地址*/

推荐阅读