用 Linux 打造路由器.doc_第1页
用 Linux 打造路由器.doc_第2页
用 Linux 打造路由器.doc_第3页
用 Linux 打造路由器.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用 Linux 打造路由器Linux作为一种新近崛起的操作系统,由于其性能稳定,源码开放及价格方面的优势而逐渐被广大用户所接受。现在Linux的主要用武之地在于服务器领域,但是,经过适当的配置之后,它还可以担当互联网的物理基石-路由器这一重要角色。 路由器是通信子网中的通信节点,每个路由器都计算并维护一张路由表,并据此指导数据报前往最佳路径中的下一站,这便是所谓的路由。这样,经过互联网上所有路由器的通力合作,数据报就能够沿着一条最佳路径到达目的地。在GNU软件Zebra的协助下,我们可以将Linux机器打造成一台功能完备的路由器,它能够同时支持RIPv1、RIPv2、RIPng、OSPFv2、OSPFv3、BGP-4和BGP-4+等诸多TCP/IP协议。现在我们首先了解一下OSPF和BGP协议的运行模式和基本原理,然后介绍Zebra的安装配置方法,让你的Linux机器变成支持OSPF与BGP的路由器。 概述如今,许多公司都建有多个网络,如果这些网络的类型不尽相同,则需要用路由器进行互联。路由器是与两个或两个以上的网络连接的计算机,它根据路由协议生成并维护一个路由表,并按照该路由表中的信息转发包。这些路由器对公司内部的网络结构了如指掌,知道将分组送到目的地的全部细节,但对于其他公司的网络结构并不了解。像这样在同一机构下管理的一系列路由器和网络被称为自治系统(AS)。由不同机构掌管的自治系统,可以采用不同的路由选择算法;但同一自治系统内的所有路由器都使用同一路由协议,以便于自治系统内部各个路由器互换路由信息来维持相互的连通性。每一个自治系统都有一个16位的自治系统(AS)编号作为标志,就像IP地址一样,它是由专门机构来分配的。 自治系统内的路由器称为内部网关,所用的协议称为内部网关协议。内部网关协议大体上分为两类,一类是距离向量协议,如RIP,EIGRP协议;另一类是链路状态协议如OSPF协议。链路状态路由协议与距离向量协议的不同之处在于,采用链路状态路由协议的路由器不是交换到达目的地的距离,而是维护一张网络拓扑结构图。然后用数据库表示该图,其中的表项对应网络的一条链路。路由器根据数据库的信息计算出最佳路由,由此指导包的转发。当网络拓扑结构发生变化时,只需将相应纪录而非整个数据库通知其他节点。各路由器做出相应修改并重新计算路由后,就可以继续正常工作。 因为开放式最短路径优先协议的文档必须公开发表,所以它是开放式的(Open);又因为它采用最短路径优先(SPF)算法来计算一个节点到所有其它节点间的最短路径,故名为OSPF。OSPF具有支持多重度量制式和多重路径等诸多优点,因此成为因特网上推荐使用的内部网关协议,RIP却由于自身的局限性而被打入冷宫。现在,在性能上唯一能够与OSPF相匹敌的内部网关协议便是EIGRP-Cisco的一个专有协议,但OSPF的开放本身就是一个响亮的招牌,因为谁也不想受制于某家供应商。 前面提到,自治系统内的路由器不必知道其他自治系统的内部结构细节,从而有效地节约了路由器的内存和CPU时间,并提高了网络带宽的利用率。但是,如果想与其他公司(自治系统)通信时该怎么办呢?很简单,我们可以在自治系统内指定一个与其他自治系统相连的路由器为外部网关,通过它进入其他自治系统。该路由器使用的协议叫做外部网关协议,如边界网关协议(BGP)。相邻的两个网关必须首先互换邻机探测报文,协商是否愿意成为邻机。成为邻机则意味着两个自治系统同意中转双方的通信流。同意后,两个邻机互换邻机可达性报文,来监督他们之间的链路的工作情况。接下来便是最重要的工作,用网络可达性报文来交换通过各邻机所能到达的网络的信息,从而实现自治系统之间的连通性。在外部网关的眼里只由外部网关和连接他们的链路,如此以来,自治系统内的通信由内部网关处理,自治系统之间的通信交由外部网关处理-一个分级路由的景象已经展现在我们面前,实际上,因特网正是由大量自治系统组成的。 建立一个高级路由器许多人对路由器感到比较陌生,事实上作为一个防火墙使用的Linux系统已经是一个路由器了,只不过还有点简陋而已。然而,我们的目标是用Linux打造一个高级路由器,它必须能够利用动态路由协议(上文提到的协议皆为动态路由协议)工作。这些协议能够使路由器互换相关信息,从而共享穿越网络时所用的那些路径-路由。这一点对于大型网络(比如Internet)而言是异常重要的,因为此时再用静态路由(也就是人工计算设置路由)是根本不现实的。 举例来说,即使在比较理想-即不考虑路由的变化的情况下,一个边界网关协议(BGP)路由表也至少包含100,000条以上的表项。这时,手工建立这样的静态路由是难以忍受的。很明显,即使我们的网络小于Internet-比如一个大型公司网络,我们还是更加喜欢动态路由协议。 外部网关协议BGP通常作为Internet的骨干使用,而其它的协议(如OSPF)则适于小型的互连网络。开放式最短路径优先(OSPF)协议是一个应用最广的内部网关协议(IGP)。Zebra是一个开放源代码程序包,通过它你可以在Linux上运行BGP与/或OSPF。 安装Zebra你既可以从Z网站下载Zebra的最新源程序,也能从Redhat和Debian中获得它,但不一定是最新版的。从源代码中进行软件安装,你就会发现使用的是一些普通的安装过程。简介如下: ./configure make makeinstall 配置脚本会搜索系统上已经安装的IP栈并且自动地设置成支持他们。当前,IP栈很可能仅仅是指IPv4,但是IPv6用户也不用担心,因为Zebra也会发现并且支持它。 程序安装之后,还可能必须在/etc/services中增加一些命令行。Zebra的守护程序在他们自己的虚拟终端连接(VTY)下运行,所以你的系统必须知道这些虚拟终端连接。这里是你应该增加的一些连接 zebrasrv2600/tcp#zebraservice zebra2601/tcp#zebravty ripd2602/tcp#RIPdvty ripngd2603/tcp#RIPngdvty ospfd2604/tcp#OSPFdvty bgpd2605/tcp#BGPdvty ospf6d2606/tcp#OSPF6dvty 配置Zebra如果你已经熟悉CiscoIOS,那你就能在短时间内掌握Zebra,因为你会发现两者极为相似。Zebra的每个守护程序使用一个单独的VTY,这些VTY可以通过一个远程登录会话进行动态配置。所以,如果你需要设置OSPF,简单地远程登录到该Linux上2604端口;为了修改内核的路由表或设置路由协议间的再分发,你可以远程登录到端口2601,该Zebra守护程序充当内核管理器,管理其他的守护程序和系统本身之间的通信。 现在介绍如何在一个服务器上创建和运行OSPF和BGP。Zebra的守护程序运用纯文本文件储存它们的配置。对于OSPF/BGP路由器,将用到三个文件zebra.conf、ospfd.conf和bgpd.conf。举例来说,zebra.conf文件可能会是这样: !Zebraconfigurationsavedfromvty !2002/02/2801:46:12 ! hostnameLinuxRouter/*主机名为LinuxRouter*/ passwordzebra/*口令为zebra*/ enablepasswordz3bRa/*进入特权模式时的口令为z3bRa*/ logfile/var/log/zebra/zebra.log/*日志文件的地址*/ ! interfaceeth0/*以太接口eth0*/ descriptionInterfacetoExternalNetwork/*对接口的描述*/ ipaddress/24/*该接口的IP地址*/ ! interfaceeth1/*以太接口eth0*/ descriptionInterfacetoInternalNetwork/*对接口的描述*/ ipaddress/24/*该接口的IP地址*/ 这里的感叹号充当注解标识或分隔符。尽管存在大量不同的网络接口类型(Ethernet、ISDN等等),但只要是Linux内核能够辨认的网络接口类型,Zebra都可以使用。 子网掩码都带有网络位的位数(例如/24),默认掩码则不然(比如)。注意存在两个口令,一个用于用户模式而另一个用于特权模式。这不仅有利于向非管理员提供访问权限,而且对于创建路由服务器或者路由探测镜也是非常重要的。所有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至此,基本的服务已经具备,现在让我们Telnet到本地机器的2604端口,开始配置OSPF。为进入特权模式,键入enable(正如在CiscoIOS中一样),然后键入特权模式口令。接下来,用configurationterminal命令切换到配置模式。值得一提的是Zebra也能接受命令缩写形式,这与Cisco极为相似,如configurationterminal可以简写为configt,这大大缩短了输入时间,使用起来更为方便。另外,如果输入list和?,它将显示一个当前可用命令的清单,并附有一些简略解释。除此之外,还可以键入tab用于命令的自动完成。这就是说,如果你想键入命令clock,只要键入前两个字母cl然后按tab键,机器就会自动补全这条命令-前提是你键入的字符足以唯一地确定这条命令。这是一个很好的功能,尤其是当你习惯于这种用法时。 接下来,我们还需要告诉守护程序将通过OSPF广播哪些网络以及相关的域(area)。OSPF的可伸缩性允许它支持多个域。键入routerospf开始配置OSPF,然后键入network/24area0。这告诉路由器,我们将使用OSPF广播一个子网掩码为的网络。 在本例中,我们让eth0接口变成一个被动(passive)接口,以便使它不能发送路由更新。这对于实验是非常重要的,因为在那个方向上的其他的路由器可能监听到发送的路由更新,将接口变成一个被动(passive)接口,从而有效的避免扰乱网络的正常运行。为此,键入命令passive-interfaceeth0。如果打算将此路由器作为工作路由器使用时,就没有这个必要了。一旦你完成修改,用end命令从配置模式中退出,然后用writefile命令保存。这里是一个快照: labrat:#telnet02604/*Telnet到本地机器的2604端口*/ Trying. Connectedto0. Escapecharacteris./*用退出该会话*/ Hello,thisiszebra(version0.84b) Copyright1996-2000KunihiroIshiguro UserAccessVerification Password:/*在此键入口令,如zebra*/ ospfdenable/*进入特权模式*/ Password:/*输入特权模式口令,如z3bRa*/ ospfd#configureterminal/*从终端配置路由器*/ ospfd(config)#routerospf/*配置OSPF*/ ospfd(config-router)#network/24area0/*通过OSPF广播网络network,/24指出子网掩码为24位,area0指出该网络所在的域*/ ospfd(config-router)#passive-interfaceeth0/*将eth0接口设置成一个被动(passive)接口*/ ospfd(config-router)#end/*退出配置模式*/ ospfd#writefile/*保存修改*/ Configurationsavedto/etc/zebra/ospfd.conf 请记住,为了让OSPF或BGP在某接口上工作,那么该接口必须处于运行状态。为手工运行一个接口,登录到端口2601并且在该接口上执行noshut命令。 建立BGPBGP与OSPF的配置大致相同。开始,打开一个远程登录会话到端口2605。之后执行configureterminal,输入routerbgp进入BGP配置模式。如前所述,BGP使用AS编号建立邻机关系并路由通信流。在我们的试验中,我们将使用一个范围在64512到65534之间的私有AS号码(换句话说,该号码旨在机构内部有效,而在因特网上无效)。用network命令设置由BGP广播的那些网络,如network/24.。与OSPF不同的是,BGP邻机必须静态指定。如同下述neighborremote-as。这里是一个范例: labrat:#telnet02605 Trying. Connectedto0. Escapecharacteris. Hello,thisiszebra(version0.84b) Copyright1996-2000KunihiroIshiguro UserAccessVerification Password: bgpdenable Password: bgpd#configurete

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论