如何用Linux做一个功能完备的路由器

发布网友 发布时间:2022-04-23 07:39

我来回答

2个回答

热心网友 时间:2022-05-04 01:13

路由协议的介绍 我们这里介绍一下RIP协议。 RIP是Routing Information Protocol的缩写,直接翻译就是"路由信息协议"。 RIP计算路由时使用了"距离向量(distance vector)"算法,因此,它也被称作"距离向量寻路协议(distance vector routing protocol)。 RIP的特点是路由器间定时地交换网络的整体知识,并且只和相邻路由器交换这种知识。换句话说,路由器只和相邻路由器共享网络信息。路由器一旦从相邻路由器获取了新的知识,就将其追加到自己的数据库中,并将该信息传递给所有的相邻的路由器。相邻路由器做同样的操作,经过若干次传递,使自治系统内的所有路由器都能获得完整的路由信息。 RIP报文用UDP数据报来传送。为了区别于其他的UDP应用,规定RIPng的公认专用UDP端口号为521。主动寻路更新报文的源/目的的端口都是RIPng端口,应答的更新报文送往发起请求的端口。应当注意,IPv4中RIP使用的端口号是520,与RIPng的有所不同。 定时器爱RIP中有着比较重要的作用。在RIP中为支持寻路操作使用了三个不同的定时器。 第一个是启动定时进行RIP更新操作的定时器。此定时器通常设置成30秒。在RIP标准中对其进一步加以*,它要求路由器对更新报文的发送间隔采用随机数,将RIP更新报文的间隔选取在25秒到35秒之间。其目的是为了避免网络上所有的路由器以相同的定时发送更新报文,大量的业务量压迫网络造成冲突。利用随机间隔可均衡业务量,从而减少路由器的冲突。 RIP在避免冲突方面还有一点需要注意,在触发更新中不论何时发送了报文,不对30秒定时器复位。如果复位,多个路由器的更新报文的发送间隔就会发生冲突。这是由于所有的路由器在发送触发更新后同时启动定时器造成的。如不对该定时器复位,即使与在数秒前刚广播的触发更新报文的内容完全一样,定时的更新报文也照发不误。 RIP使用的第二个定时器时期满(expiration)定时器。路由器只要收到通往特定信宿的路由,就对通往该信宿的期满定时器初始化。期满定时器虽然被设定为180秒,但在稳定的网络中总是每隔30秒被初始化。当网络不稳定时,此定时器的时间区间表示该路由无效。 RIP最后一个定时器时垃圾收集(garbage collection)定时器。路由器对无效路由打上尺度为无穷大的无效标记并将垃圾收集定时器置位。此时,定时器在120秒的区间内工作。在该期间内路由器将尺度费用置成无穷大的同时,继续公布该信宿。以这种方法公布路由,相邻路由表就能迅速从寻路表中删除该路由。 RIP协议也有它的缺陷: 网络直径较小 RIP将尺度(即费用)无穷大定义为16,这一定义对使用RIP的所有网络的规模作出了严格的*。因尺度必须是整数,故网络的费用至少为1。在基于RIP的Internet中,所有的系统距其他任何系统不能超过15个网络。这一大小被称作网络直径。 这一*对管理员分配费用的灵活性是一个很大的制约。管理员分配费用最直接的方法是对各个网络的费用都设成1。但是,在这种分配方式下,RIP就会选择费用最小的路径,而不管该路径上的信道容量的大小。因此会舍弃"较长"的高速路径而通过低效的"较短"路径传送数据。为了避免这种情况的发生,管理员可将大于1的费用分配给低效链路,人为地提高其费用。其结果是最大网络直径随之变小,进一步*了RIP的网络规模。 对网络变化的反应较慢 RIP网络中的路由器从路由失效到将其识别出来要等待180秒,而在OSPF中典型值是1~2秒。 不支持组播 在RIP中没有公布组成员信息的方法,因此不支持组播寻路。为实现组播寻路需和其他协议并用。 gated的配置 gated支持RIP、OSPF、IS-IS等路由协议。我们这里着重介绍RIP协议的配置方法,其他协议的配置大家可以针对协议本身然后参考相关帮助文档做类似的配置就可以。 首先修改/etc/sysconfig/network文件,使得FORWARD_IPV4=yes。然后在/etc/目录下创建文件名为gated.conf的文件,里面就是需要填写的配置信息。RIP协议的配置语法如下: rip yes │ no │ on │ off [ { broadcast ; nobroadcast ; nocheckzero ; preference preference; defaultmetric metric ; query authentication [none │ [[simple│md5] password]] ; interface interface_list [noripin] │ [ripin] [noripout] │ [ripout] [metricin metric] [metricout metric] [version 1]│[version 2 [multicast│broadcast]] [[secondary] authentication [none │ [[simple│md5] password]] ; trustedgateways gateway_list ; sourcegateways gateway_list ; traceoptions trace_options ; } ] ; 上面的配置语法用来启动或者禁止RIP协议的运行,并对RIP协议某些参数进行设置。各参数的含义如下: broadcast 指明RIP分组将被广播。当广播静态路由或者由其他协议产生的RIP路由项时,这很有用。 nobroadcast 指明当然的接口上不广播RIP分组。 nocheckzero 指明RIP不处理RIP分组中的保留域。通常RIP将拒绝保留域为非零的分组。 preference preference 设置RIP路由的preference,其缺省值是100,这个值可以被其他的给定的策略重写。 metric metric 定义当使用RIP广告由其他路由协议获得的路由信息时使用的尺度(metric)。其缺省值为16(不可达)。 query authentication [none │ [[simple│md5] password]] ; 设定身份认证密码。缺省是无需认证。 interface interface_list 针对某特定的接口进行参数设定。 可以有的参数如下: noripin 指定该接口商接收的RIP分组无效。 ripin 这是缺省的参数。与noripin相反。 noripout 被指定的接口上将无RIP分组发出。缺省值是在所有的广播和非广播的接口商发送送RIP分组。 ripout 这是缺省值。与noripout的含义相反。 metricin metric 指定在新添加的路由表项加入内核路由表以前增加的尺度(metric)。缺省值是1。 metricout metric 指定通过特定的接口发出的RIP前,对尺度的增加值。缺省值是0。 version 1 指定发送第一个版本的RIP协议的分组。缺省值是这个。 version 2 在指定的接口商发送第二个版本的RIP协议分组。如果IP组播可以使用,则缺省发送完全第二版本的分组,如果不支持组播,则使用与第一版本兼容的第二版本的RIP分组。 multicast 指明在特定接口上的第二版本的RIP分组使用组播发送。 broadcast 指明在特定的接口上使用广播来发送与第一版本兼容的第二版本的RIP分组,即使该接口支持组播。 [secondary] authentication [none │ [simple│md5] password] 定义身份认证的方式。只对第二版本的RIP协议有用。缺省是无身份认证。 trustedgateways gateway_list 定义RIP接收RIP更新分组的网关。gateway_list 是一个简单的主机名或者IP地址的列表。缺省情况下,在共享网络上的所有的路由器都被认为支持提供RIP更新信息。 sourcegateways gateway_list 定义RIP直接发送分组的路由器列表,而不通过组播或者广播。 traceoptions trace_options 设置RIP跟踪选项。详细设置略。 下面是些配置示例: 配置1: # # # This configuration runs RIP in quiet mode, it only listens to # packets, no matter how many interfaces are configured. # rip yes { nobroadcast ; } ; 配置2: # This configuration emulates routed. It runs RIP and only sends # updates if there are more than one interfaces up and IP forwarding is # enabled in the kernel. # # NOTE that RIP *will not* run if UDP checksums are disabled in # the kernel. # rip yes ; zebra介绍 这是日本人写的以GNU版权方式发布的软件,开始于1996年,主要的功能是实现了RIPv1,RIPv2,RIPng, OSPFv2, OSPFv3, BGP-4, and BGP-4+路由协议,目前是0.87版,目前支持Linux和FreeBSD,将来会支持Solaris 7和GNU Hurd。 其中RIPv1, RIPv2, OSPFv2是用于IPv4的自治域系统内部网络路由协议,最好的是OSPF,他支持VLSM(变长子网掩码)、收敛快,能根据链路的负载等动态调整路由,是目前最好的所有厂商都支持的内部路由协议。跟他差不多(也许还要好)的是cisco专有的EIGRP. BGP-4是用于自治域系统之间的外部网络路由协议,也是目前Internet主干上目前使用的协议,非常的灵活。在国外用的非常普遍,如果一个网络有两个以上出口(连接两个ISP)极大的可能会用他。但是在国内好象很少使用,这也跟国内的网络比较封闭有关。假如我们跟CSTNET和CETNET使用BGP-4的话,只要这两个出口一个是通的,我们对外的连接不会中断超过1分钟。 RIPng OSPFv3, BGP-4+主要扩展了对ipv6的支持。 这个软件配置的很多方面跟cisco的IOS配置几乎完全相同,我们完全可以拿一台PC机来完成一些必须用昂贵的CISCO路由器才能完成的比较复杂的路由协议处理控制功能。 GNU Zebra可以到www.zebra.org去找。 路由器上的策略控制:IP带宽管理(QoS) 为什么要管理带宽? 因特网的成功主要因素是IP(Internet Protocol)协议族的简单和稳健。现在几乎所有的人都在向IP靠拢,甚至传统的电讯公司也在将它们的基于电路交换的语音网络向IP网络转。然而基于IP协议的因特网这时候就遇到了一个非常大的困难。它不相ATM协议,它是平等地对待任何业务,也就是说所有的通过IP网络的数据都被平等地尽可能好的传送(称:尽力型服务)。如果我愿意多付1倍的钱,我也不能让我的主页下载的速度提高一倍。这时候就引入了QoS概念,也就是服务质量保证。这种情况下,平等对待所有IP业务数据的方法就要被放弃,而试图区分不同的用户或业务,然后分配不同的带宽。这就是路由器上的带宽的分配和管理。

热心网友 时间:2022-05-04 02:31

你好,可以实现一部分相当于TP-link,无法完全模拟思科的,而且还需要第三方软件的支持才可以。。建议是不要这样使用,可以将LINUX放在防火墙或者是关键地区充当子路由器

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com