⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0230router.htm

📁 鸟哥LINUX 学习课本
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<font color="#000066">那或许您会说:『如果 Hub 不行,那么我将他换成 Switch总可以了吧! Switch 不是可以将封包碰撞的机率降至最低吗?』是的!您说的没错!但是很不幸的,您买的Switch 应该是 10/100Mbps 的吧!果然如此的话,那么您的 Switch 最大的实时传输量为12.5 MBytes 左右,如果平均分配给您的 200 部计算机的话,那么每一部的频宽是多少?答案是60 KBytes 左右!嘿!在局域网络内的计算机流量怎么会这么慢?!尤其当一个人死命的捉某部计算机的数据的时候,那就惨咯!其它人的平均频宽将会降的更低!</font></li></ul> <br>这个时候或许 Router 的功能就可以显现出来啰!怎么说呢?因为不同的网域之间不能直接进行数据的沟通,所以您必需要将网域分别开来,而假设以200 部计算机平均分为 5 个网域好了,这个时候一个网域里面只有 40 部计算机,在这个情况之下,不但布线容易(针对 40 部计算机来说 ),而且由于不同网域之间不会互相干扰,所以您的物理广播或逻辑广播时产生的网络停顿情况将会减少非常的多!如此一来,对于您内部局域网络的网络流量舒缓,将有相当大的帮助!<b><font color="#000066">『请特别留意,通常比较大的局域网络(指计算机数量较多的企业 ),如果规划不良,则您对外联机的时候,最大的速度瓶颈可能来自于内部网域!这是因为内部网络的loading 比起外部网络要『慢的很多!』因为内部网络互连的状况( 例如网络芳邻的资源共享、打印机的分享、档案服务器的分享等等)就会导致您的 Switch/Hub 的频宽被占用光了!</font></b>』<br> <br>一般不想要管事的网管人员,最喜欢直接将布线设计成类似底下的模样:<br> <br><img src="0230router_files/0230router-1.jpg" nosave="" border="1" height="177" width="270"><br> <br>这样做最大的好处就是『简单』,您只要控管一个 服务器 就够了!其它的完全不用去理他,管他什么封包碰撞,反正您内部网络的loading 太大也没有关系,对于懒惰的网管人员来说,他根本就不痛不痒....这个时候您的内部网络的流量可能真的会负荷很大啦!此时,相当的建议设定成类似底下的模样!<br> <br><img src="0230router_files/0230router-2.jpg" nosave="" border="1" height="188" width="270"><center>&nbsp;</center>这样有个好处啦!您的服务器上面有两块网络卡(或者说是两个不同网域的接口,Interface ),分别负责不同的网域,那么由于这两个网域之间分隔开来了,因此封包进行广播时的停顿现象、封包碰撞与Hub/Switch 流量限制的情况就会比较舒缓一些!而两个不同的网域之间的数据分享呢?嘿嘿!则可以透过服务器架设的Router 功能来达成呀!这样您可以了解为何需要设定成这个模样了吧?!<br> <br><hr width="100%"><a name="Router_look"></a><font color="#000099">观察与修改路由:</font><br> <br>其实就如同前面说的, Router 的最大用途就是将不同网域的数据互相流通,而要沟通这些数据,必然就需要有所谓的『路由,route』这个东西了!以我的情况为例,我是以 ADSL 拨接上 Internet 的,但是我有个内部网域,192.168.1.0/24这一个内部网域存在,所以在我的 Linux 底下输入 <a href="http://linux.vbird.org/linux_server/0140networkcommand.php#route">route</a>时,会得到如下的结果:<table bgcolor="#000000" border="1" cols="1" width="600"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">route</font></font><br><font size="-1" color="#ffffff" face="SimSun">Kernel IP routingtable</font><br><font size="-1" color="#ffffff" face="SimSun">Destination&#160;&#160;&#160;&#160;Gateway&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Genmask&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Flags Metric Ref&#160;&#160;&#160; Use Iface</font><br><font size="-1" color="#ffffff" face="SimSun">140.116.142.253*&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;255.255.255.255 UH&#160;&#160;&#160; 0&#160;&#160;&#160;&#160;&#160; 0&#160;&#160;&#160;&#160;&#160;&#160;&#160;0 ppp0</font><br><font size="-1" color="#ffffff" face="SimSun">192.168.1.0&#160;&#160;&#160;&#160;*&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;255.255.255.0&#160;&#160; U&#160;&#160;&#160;&#160; 0&#160;&#160;&#160;&#160;&#160;0&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0 eth0</font><br><font size="-1" color="#ffffff" face="SimSun">127.0.0.0&#160;&#160;&#160;&#160;&#160;&#160;*&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;255.0.0.0&#160;&#160;&#160;&#160;&#160;&#160; U&#160;&#160;&#160;&#160;0&#160;&#160;&#160;&#160;&#160; 0&#160;&#160;&#160;&#160;&#160;&#160;&#160;0 lo</font><br><font size="-1" color="#ffffff" face="SimSun">default&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;140.116.142.253 0.0.0.0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;UG&#160;&#160;&#160; 0&#160;&#160;&#160;&#160;&#160; 0&#160;&#160;&#160;&#160;&#160;&#160;&#160;0 ppp0</font></td></tr></tbody></table>上面显示什么意义呢?简单的说,就是:<br> <ol><li><font color="#000066">当我有一个封包要送到 192.168.1.0/24 这个网域时,我的输出接口为eth0 这个界面;</font></li><li><font color="#000066">当我有封包要送到 127.0.0.0/8 ( A Class ) 时,我的输出接口为lo 这个界面;</font></li><li><font color="#000066">当我有数据要送到 140.116.142.253 时,由于他是 p-p-p的协议,所以是单点对单点,而界面为 ppp0 这个;</font></li><li><font color="#000066">至于其它没有规定到的所有网域,则统一由 default 这个Gateway 140.116.142.253 ,界面为 ppp0 丢出去!由于 ppp0 传送到的这个 140.116.142.253是 ISP 的接口,该接口通常为 Router ,所以他会自动的将您的封包再往前面送,使之最后可以到达目的地</font>!</li></ol> <br>这样了解了吗?那个 default 里头的 Gateway 可能取得的方法很多,例如拨接后来自ISP 的参数、在 <font color="#000066">/etc/sysconfig/network-sysconfig/ifcfg-ethn</font>这个档案里面的设定参数,以 Cable Modem 连接 ISP 后所取得的网络参数等等。OK!那么假设您的网域当中还有另外一个不同的网域,假设为192.168.0.0/24 好了,而这个网域同样的是接在 eth0 这个网卡上面,所以您要您的eth0 同时还负责 192.168.0.0/24 这个网域时,可以这样做!<table bgcolor="#000000" border="1" cols="1" width="600"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">route add -net 192.168.0.0 netmask255.255.255.0 dev eth0</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">route</font></font><br><font size="-1" color="#ffffff" face="SimSun">Kernel IP routingtable</font><br><font size="-1" color="#ffffff" face="SimSun">Destination&#160;&#160;&#160;&#160;Gateway&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Genmask&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Flags Metric Ref&#160;&#160;&#160; Use Iface</font><br><font size="-1" color="#ffffff" face="SimSun">140.116.142.253*&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;255.255.255.255 UH&#160;&#160;&#160; 0&#160;&#160;&#160;&#160;&#160; 0&#160;&#160;&#160;&#160;&#160;&#160;&#160;0 ppp0</font><br><font size="-1" color="#ffffff" face="SimSun">192.168.1.0&#160;&#160;&#160;&#160;*&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;255.255.255.0&#160;&#160; U&#160;&#160;&#160;&#160; 0&#160;&#160;&#160;&#160;&#160;0&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0 eth0</font><br><i><font size="-1" color="#ffff99" face="SimSun">192.168.0.0&#160;&#160;&#160;&#160;*&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;255.255.255.0&#160;&#160; U&#160;&#160;&#160;&#160; 0&#160;&#160;&#160;&#160;&#160;0&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0 eth0</font></i><br><font size="-1" color="#ffffff" face="SimSun">127.0.0.0&#160;&#160;&#160;&#160;&#160;&#160;*&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;255.0.0.0&#160;&#160;&#160;&#160;&#160;&#160; U&#160;&#160;&#160;&#160;0&#160;&#160;&#160;&#160;&#160; 0&#160;&#160;&#160;&#160;&#160;&#160;&#160;0 lo</font><br><font size="-1" color="#ffffff" face="SimSun">default&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;140.116.142.253 0.0.0.0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;UG&#160;&#160;&#160; 0&#160;&#160;&#160;&#160;&#160; 0&#160;&#160;&#160;&#160;&#160;&#160;&#160;0 ppp0</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]#</font><font color="#ffff00"> route del -net 192.168.0.0 netmask255.255.255.0 dev eth0</font></font></td></tr></tbody></table>这样就增加啰!不过,这个时候或许您可以连上人家的机器,但是人家却无法连接到您的机器!因为您的网络并没有192.168.0.0/24 里面的任何一个 IP ,所以别人的计算机自然无法与您进行数据的交流!这个时候就必须要启动Routing 的功能啦!如何启动呢?继续看下去吧! ^_^""</ul><ul><font color="#000066">注:请特别留意,当您使用 route 来秀出目前的路由表时,如果显示的讯息非常的缓慢,不要怀疑!一定有地方设定错误。请依照route 所显示的讯息来修改您的网络参数!通常最容易发生 route 问题的地方在于gateway 的设定啦!或者是重复启动多次的虚拟接口时,也会有这样的情况,例如我曾经看过在route table 上面出现同一个路由状态共三次以上!例如上面 192.168.0.0 ....那一行,若在 route table 上面竟然重复出现三次!这肯定有问题呀!!处理的方法为:</font><br><font color="#000066"> </font><ol><li><font color="#000066">将该相关的网络接口关闭!使用 ifdown 来关掉;</font></li><li><font color="#000066">使用 </font><a href="http://linux.vbird.org/linux_server/0140networkcommand.php#route">route</a><font color="#000066">的功能,将该路由删除!</font></li><li><font color="#000066">修改相关的接口,将接口符合我们的需求!</font></li><li><font color="#000066">重新启动接口,并持续观察 route !</font></li></ol></ul><hr width="100%"><a name="setup_router"></a><font size="+1" color="#000099">一个Router 架设范例:</font><ol>好啦!既然知道 Router 的好处之后,再来当然就是要来架设他啰!其实架设的方法真的很简单!您只要作几个动作就可以啦!(<b><font color="#000066">注:请特别留意,本文仅在测试Routing 的功能而已,如果您在贵公司内部需要架设 Router 时,可以依照本文的概念来架设,但是实体布线则需要用『实体网络卡』来区隔,请不要使用本文的IP Alias 的方式!切记!</font></b>)<br> <ol><li><font color="#000099">设定网络卡,使连接不同的网域;</font></li><li><font color="#000099">设定 route 路由表,让两网域可以互通;</font></li><li><font color="#000099">启动 ip_forward 的选项;</font></li><li><font color="#000099">在 Client 端设定 gateway 分别为 server 端的两个 IP!</font></li></ol> <br>由于<font color="#000066">我们的 Router 需要直接跟两个网域互相连通,所以啰,您的Router 上面就需要同时具有在这两个网域之间的 IP 啦</font>!此外,由于不同的网域需要启动Routing 的功能!所以您必须要做一个动作,那就是让目前 Linux 系统里面的 Routing功能启动!那么我们在 <a href="http://linux.vbird.org/linux_basic/0440processcontrol.php">鸟哥的Linux 私房菜 -- 基础学习篇之资源管理</a>的文章里面曾经提过,那个核心的程序都是记录在<b><font color="#000066">/proc</font></b>里面的,至于我们Linux 核心的网络功能则都记录在<b><font color="#000066" face="SimSun">/proc/sys/net/ipv4</font></b>这个目录内!而启动 Routing 的程序为 <font color="#000066">ip_forward</font>这个档案!只要将内容设定为 1 即为启动,而当为 0 时,就是关闭的啦!因此,若要启动

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -