当前位置:首页 > 嵌入式 > 嵌入式软件
[导读] 1.路由器的原理先说说路由是怎么一回事情。 TCP/IP通讯时, 使用IP和netmask来确定机器所在的子网, 如果是同子网的机器间通讯, 就直接用广播的方法传过去。 具体情况是:源

 1.路由器的原理

先说说路由是怎么一回事情。 TCP/IP通讯时, 使用IP和netmask来确定机器所在的子网, 如果是同子网的机器间通讯, 就直接用广播的方法传过去。 具体情况是:

源地址发出arp广播询问目的地址的MAC

目的地址回应arp广播, 将MAC发会源地址

建立连接开始传送(也是广播的方式)

如果目的地址和源地址不在同一子网内就需要把包传送到路由器(网关, 注意TCP/IP通讯中路由和网关是一个概念, 不过这并不适用于所有的通讯协议), 再由路由器一级级的发送, 直到送到目的地址所在子网的路由器, 再由此路由器在此子网内用广播的方式传送。

路由分为动态路由和静态路由。 其中静态路由的是很简单的, 就是在网络中从源地址到任意的目的地址都只要一条固定的传送路线。 动态路由也就是有好几条传送路线啦。动态路由的好处再于如果一条路线不通了还可以使用另外一条路线, 这时就有两个很重要的问题: 如何选择最合适的传送路线? 如何传递路由信息?

不同的选择方法和传递方式产生了不同的路由协议。 动态路由协议中最常用的是RIP协议和EGP协议, 其他的还有 Hello, BGP ( 好象是这个吧, :pp 反正我是没有见过的) 等。 选择传递路线的方法在配置路由器中不是重点, 这里就不说了。 下面重点讲下路由信息的传递。

RIP 协议是通过主动的广播是传送路由表的。 它的实现方法很简单, 路由器在启动的时候发出一个请求, 收到请求的机器就把自己的路由表传送给它。 也可以由路由器主动的广播来发出自己的路由表。 RIP 协议常常用在不大的局域网中, 很多的Unix工作站都配置了 RIP 协议(由一个叫 routed 的 daemon 来完成)。 这样作的好处在于方便了网络管理员, 可以不用每台机器或者路由器都配置的路由表(网关)。 实际上, 中科院的网络用的就是RIP。 按我的意见, RIP 是最弱的, 如果有人捣乱一下, 胡乱广播路由表, 结果一定会很好看 :)

EGP 协议在传送自己的路由表前要通过一个"找邻居"的方法来确定不会收到不相干的路由表, 其具体方法是路由器要先配置几个邻居, 也就是其他的路由器, 由这些路由器来传递给它的路由表。 这样, 路由器就安全多了。

上面简单的谈了一些在配置路由器中可能用到的原理, 很多地方可能讲得不是很正确和完整, 希望各位看官不吝赐教。 :)

2.用 Linux 做路由的方法

Linux 做路由是很容易的, 不过要分清不同的情况, 很多人在配置路由时弄错了情况,以至于费了很大劲也弄不出来。 我把常见的情况分为3种:

1。 只有有限的 ip 资源, 希望通过一个合法 ip 代理出多个内部 ip 的情况这个使用 Ip Masquerade 就可以了, 具体方法可以参看 Ip Masquerade的中文How-To 或 raner 写的 Linux做路由器(精华区中)

2。 为了减轻局域网的负担, 把几个合法 ip 单独割出来, 做一个小子网的情况。

这种情况, 就是精华区中那篇最老的 Linux做路由器 的文章了, 是那个台湾人写的那篇。 这种情况是最简单的, 只要在内核中编译上网卡的驱动和Ip Forwarding 再正确算出 netmask , 写静态路由表和arp表即可。

想补充两句的是关于静态路由表和arp表的问题, 一般人只是照者去做了没有想为什么, 其实弄清为什么还是对配置路由器和处理故障很有帮助的这里增加的静态路由表的作用是告诉从外面来要进子网的包路由的方向增加静态arp表是因为这个子网本来是从大的子网划出去的, 所以本子网内传送包以及从大子网的外面来包的时候, 包的源地址广播发出的arp申请需要回应, 这个工作本来是由那个IP的机器来完成的, 可是现在隔了个路由器, arp请求传不过去,而且也需要路由器来应答, 以使得源地址把数据传送到路由器上。

3。 想用linux来替代以前的正常的路由器。这种情况大多是因为, 硬件路由价格昂贵,软路由的功能上或性能上不能满足要求。 这种情况以前没有文章提到过, 其实这倒是最简单的一种情况。

这时只要问清楚运行的路由协议就可以了,如果是静态路由的话, 先设置好你的网卡, 使得你做路由的机器可以ping通外面和里面子网,这部分slackware和redhat的设置各不相同, redhat比较简单, 只要用 netconfig 加上就可以, 而slackware对第一块网卡用netconfig命令, 对后面的网卡则要手工写一下

ifconfig $IF1 $IPADDR1 netmask $NETMASK1 broadcast $BROADCAST1

route add -net $NETWORK1 netmask $NETMASK1 gw $IPADDR1

命令。 这时候路由就算配置好了, 不过要注意的是, redhat 上的 Ip Forwarding的开关缺省是关上的, 需要在 netconfig 里面设为打开。如果没有装 X 的东西,那么也可以手工修改/etc/sysconfig/network 文件和/etc/sysconfig/network-script目录下的 if-eth? 等文件如果是动态路由的话要分情况, rip 是最好弄的, 只要起个 routed 就可以了, 如果不行就给 routed 加上 -g -s参数让routed去广播路由表就可以了。

如果是其他的情况就要配置 gated 了, gated 是一个专用的, 支持多路由协议的高效的路由软件, 其缺点是配置麻烦,如果我再写下去就会吃了中午饭了, 所以呢有能力的就去看man和文档,没有时间和精力去看的呢先推荐一本书《TCP/IP Administration》有中文译本, 内容是老点, 不过还值得收藏, 里面对路由问题讲得很清楚。 如果连书都不想买, 那只好等我有空再写啦……

选择什么发行版本来实现路由器呢? 通常的可以使用 slackware 和 redhat,基本上对redhat不是非常清楚的用户不要使用redhat, 因为要用得好还是很麻烦的, 选择要安装的软件就是很讨厌的事情, redhat 的东西常常会有hole如果对系统不熟还是不要用。 slackware 很简单( 甚至可以说很单纯 :), 很适合对系统不太熟悉的用户使用。

当然这些大的distribution拿来做route当然是可以的啦, 不过呢, 我可以给大家推荐一个很小很小的东西, 就是 LRP( Linux Route Project ), 这个东西还是很酷的, 是一个微型的debian, 到底有多小呢? 只有一张软盘!!! 不要看它小, 可是功能很全, 而且设置很简单, 基本上不懂 linux 也可以设置 。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

为了满足日益增长的数据处理需求,铁威马NAS推出了全新的性能巅峰2024年旗舰之作F4-424 Pro,并搭载了最新的操作系统--TOS 6。这款高效办公神器的问世,无疑将为企业和专业人士带来前所未有的便捷与效率。

关键字: 存储 Linux 服务器

以下内容中,小编将对无线路由器的相关内容进行着重介绍和阐述,希望本文能帮您增进对无线路由器的了解,和小编一起来看看吧。

关键字: 路由器 无线路由器

随着无线网络的普及和智能家居设备的增多,路由器的性能与设置逐渐成为我们日常生活关注的焦点。在无线路由器的设置中,信道选择是一个重要且容易被忽视的环节。正确的信道选择不仅能提升网络速度,还能减少信号干扰,提高网络稳定性。本...

关键字: 路由器 无线网络

在下述的内容中,小编将会对路由器的相关消息予以报道,如果路由器是您想要了解的焦点之一,不妨和小编共同阅读这篇文章哦。

关键字: 路由器 Wi-Fi

双系统将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对双系统的相关情况以及信息有所认识和了解,详细内容如下。

关键字: 双系统 Windows Linux

Wi-Fi HaLow是物联网连接的未来

关键字: Wi-Fi 物联网 路由器

安装Linux操作系统并不复杂,下面是一个大致的步骤指南,以帮助您完成安装。1. 下载Linux发行版:首先,您需要从Linux发行版官方网站下载最新的ISO镜像文件。

关键字: Linux 操作系统 ISO镜像

计算机是由一堆硬件组成的,为了有限的控制这些硬件资源,于是就有了操作系统的产生,操作系统是软件子系统的一部分,是硬件基础上的第一层软件。

关键字: Linux 操作系统 计算机

Linux操作系统是一套免费使用和自由传播的类Unix操作系统,通常被称为GNU/Linux。它是由林纳斯·托瓦兹在1991年首次发布的,并基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Lin...

关键字: Linux 操作系统

在这篇文章中,小编将对工业路由器的相关内容和情况加以介绍以帮助大家增进对工业路由器的了解程度,和小编一起来阅读以下内容吧。

关键字: 路由器 工业路由器
关闭
关闭