最近更新日期:2003/08/22
多个 IP 在一块网络卡上面: :为何多 IP :如何实作:command line, 参数配置文件 :注意事项 路由器 Router: :什么是 Router :为何需要 Router :观察与修改路由 一个 Router 架设范例: 建议: 重点回顾: 课后练习: 多个 IP 在一块网络卡上面:
为何需要多 IP ? 好好一块网络卡,为何需要多个 IP 呢?难道是鸟哥没事找事作?!嘿嘿!我又不是闲的发慌,干嘛没事找事作呢?!其实多个 IP 某些时候是有其必要性的啦!在什么时候『可能』会用的上呢?这样说好了现在您的局域网络当中,由于有些朋友一开始设定错误,结果一个 Hub 却接了两个网域,分别是192.168.1.xx 及 192.168.0.xx ,但是您的朋友们却又都不想改变他们的网络设定,这个时候怎么办?『因为不同的网域之间的数据封包不能直接互相沟通』这个概念还没忘记吧?!所以 192.168.1.xx 及 192.168.0.xx 就不能直接沟通数据啰!因此,您如果要与 192.168.1.xx 沟通,您的 IP 就必须设定在该网域内,但这个时候另一个网域 192.168.0.xx 的数据却又无法沟通了!所以您就必须要常常变更 IP 啰!那您又不想常常变更您的 IP ,呵呵!这个时候多个 IP 就派上用场啦!您可以在一块网络卡上面同时设定 192.168.0.xx 及 192.168.1.xx 的 IP ,如此则您的系统可同时接受来自这两个不同网域的资料!嘿!还不错吧! 除此之外,其实还有很多的用的到多个 IP 的地方啦!例如 Router 的设定,有时后也会使用的到的!另外,在测试系统的时候,也常常会使用到多 IP 的设定!基本上,多 IP 的用途还不少就是了! 如何实作? 其实多个 IP 在一块网络卡上面的设定很简单啦!就只要记得一个概念就够了,那就是网络界面卡( Network Interface Card, NIC )与网络界面( Interface )不一样的东西!一个是实体界面,一个则是联机后所产生的界面,两者并不相同!但是 Interface 必需要架构在 NIC 或实际的网络媒介 (如调制解调器) 之上才行!好了!我们来谈一谈实际面吧! 如果您还记得 Linux 底下的硬件装置都是以档案来代表的话,那么就应该知道 Linux 第一块网络卡的代号为 eth0 吧?!OK!那么在这个网络卡上面的第一个虚拟界面( Interface )的代号是什么呢?那就是 eth0:0 啰!第二个虚拟界面则为 eth0:1 .....以此类推!而要启动 eth0:0 时, eth0 务必要被启动,而当关闭 eth0 时,其所有相关的 eth0:n ( n 是数字,0, 1....)将会全部被关闭!这就是刚刚上面提到的『虚拟界面是架构在实体界面之上』的意思!嗯!由于设定的方式主要又可以分为直接以『 command line 』手动启动,也可以使用『 装置配置文件案 』来设定!我们分别说明如下啰! command line 手动设定多个 IP : 在 Linux 网络常用指令篇 里面我们曾经提到 ifconfig 可以用来达成多个 IP 的设定功能!他的主要设定语法与范例为:
装置配置文件设定多个 IP: 这个东西也不难!还记得我们在 连上 Internet 一文当中,曾经提到网络卡的参数配置文件吧!没错!那就是 /etc/sysconfig/network-scripts/ifcfg-eth0 啰!好了!那么我们目前是以装置 eth0:0 做为装置代号,自然文件名就需要改一改啦!所以您可以这样做一次,来达成与上面 command line 的设定相同的状况!
需要注意的地方: 一般而言,鸟哥个人是比较偏向于『使用参数配置文件案的方式』来进行我的多个 IP 的设定!这样有很多好处啦!包括我可以在 ifcfg-eth0:0 这个档案里头,先以 # 批注符号后面来说明一下当初我为何要建置这个档案,以及可以使用档案的型态来了解一下我的配置文件,再来,由于所有的网络卡参数档案都在这个目录下『 /etc/sysconfig/network-scripts』,所以我可以很轻易的就找到相关的配置文件啰!所以,比较推荐这个方式!不过,以一张网络卡设定多个 IP 仍有需要特别留意的地方: 路由器 Router:
什么是 Router ? 还记得我们在 网络基础 里面提过的几个东西吗?『不同网域的数据流,必需要透过 Router 来转译彼此』,也就是说,我们必需要藉由 router 来沟通不同的网域之间的数据啦!通常我们发现 router 的地方,都是在不同的网域之间相互连通的节点上面,好了,那么我们也晓得 Router 是一个『很贵的机器』,呵呵!那么 Linux 可以做成 router 吗?嘿嘿!很好!他可以! 注:路由器与 IP 分享器(或者是 Linux 上面架设 Network Address Translation, NAT )是不太一样的两个咚咚,我们先不谈很高贵的 Router 功能(因为功能太多了!可以转译的数据很吓人,这里我们不谈这些!),单纯的 Router 功能只是在沟通 Router 上面的两个以上接口的数据传输,所以在不同网域的数据传输时,就需要透过 Router 了。不过,这里特别再强调一下,公共 IP 与 私有 IP 是无法直接沟通的,所以万一您的两个界面分别是 Public IP与 Private IP 时,那么简易的 Router 就无法将这两个接口的数据作沟通了!因为是两种不一样的 IP 嘛!这个时候就需要在 Router 上面启用 NAT 功能了。NAT 技术可以将来自 Private IP 的数据封包中,将来源 ( 当然也可以修改目的 ) IP 修改成为 NAT 主机本身的 Public IP 来进行对 Internet 的传送!所以, NAT 主机同时也是 Router ,此外,因为他具有将数据封包伪装的功能,所以可以透过 NAT 主机来让内部的 Private IP 伪装后,来与 Internet 的 Public IP 来沟通!更多关于 NAT 的技术我们在后续的章节会再提及! 为何需要 Router ? 既然 Router 的作用是连通不同的网域,那么我的公司所有的计算机只要都在同一个网域之内,那不就得了!根本就用不着 Router 嘛!不过,不要忘记了我们在 网络基础里面曾将向大家提过的『封包碰撞』与『节点的最大传输量』限制!举个例子来说好了: 这个时候或许 Router 的功能就可以显现出来啰!怎么说呢?因为不同的网域之间不能直接进行数据的沟通,所以您必需要将网域分别开来,而假设以 200 部计算机平均分为 5 个网域好了,这个时候一个网域里面只有 40 部计算机,在这个情况之下,不但布线容易( 针对 40 部计算机来说 ),而且由于不同网域之间不会互相干扰,所以您的物理广播或逻辑广播时产生的网络停顿情况将会减少非常的多!如此一来,对于您内部局域网络的网络流量舒缓,将有相当大的帮助!『请特别留意,通常比较大的局域网络( 指计算机数量较多的企业 ),如果规划不良,则您对外联机的时候,最大的速度瓶颈可能来自于内部网域!这是因为内部网络的 loading 比起外部网络要『慢的很多!』因为内部网络互连的状况( 例如网络芳邻的资源共享、打印机的分享、文件服务器的分享等等 )就会导致您的 Switch/Hub 的带宽被占用光了!』 一般不想要管事的网管人员,最喜欢直接将布线设计成类似底下的模样: 这样做最大的好处就是『简单』,您只要控管一个 服务器 就够了!其他的完全不用去理他,管他什么封包碰撞,反正您内部网络的 loading 太大也没有关系,对于懒惰的网管人员来说,他根本就不痛不痒....这个时候您的内部网络的流量可能真的会负荷很大啦!此时,相当的建议设定成类似底下的模样! 观察与修改路由: 其实就如同前面说的, Router 的最大用途就是将不同网域的数据互相流通,而要沟通这些数据,必然就需要有所谓的『路由, route』这个东西了!以我的情况为例,我是以 ADSL 拨接上 Internet 的,但是我有个内部网域,192.168.1.0/24 这一个内部网域存在,所以在我的 Linux 底下输入 route 时,会得到如下的结果:
这样了解了吗?那个 default 里头的 Gateway 可能取得的方法很多,例如拨接后来自 ISP 的参数、在 /etc/sysconfig/network-sysconfig/ifcfg-ethn 这个档案里面的设定参数,以 Cable Modem 连接 ISP 后所取得的网络参数等等。OK!那么假设您的网域当中还有另外一个不同的网域,假设为 192.168.0.0/24 好了,而这个网域同样的是接在 eth0 这个网卡上面,所以您要您的 eth0 同时还负责 192.168.0.0/24 这个网域时,可以这样做!
一个 Router 架设范例:
由于我们的 Router 需要直接跟两个网域互相连通,所以啰,您的 Router 上面就需要同时具有在这两个网域之间的 IP 啦!此外,由于不同的网域需要启动 Routing 的功能!所以您必须要做一个动作,那就是让目前 Linux 系统里面的 Routing 功能启动!那么我们在 鸟哥的 Linux 私房菜 -- 基础学习篇之资源管理 的文章里面曾经提过,那个核心的程序都是记录在 /proc里面的,至于我们 Linux 核心的网络功能则都记录在 /proc/sys/net/ipv4 这个目录内!而启动 Routing 的程序为 ip_forward 这个档案!只要将内容设定为 1 即为启动,而当为 0 时,就是关闭的啦!因此,若要启动 Routing 则需要『 echo 1 > /proc/sys/net/ipv4/if_forward 』即可!底下是我的测试环境啦!请注意,这个范例单纯仅只是在测试 Router 的功能罢了!您应该依照您的需求来架设您的 Router 呦!那么就将我的联机图示秀出来啰! ^_^ 测试环境说明: 在我的实际测试环境当中,每个组件的内容如下: 基本的图示如下示意: 在这个章节当中,我们不谈怎么架设 NAT 主机,那个是后续章节才要提到的东西,所以焦点的地方在于 NAT Server 的左边之设定,也就是 eth0 的设定!亦即是内部网域的设定而已!基本上,这个可以视为 局域网络架构 那一篇文章的内容延伸啦!在这个地方,我们的网络卡有两个 IP 呦! 开始设定: 我们就照着上面的步骤一步一步做来吧!
另外,请特别留意,就如同刚刚前面我们提过的信息来看,开机的时候,不论您的 alias 的设定为何 ( 是否设定为 ONBOOT ),只要启动 eth0 则相关的 eth0:n 都会被启动!这个时候请特别留意!如果其中有一个 IP alias 设定错误的话,那么可能将会导致您的网络整体都会不通!原因多半出在 GATEWAY 上面!建议设定完成之后,先将 eth0 整个 shutdown ,然后再启动,亦即『ifdown eth0; ifup eth0』然后再来看看 route 的情况!这样可以避免这次设定成功,下次开机却是不通的情况发生的! 测试 Router 工作: 好了,不可免俗的,我们可要好好的测试一下我们的 router 啰!如何测试呢?很简单呀! 测试的工作就是这么简单!来吧我们来测试看看吧!
建议: 上面的那个范例单纯只是为了作为范例来示范!要注意,我们在公司内部架设 router 的时候,通常是希望降低内部网络流量的负载,这个时候,当然是将两个网域分别分开在两个实体网络卡上面比较好!而不是在一块网络卡上面设定两组 IP ,这样做对于减低流量负荷的帮助应该不大!所以,您的实体线路配线方面可能要变成如下图所示的模样( 当然,设定方面则是完全一样啦! ): 无论如何,上面的方式可以提供一些中小企业,计算机数要多不多,偏偏又会影响整体流量的情况时,可以使用来解决问题!再来,对于中小学的网络布线情况呢,也可以达到不错的降低整体网络负荷的效果!而这个简单的 Router 您可以使用 486 那种等级的旧旧的计算机来架设就可以啦!反正他的 loading 又不重~~此外,附上一篇小州前辈的建议给大家参考: 重点回顾:
课后练习
前往参考用解答 2002/08/09:第一次完成日期! 2003/08/22:重新编辑文章,并增加重点回顾与课后练习 |
||||||||||
本网页主要以Firefox配合解析度 1024x768 作为设计依据 鸟哥自由软件整合应用研究室