TTEP.CN > 手机 >
路由器架设(1)
什么是路由器与 IP 分享器
既然主机想要将资料传送到不同的网域时得透过路由器的帮忙,所以啦,路由器的主要功能就是:『转递网路封包』咯!也就是说,路由器会分析来源端封包的 IP 表头,在表头内找出要送达的目标 IP 后,透过路由器本身的路由表 (routing table) 来将这个封包向下一个目标 (next hop) 传送。这就是路由器的功能。 那么路由器的功能可以如何达成呢?目前有两种方法可以达成:
* 硬体功能:例如 Cisco, TP-Link, D-Link (2) 等公司都有生产硬体路由器, 这些路由器内有嵌入式的作业系统,可以负责不同网域间的封包转译与转递等功能;
* 软体功能:例如 linux 这个作业系统的核心就有提供封包转递的能力。
高阶的路由器可以连结不同的硬体设备,并且可以转译很多不同的封包格式,通常价格也不便宜啊! 在这个章节里面,我们并没有要探讨这么高阶的问题,仅讨论在乙太网路里头最简单的路由器功能: 连接两个不同的网域。嘿嘿!这个功能 linux 个人电脑就可以达成了!那怎么达成呢?
打开核心的封包转递 (IP forward) 功能
就如同路由表是由 linux 的核心功能所提供的,这个转递封包的能力也是 linux 核心所提供, 那如何观察核心是否已经有启动封包转递呢?很简单啊,观察核心功能的显示档案即可,如下所示:
[root@www ~]# cat /proc/sys/net/ipv4/ip_forward
0 <== 0 代表没有启动, 1 代表启动了
要让该档案的内容变成启动值 1 最简单的方是就是使用:『echo 1 > /proc/sys/net/ipv4/ip_forward』即可。 不过,这个设定结果在下次重新开机后就会失效。因此,鸟哥建议您直接修改系统设定档的内容,那就是 /etc/sysctl.conf 来达成开机启动封包转递的功能喔。
[root@www ~]# vim /etc/sysctl.conf
# 将底下这个设定值修改正确即可! (本来值为 0 ,将它改为 1 即可)
net.ipv4.ip_forward = 1
[root@www ~]# sysctl -p <==立刻让该设定生效
sysctl 这个指令是在核心工作时用来直接修改核心参数的一个指令,更多的功能可以参考 man sysctl 查询。 不要怀疑!只要这个动作,你的 linux 就具有最简单的路由器功能了。而由于 linux 路由器的路由表设定方法的不同,通常路由器规划其路由的方式就有两种:
* 静态路由:直接以类似 route 这个指令来直接设定路由表到核心功能当中,设定值只要与网域环境相符即可。 不过,当你的网域有变化时,路由器就得要重新设定;
* 动态路由:透过类似 Quagga 或 zebra 软体的功能,这些软体可以安装在 linux 路由器上, 而这些软体可以动态的侦测网域的变化,并直接修改 linux 核心的路由表资讯, 你无须手动以 route 来修改你的路由表资讯喔!
了解了路由器之后,接下来你可能需要了解到什么是 NAT (Network Address Translation, 网路位址转译) 伺服器, NAT 是啥?其实 IP 分享器就是最简单的 NAT 伺服器啦!嘿嘿,了解了吗?没错, NAT 可以达成 IP 分享的功能, 而 NAT 本身就是一个路由器,只是 NAT 比路由器多了一个『 IP 转换』的功能。怎么说呢?
一般来说,路由器会有两个网路介面,透过路由器本身的 IP 转递功能让两个网域可以互相沟通网路封包。 那如果两个介面一边是公共 IP (public IP) 但一边是私有 IP (private IP) 呢? 由于私有 IP 不能直接与公共 IP 沟通其路由资讯,此时就得要额外的『 IP 转译』功能了;
linux 的 NAT 伺服器可以透过修改封包的 IP 表头资料之来源或目标 IP ,让来自私有 IP 的封包可以转成 NAT 伺服器的公共 IP ,就可以连上 Internet !
所以说,当路由器两端的网域分别是 Public 与 Private IP 时,才需要 NAT 的功能! NAT 功能我们会在下一章防火墙时谈及, 这个章节仅谈论一下路由器而已啊! ^_^
何时需要路由器
一般来说,电脑数量小于数十部的小型企业是无须路由器的,只需要利用 hub/switch 串接各部电脑, 然后透过单一线路连接到 Internet 上即可。不过,如果是超过数百部电脑的大型企业环境, 由于他们的环境通常需要考虑如下的状况,因此才需要路由器的架设:
* 实体线路之布线及效能的考量:
在一栋大楼的不同楼层要串接所有的电脑可能有点难度,那可以透过每个楼层架设一部路由器, 并将每个楼层路由器相连接,就能够简单的管理各楼层的网路; 此外,如果各楼层不想架设路由器,而是直接以网路线串接各楼层的 hub/switch 时, 那由于同一网域的资料是透过广播来传递的,那当整个大楼的某一部电脑在广播时, 所有的电脑将会予以回应,哇!会造成大楼内网路效能的问题;所以架设路由器将实体线路分隔, 就有助于这方面的网路效能。
* 部门独立与保护资料的考量:
在阅读过网路基础后,你就会晓得, 只要实体线路是连接在一起的,那么当资料透过广播时,你就可以透过类似 tcpdump 的指令来监听封包资料, 并且予以窃取~所以,如果你的部门之间的资料可能需要独立, 或者是某些重要的资料必须要在公司内部也予以保护时,可以将那些重要的电脑放到一个独立的实体网域, 并额外加设防火墙、路由器等连接上公司内部的网域。
路由器就只是一个设备,要如何使用端看你的网路环境的规划!上面仅是举出一些应用案例。 底下我们先就架设一个静态路由的路由器来玩一玩吧!
静态路由之路由器
假设在贵公司的网路环境当中,除了一般职员的工作用电脑是直接连接到对外的路由器来连结网际网路, 在内部其实还有一个部门需要较安全的独立环境,因此这部份的网路规划可能是这样的情况 :
静态路由之路由器架构示意图
以上图的架构来说,这家公司主要有两个 class C 的网段,分别是:
一般区网(192.168.1.0/24) :包括 Router A, workstation 以及 linux Router 三部主机所构成;
保护内网(192.168.100.0/24):包括 linux Router, clientlinux, winxp, win7 等主机所构成。
其中 192.168.1.0/24 是用来做为一般员工连接网际网路用的,至于 192.168.100.0/24 则是给特殊的部门用的。workstation 代表的是一般员工的电脑,clientlinux 及 winxp, win7 则是特殊部门的工作用电脑, linux Router 则是这个特殊部门用来连接到公司内部网域的路由器。在这样的架构下, 该特殊部门的封包就能够与公司其他部门作实体的分隔了。
由上图你也不难发现,只要是具有路由器功能的设备 (Router A, linux Router) 都会具有两个以上的介面, 分别用来沟通不同的网域,同时该路由器也都会具有一个预设路由啊! ^_^! 另外,你还可以加上一些防火墙的软体在 linux Router 上,以保护 clientlinux, winxp, win7 呢!
既然主机想要将资料传送到不同的网域时得透过路由器的帮忙,所以啦,路由器的主要功能就是:『转递网路封包』咯!也就是说,路由器会分析来源端封包的 IP 表头,在表头内找出要送达的目标 IP 后,透过路由器本身的路由表 (routing table) 来将这个封包向下一个目标 (next hop) 传送。这就是路由器的功能。 那么路由器的功能可以如何达成呢?目前有两种方法可以达成:
* 硬体功能:例如 Cisco, TP-Link, D-Link (2) 等公司都有生产硬体路由器, 这些路由器内有嵌入式的作业系统,可以负责不同网域间的封包转译与转递等功能;
* 软体功能:例如 linux 这个作业系统的核心就有提供封包转递的能力。
高阶的路由器可以连结不同的硬体设备,并且可以转译很多不同的封包格式,通常价格也不便宜啊! 在这个章节里面,我们并没有要探讨这么高阶的问题,仅讨论在乙太网路里头最简单的路由器功能: 连接两个不同的网域。嘿嘿!这个功能 linux 个人电脑就可以达成了!那怎么达成呢?
打开核心的封包转递 (IP forward) 功能
就如同路由表是由 linux 的核心功能所提供的,这个转递封包的能力也是 linux 核心所提供, 那如何观察核心是否已经有启动封包转递呢?很简单啊,观察核心功能的显示档案即可,如下所示:
[root@www ~]# cat /proc/sys/net/ipv4/ip_forward
0 <== 0 代表没有启动, 1 代表启动了
要让该档案的内容变成启动值 1 最简单的方是就是使用:『echo 1 > /proc/sys/net/ipv4/ip_forward』即可。 不过,这个设定结果在下次重新开机后就会失效。因此,鸟哥建议您直接修改系统设定档的内容,那就是 /etc/sysctl.conf 来达成开机启动封包转递的功能喔。
[root@www ~]# vim /etc/sysctl.conf
# 将底下这个设定值修改正确即可! (本来值为 0 ,将它改为 1 即可)
net.ipv4.ip_forward = 1
[root@www ~]# sysctl -p <==立刻让该设定生效
sysctl 这个指令是在核心工作时用来直接修改核心参数的一个指令,更多的功能可以参考 man sysctl 查询。 不要怀疑!只要这个动作,你的 linux 就具有最简单的路由器功能了。而由于 linux 路由器的路由表设定方法的不同,通常路由器规划其路由的方式就有两种:
* 静态路由:直接以类似 route 这个指令来直接设定路由表到核心功能当中,设定值只要与网域环境相符即可。 不过,当你的网域有变化时,路由器就得要重新设定;
* 动态路由:透过类似 Quagga 或 zebra 软体的功能,这些软体可以安装在 linux 路由器上, 而这些软体可以动态的侦测网域的变化,并直接修改 linux 核心的路由表资讯, 你无须手动以 route 来修改你的路由表资讯喔!
了解了路由器之后,接下来你可能需要了解到什么是 NAT (Network Address Translation, 网路位址转译) 伺服器, NAT 是啥?其实 IP 分享器就是最简单的 NAT 伺服器啦!嘿嘿,了解了吗?没错, NAT 可以达成 IP 分享的功能, 而 NAT 本身就是一个路由器,只是 NAT 比路由器多了一个『 IP 转换』的功能。怎么说呢?
一般来说,路由器会有两个网路介面,透过路由器本身的 IP 转递功能让两个网域可以互相沟通网路封包。 那如果两个介面一边是公共 IP (public IP) 但一边是私有 IP (private IP) 呢? 由于私有 IP 不能直接与公共 IP 沟通其路由资讯,此时就得要额外的『 IP 转译』功能了;
linux 的 NAT 伺服器可以透过修改封包的 IP 表头资料之来源或目标 IP ,让来自私有 IP 的封包可以转成 NAT 伺服器的公共 IP ,就可以连上 Internet !
所以说,当路由器两端的网域分别是 Public 与 Private IP 时,才需要 NAT 的功能! NAT 功能我们会在下一章防火墙时谈及, 这个章节仅谈论一下路由器而已啊! ^_^
何时需要路由器
一般来说,电脑数量小于数十部的小型企业是无须路由器的,只需要利用 hub/switch 串接各部电脑, 然后透过单一线路连接到 Internet 上即可。不过,如果是超过数百部电脑的大型企业环境, 由于他们的环境通常需要考虑如下的状况,因此才需要路由器的架设:
* 实体线路之布线及效能的考量:
在一栋大楼的不同楼层要串接所有的电脑可能有点难度,那可以透过每个楼层架设一部路由器, 并将每个楼层路由器相连接,就能够简单的管理各楼层的网路; 此外,如果各楼层不想架设路由器,而是直接以网路线串接各楼层的 hub/switch 时, 那由于同一网域的资料是透过广播来传递的,那当整个大楼的某一部电脑在广播时, 所有的电脑将会予以回应,哇!会造成大楼内网路效能的问题;所以架设路由器将实体线路分隔, 就有助于这方面的网路效能。
* 部门独立与保护资料的考量:
在阅读过网路基础后,你就会晓得, 只要实体线路是连接在一起的,那么当资料透过广播时,你就可以透过类似 tcpdump 的指令来监听封包资料, 并且予以窃取~所以,如果你的部门之间的资料可能需要独立, 或者是某些重要的资料必须要在公司内部也予以保护时,可以将那些重要的电脑放到一个独立的实体网域, 并额外加设防火墙、路由器等连接上公司内部的网域。
路由器就只是一个设备,要如何使用端看你的网路环境的规划!上面仅是举出一些应用案例。 底下我们先就架设一个静态路由的路由器来玩一玩吧!
静态路由之路由器
假设在贵公司的网路环境当中,除了一般职员的工作用电脑是直接连接到对外的路由器来连结网际网路, 在内部其实还有一个部门需要较安全的独立环境,因此这部份的网路规划可能是这样的情况 :
静态路由之路由器架构示意图
以上图的架构来说,这家公司主要有两个 class C 的网段,分别是:
一般区网(192.168.1.0/24) :包括 Router A, workstation 以及 linux Router 三部主机所构成;
保护内网(192.168.100.0/24):包括 linux Router, clientlinux, winxp, win7 等主机所构成。
其中 192.168.1.0/24 是用来做为一般员工连接网际网路用的,至于 192.168.100.0/24 则是给特殊的部门用的。workstation 代表的是一般员工的电脑,clientlinux 及 winxp, win7 则是特殊部门的工作用电脑, linux Router 则是这个特殊部门用来连接到公司内部网域的路由器。在这样的架构下, 该特殊部门的封包就能够与公司其他部门作实体的分隔了。
由上图你也不难发现,只要是具有路由器功能的设备 (Router A, linux Router) 都会具有两个以上的介面, 分别用来沟通不同的网域,同时该路由器也都会具有一个预设路由啊! ^_^! 另外,你还可以加上一些防火墙的软体在 linux Router 上,以保护 clientlinux, winxp, win7 呢!
- 最近发表
- 赞助商链接