注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

帅小伙的博客

希望能在这里交到更多的朋友

 
 
 

日志

 
 
 
 

linux下nat的应用(转)  

2007-06-13 17:28:33|  分类: linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
随着Linux的应用普及,Linux在网络方面的强大逐步为大家所认识,越来越多的单位选择使用Linux来作为服务器的操作系统。今天笔者想就Linux在校园网NAT方面的应用展开一些探讨。
大家都知道,所谓“网络地址转换”(Network Address Translation, NAT),它是定义于RFC1631中的Internet标准,主要是用来简化及保存IP地址,它可让原来无法上网,但是可以使用内部IP地址的主机可以成功地连接Internet。这可大大减少IP地址的需求,因为基本上整个内部网络都可以凭借NAT上的一个外部IP来连接Internet。
当NAT作用于路由器时,通常可以连接两组以上的网络在转送数据包到其他网络前,将内部IP地址转换为Internet上合法的外部IP地址。此外,NAT还可以对外只用一个地址代表整个网络,这样可以提供更高的安全性,将整个内部网络隐藏在该地址背后,将这种安全性及地址保存的双重功能的程序通常安装在远程访问的环境。目前许多路由器支持NAT这项功能,其他如Linux中的IP伪装(IP Masquerade),FreeBSD中的NATD或Windows上的Sygate、Wingate、或Winroute等软件都具有相同的功能。
使用NAT的优点如下:
l 减少IP地址使用量。在使用NAT以后,Internet上的主机会误以为它正与NAT服务器进行通信,因为它们并不知在NAT主机背后包含一个局域网。于是,回传的数据包会直接发送到NAT服务器,然后NAT服务器再将这个数据包头文件目的地的IP地址更改为局域网里真正发出信息的计算机。
l 可在NAT服务器上的外部IP上建立多个“IP Alias”,当收到传给那些IP Alias的请求时,NAT服务器可以把这些请求传给内部网络中提供服务的服务器。
l 负载均衡(Loading Balancing),也就是说,将同一个IP Alias请求分别导向到其他运行相同服务的服务器,可减少单一服务器的工作量。
虽然使用NAT具有以上优点,但是在某些情况下,必须注意到NAT潜藏的缺点,以下举出几个例子共大家参考:
l 理论上,NAT服务器只使用一个IP地址,就可涵盖无数个内部IP地址,但是许多网络通信协议或者应用程序都需要真正点对点的连接。
l 有些数据包是从出发地到目的地的过程中不能修改,像IP安全体系结构就不可以使用NAT来进行映射,因为数据包的文件头文件中含有数字签名,如果头文件被更改(即使是任何一个字),这个数字签名便从此失去效力。
l 虽然NAT对于无法取得足够IP地址的企业组织来说,它是一个极佳的解决方案,但当该组织必需合并多个局域网时,必须仔细重新规划IP分配,否则很容易产生IP重复的情况(因为每个局域网都使用内部IP地址)。
l NAT通常被人视为增加计算机安全性的保护措施,但是如果入侵者可以控制NAT服务器,那么整个局域网就会暴露在Internet当中,因此NAT并不能拿来代替防火墙使用。
NAT依其作用的方向性通常可以区分为两种类型:
l Source NAT (SNAT): 所谓的Source NAT就是改变第一个数据包的来源地址,它永远会在数据包发送到网络之前完成,数据包伪装就是一个SNAT的例子。
l Destination NAT (DNAT): Destination NAT刚好与SNAT相反,它是改变第一个数据包的目的地地址,如平衡负载就属于DNAT。
经过以上的说明,大家应该对NAT服务器的原理有了一定的了解。下面笔者就以自己学校的网络为例,来进行实际的NAT服务器的安装。
学校整个网络使用四个IP网段:192.168.0.0/24学校办公网络、192.168.1.0/24学校财务网络、10.0.0.0/16学生网络、192.168.2.0/24 NAT服务器所在网络。这四个网络以华为quidway3526为中心交换机使用vlan划分开,各个vlan之间通过交换机配置可以实现相互通信。现在要使这192.168.0.0/192.168.1.0/10.0.0.0这三个网段通过NAT服务器192.168.2.1来上网。
首先,我们先来进行NAT服务器的安装。NAT服务器应该至少具备两张网卡。
第一张网卡名称:eth0。
IP地址:220.204.56.71。
子网掩码:255.255.255.0。
第二张网卡名称:eth1。
IP地址:192.168.2.1。
子网掩码:255.255.255.0。
在安装NAT服务器之前,必须确定系统上是否已经安装了iptables程序,如果不知是否已经安装了iptables,可以使用以下方法来进行判断:
#rpm –qa iptalbes
iptables-1.2.7a-2
如果尚未安装iptables,可以在第一张安装光盘中的/RedHat/RPMS目录下,找到名为“iptables-1.2.7a-2.i386.rpm”的安装程序,然后按以下方法进行安装:
#rpm –ivh iptables-1.2.7a-2.i386.rpm
在安装好iptables以后,我们首先要配置一下静态路由。以确保NAT主机可以和其它各网段可以相互通信。
首先查看一下路由表:
#route
Kernel IP routing table
Destination Gateway Genmask Flags Use Iface
192.168.2.0 *     255.255.255.0   U  eth1
127.0.0.0 * 255.0.0.0 U lo
default 220.204.56.1 0.0.0.0 UG eth0
现在的NAT主机是无法和其他网段相互通信的,所以我们用添加静态路由的方法来解决这个问题:
#route add –net 192.168.0.0/24 gw 192.168.2.254
#route add –net 192.168.1.0/24 gw 192.168.2.254
#route add –net 10.0.0.0/16 gw 192.168.2.254
(注:192.168.2.254是quidway3526交换机上192.168.2.0这个vlan的接口)
现在应该已经可以和这三个网段的机器进行相互通信了。用ping命令来进行测试:
C:\Documents and Settings\administrator>ping 192.168.2.1
Pinging 192.168.2.1 with 32 bytes of data:
Reply from 192.168.2.1: bytes=32 time<10ms TTL=63
Reply from 192.168.2.1: bytes=32 time<10ms TTL=63
Ping statistics for 192.168.2.1:
Packets: Sent = 2, Received = 2, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
接下来我们需要使用IP Forwarding的功能,代替内部网络的主机发送数据包。
1、 修改/etc/sysctl.conf文件内容,将“net.ipv4.ip_forward=”这行设置为1。
#vi /etc/sysctl.conf
net.ipv4.ip_forward=1
2、 修改/etc/sysconfig/network,加入这句话“echo 1>/proc/sys/net/ipv4/ip_forward”。
3、 重新加载/etc/rc.d/init.d/xinetd,以便使设置生效:
     #/etc/rc.d/init.d/xinetd reload
4、 运行下面的指令使用IP伪装(IP Masquerading)允许所有内部网络的主机连接到Internet。
#iptables –t nat –A POSTROUTING –s 192.168.0.0/24 –j MASQUERADE
#iptables –t nat –A POSTROUTING –s 192.168.1.0/24 –j MASQUERADE
#iptables –t nat –A POSTROUTING –s 10.0.0.0/16 –j MASQUERADE
(注:Linux严格区分大小写)
在三个网段上的任意一台机器运行ping命令进行测试:

C:\Documents and Settings\administrator>ping www.sina.com.cn
Pinging taurus.sina.com.cn [61.172.201.226] with 32 bytes of data:
Reply from 61.172.201.226: bytes=32 time=78ms TTL=50
Reply from 61.172.201.226: bytes=32 time=62ms TTL=50
Reply from 61.172.201.226: bytes=32 time=93ms TTL=50
Reply from 61.172.201.226: bytes=32 time=63ms TTL=50
Ping statistics for 61.172.201.226:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 62ms, Maximum = 93ms, Average = 74ms
此至使用Linux配置一台校园网NAT服务器就完成了。当然我们还可以将这台机器配置成NAT+防火墙,这样就会使得我们的局域网更加安全,具体怎样利用iptables来配置防火墙因为不是本文的重点,所以在这里就不再详述了。
Linux博大精深,其网络方面的功能强大,安全性和稳定性更是windows所不能及的。但是,Linux的优势能否更快的为更多的人所接受,能否在学校信息化进程中起到显著的推动作用,还需要每一位Linux爱好者热情和支持,笔者写这篇文章也是真正想为Linux的发展和应用尽上自己的一份力,为Linux在学校网络应用上的推广做点事情
  评论这张
 
阅读(330)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018