linux下nat的应用(转)

随着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 [url]www.sina.com.cn[/url]

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在

学校网络应用上的推广做点事情

linux nat软件,linux下nat的应用(转)相关推荐

  1. linux 图像处理软件,linux下的图像处理软件

    由于学习和工作需要,已经基本告别windows.我呢,平时爱好摄摄影,免不了会经常的遇到图片处理,ps和光影魔术手,我比较喜欢,也比较习惯.不过这两者都是跑在win下的软件,当然,ubuntu下也可以 ...

  2. 写linux代码软件,Linux下写代码神器,完爆notepad++

    SciTE是一款很好用的编辑器,支持众多的脚本,比如C.C++.PHP.C#.perl.html.css.java等等.免费而且开源.支持linux和win32环境.在windows下面只需要将下载的 ...

  3. linux qos 软件,linux下QOS:应用篇 - 博客 - 伯乐在线

    原文出处: linuxDOS   欢迎分享原创到伯乐头条 上一篇我们讲了QOS的理论知识,了解了它是做什么用的,以及设计模式,下面就以tc的应用的更深入的理解qos. Linux采用了基于对象的实现方 ...

  4. linux qos 软件,linux下QOS:应用篇

    Linux采用了基于对象的实现方法,qos还能保证对不同接口采用不同的策略,TC QOS有很多拥塞控制的机制默认的是FIFo还有其他PQ.CQ.WFQ等. 策略类 用结构体:Qdisc_ops表示.每 ...

  5. linux拨号软件,Linux 下的宽带ADSL拨号软件“rp-pppoe”使用设置

    RH要先设置网卡#netconf 把IP和DNS设置成如下的. IP地址:192.168.0.1 掩码: 255.255.255.0 DNS (下面以广东佛山为例,各地的ISP 均有不同的DNS ) ...

  6. Linux蓝牙耳机软件,linux 下搞定蓝牙耳机

    其实今天在 linux 下面搞定蓝牙耳机并不是很难的事情.只不过因为这个问题在历史上曾经比较棘手,网上充斥了大量相对陈旧的.复杂的安装指南,导致人们一直感觉这样时尚的东西,可能 linux 支持起来很 ...

  7. bochs linux 安装软件,Centos 下安装 Bochs

    下载Bochs 找一个Bochs最新的下载就好了 yum install gcc bochs使用c++编写,编译源代码时用到gcc yum groupinstall "Development ...

  8. linux笔记软件,Linux Ubuntu学习笔记_软件管理

    管理软件包工具:dpkg.rpm (dpkg管理deb软件包.rpm管理rpm软件包) 安装程序:sudo dpkg -i *.deb (Ubuntu文件后缀为.deb SuSE.Fedora为.rp ...

  9. linux iscsi软件,linux iscsi软件环境搭建

    1.软件准备 1)scst软件组:scst-1.0.1.1.tar.gz,iscsi-scst-1.0.1.tar.gz,scstadmin-1.0.6.tar.gz 下载地址: 2)mdadm-2. ...

最新文章

  1. C++查找算法(更新中)
  2. Hacked VisualSVN Server by PHP to allow user change password
  3. nested exception is java.lang.NoClassDefFoundError: org/springframework/aop/TargetSource
  4. python 时间序列分析之ARIMA(不使用第三方库)
  5. oracle 常见操作
  6. 16位汇编 Hook int 0实例
  7. 十行Python以内代码能有什么高端操作?
  8. Github Clone to local files
  9. 安卓怎么把一个按钮设计成梯形_常闭触点输入信号处理的电路图及PLC梯形图
  10. [2019杭电多校第五场][hdu6630]permutation 2
  11. 重复类发展手法_正确护肤手法图解!
  12. 【优化分类】基于matlab改进的人工蜂群算法优化SVM分类【含Matlab源码 1833期】
  13. 鲁大师电脑硬件兼容性测试软件,还在用鲁大师?查看电脑硬件信息可以用这些免费的软件!...
  14. 【良心推荐】国内适合中小企业、团队的十大协同办公系统
  15. 打开应用商店显示服务器出错了,Win10应用商店提示“我们这边出错了”的三种解决方法...
  16. android开机动画 制作工具,开机动画包制作(bootanimation)
  17. 【hadoop生态之Hive】Hive的数据类型【笔记+代码】
  18. uni-app图片上传(位置固定)
  19. lopa分析_AQ/T 3054-2015保护层分析(LOPA)方法应用导则
  20. 看 阿里人的工作生活是怎样的|2017 阿里人影像纪录短片发布

热门文章

  1. 条件 CHAIN 语句
  2. SAP支持包、插件程序和附件
  3. ABAP模块P类型详细解释
  4. 《SAP高级应用开发》---Idoc学习笔记
  5. 不做“韭菜”,永洪BI教你逃离币圈骗局
  6. 做宠物行业“独角兽”,乖宝集团如何为宠物舌尖上的安全保驾护航?
  7. 释放数据价值,大数据分析如何助力电商获客又增收?
  8. mysql/event.myd no fond_mysql Last_Error: Error 'File './sales.MYD' not found (Errcode: 24)
  9. java迷宫生成代码_通过深度优先搜索产生的迷宫的Java代码
  10. stl如果开o2_如何自己写一个STL(上)