企.业网中用Linux作为路由器--- 印刷
. 中央民.族大学科研处 伊利贵 女人
现在,因为使用线缆和DSL的Internet连接速度已经超过了T1(传输速率可达1..544Mb/s的通讯线路),所以这两种连接方式已经在商业领域得到.了广泛的应用。.对于DSL和线缆连接来说,使用Linux来做路由器,是一个非常经济的解决方案。特别是和一些高端商家(比如Ci.sco)的解决方案相比,这种优势尤为明显。 乙肝
使用Linux路由器作为一个现有的、已经成熟的网络的一个部分,将会有一个比较特殊的问题。如果我们使用Linux服务器作为DSL或者线缆连接的NAT(网络地址转换)服务器,那么我们将可通过Linux路由器对外提供服务。但是,对于大多数已经成熟的企业网络基础构架,这种方式却不一定实用,也不一定可行。比如,如果你的公司在现有的内部HTTP和SMTP服务上已经投入了可观的资金,或.者在一个HTTP服务器上使用了负载平衡以支持电脑商务交易,那.么你的公司将不太可能.把这些服务移植到Linux服务器上。但是.,如果公司想寻找一种经济的途径来同时控制一些In.ternet服务.,那么基于Linu.x的路由器将是一个很好的选择。.
NAT的使用
让我们来看一看公司的DSL/线缆连接只有一个IP地址的.情况。我们如何才能把这个只有一个IP地址的流入数据.包映射到内部主机呢.?事实上,Linux已经把这一功能内建到了自己的内核中,所以我们只需几个免费的软件工具就可以来管理这个功能。--------------彩票
在数据包流出内.部网时,我们使用一个叫做IP伪装的功能来提供NAT解决办法,.它可以让.众多的内部网主机共.享一个IP地址。而对于外部连接来说,似乎所有的得到的信息都来自同.一个IP地址。在Linux.里,具有NAT功能的组件是一个比较容易搞混的功能,它可以在端口级别执行入站数据包的翻译(有进也叫反向NAT或者解除伪装)。Linux路由器会监听端口80(HTTP服务使用的默认端口)的所有连接请求,并且当检测到一个连接请求时,它会自动地把数据包转发到内部网对应的主机上。.
事实上,之所以我们对反向NAT功能不太了解,是因为在主.流的Linux发行版本中,一般没有包括对该功能的配置工具。一个最一般的,.也是用得最广泛的用于管理这一功能的应用程序是“ipmasqadm”。要检查你是否安装了这一应用程序,你可以以系统管理员的身份登录,并在shell提示符下输入“ipmasqadm”,如.果得到“Command not fo.und”的错误信息,那么你可以从网上下载.最新的RPM安装包(比如:rpmfind.net就有)。--------------彩票
典型的网络配置
下图描述的是一个线缆连接中使用Linux作为路由器的典型的网络结构图。其中一个以太网端口(eth0)为线缆调制.解调器提供了物理连接,另外一个端口(eth1)把路由器连接到LAN。此外,我们还可以使用第三个以太网端口eth2,虽然这不是必需的,但是使用它来提供一个独立的DMZ (demilitarized zone,即非军事区)。DMZ.是放置公共信息的最佳位置,这样用户、潜在用.户和外部访问者都可以直接获得他们所..需的关于公司的一些信息,而不用通过.内网。你公司中的.机密的和私人的信息可以安全地存放在内网中,即DMZ的后面。.DMZ服务器上的破坏最多只可能造成在你恢复服务器时的一段中断服务。这样通过使用独立的NIC(网卡)把服务器隔离,我们就把他们所有的活动和企业局域网其它的部分分开。一般来说,我们使用DMZ来提.供更好的防火墙保护,但是不管有无DMZ,在Linux服务器上的端口转发都不会受到影响。 电子
端口转发的配置
端口转发的功能很简单:与Sendmail、Apache响应SMTP和HTTP信息不.同,我们使用“ipmasqadm portfw”来转发所有的信息.。.
在激活端口.转发之前,要确保所有相关的内核都已加载。和端口转发服.务相关的有三个模块,具体命令是(以root身分执行):.
# insm.od ip_masq_autofw.o 乙肝
# insmod ip_masq_po.rtfw.o(广告)
# i.nsmod ip_masq_mfw.o 健康
一旦运行了这些命.令,Linux路由器就开始.准备处理端口转发请求。来看下面的指令:.
# ipmasqad.m portfw –f健康
其中-f选项告诉Linux路由器刷新端口转发规则表。执行这个命令不是必需的,只不.过如果当前的表有多余或者错.误条目时,这是一个好办法。.
接下来的一.系列命令将建立起Linux路.由器转发信息的规则。语法如下所示:教育
# ipmasqadm portfw -a -P P.ROTO -L LADDR LPORT .-R RADDR RPORT [-p PREF]域名
其中-a参数指示这.条规则应该被加入规则表中;-P PROTO参数告诉Linux路由器转发到哪一个.IP地址(该选.项只对TCP和UDP有效);-L参数指示要监控的IP地址和端口(默认的IP地址和Internet.网卡端口);-R参数告诉路由器把数据包送到哪儿(IP地址和端口)。投资
在.上述例子中,要路.由流入的SMTP和HTTP的信息,我们使用如下指令:.
# ipmasqa.dm portfw -a -P tcp .-L 172.16.1.1 25 -R 192.168.1.1 25 外汇
# ipmasqadm portfw -a -P tcp -L .172.16.1.1 80. -R 192.168.1.2 80 美容
第一行设置一个规则,告诉Linux路由器监听对IP地址为172.16.1.1,端口为25的连接请求。并且把这些请求路由到内部网中IP地址为192.168.1.1的电子.邮件服务器的2.5端口上。同样,第二条规则告诉路由器监听端口80的连接请求,并将其路由到IP地址.为1.92.168.1.2的HTTP服务器的端口80上。.
好了,现在.所有在端口25和80的连接请求,都会被自动地转发到应的内部网主机上了。并且,任何时候,我们都可以使用“ipmasqadm .portfw -l”命.令来查看正在起作用的端口转发规则:[成人用品]
prot localaddr rediraddr .lport r.port pcnt .pref[成人用品]
TCP 172.16.1.1 192.168..1.2 80 8.0 10 10--- 印刷
TCP 1.7.2.16.1.1 192.168.1.1 25 25 10 10 电子
-n标记告诉命令不要.执行DNS查找IP地址,并且只打印.出所指定数量的IP地址。 乙肝
非默认端口的连接
当然,我们也可以使用Linux的端口转发能力来转发非默认的端口到默.认的端口,反之亦.然。比如下例:.
# ipmasqadm portfw -a -P tcp .-L 172.16.1.1 11011 .-R 192.168.1.1 110.
# ipmasqadm portfw -a -P tcp. -L 172.16.1.1 80 -R 192.168.1.2 .25044健康
以上所示的第一行告.诉Linux路.由器把端.口11011的连接请求,转发到内部主机192.168.1.1的端口110(POP3端口)。如果内部主机是一个POP3服务器,那么这个命令将可以.让远程用户使用非默认的端口连接到他们的POP3信箱。这可以阻止一些网络黑客试图使用公共端口入侵POP邮件系统。 外汇
以上所示的第二行把Linux路由器上HTTP.服务器标准端口80上的请求转发到非标准端口25.044上。这种情况主要是用于已经在默认端口上运行了Web服务器,但是又想让其能够响应.其它非默认的端口。[成人用品]
负载平衡
如果公司有一个..高层的电子商务站点,而同时又运行着一些.Web服务器,那么就可以使用ipmasqadm portfw的 -p PREF参数来实现在这些服务器中的负载平衡。 乙肝
-p的值虽然被称为首选项,事实上它实现的是一个计数器的功能。一旦Linux.路由.器建立起了规则所指定的相应数目的连接,它就会跳到下一个入口。 健康
比如,现在我们来创.建如下所示的端口转发规则: 外汇
# ipmasqadm portfw -a. -P tcp -L 172.16.1.1 80 -R 1.92.168.1.2 80 -p 5 汽车
# ipmasqadm portfw -a -P tcp -.L 172.16.1.1 80 -R 192..168.1.3 80 -p 25 汽车
# ipmasqadm portfw -a -P tcp -L 172.16.1.1. 80 -R 192.168.1.4 80. -p 10.
#. ipmasqadm por.tfw -a -P tcp -L 172.16.1.1 80 -R 192.168.1.5 80 -p 30虚拟主机
上面的指令说明,首先和Linux路由器连接的5个请求,将被送到IP地址为192.18.1.2的HTTP服务器;接下去的25个连接将被送到地址为192.168.1.3的HTTP服务器;接下去的10个连接送到192.168.1.4;下30个连接送到192.168.1.5。一旦30个连接都被送到192.168.1...5以后,整个过程重新.开.始。.
这个转发顺序的规则说明192.1.68.1.3 和192.168.1.5两.个服务器处理连接的能力要强于192.168.1.2 和192.168.1.4。通过监测这些机器的服务器负载,网络管理员就可以调整服务器的映射参数,以使整个站点保持最佳的响.应时间。电影
总结
在Linux里,端口转发是一个强大的功能,但是相关的文档较少。不过通过以上的学习,我们发现,其.实这个功能并不难实现。现在,你.不仅可以把所有流入的I.nternet信息转发到内部网中的对应主机上了,而且还可.以使你的整个网络在信息流入和流出时共享一个IP地址,这将可以大增强内部网络的安全性。.