NAT应用与配置完全攻略

运维 网络运维
简言之,NAT就是通过地址转换访问不同网段的信息。本文将介绍在Windows 2000 Server、Linux和路由器中如何配置NAT。

NAT释义

现在越来越多的地方用到网络地址转换(Network Address Translation,NAT)。网络中的IP包从源地址出发,到最终的目的地址,会经过很多不同的连接。这些连接(包括路由器、交换机、服务器等)不会修改IP包的内容,只是根据目的地址选择转发路径。NAT的作用就是修改IP包的源、目的地址或者源、目的端口(Port)。通常,NAT设备(服务器、防火墙或路由器)会记录它是如何转换的,当相应的IP包通过时,它会对相应的IP包做反向转换。简言之,就是通过地址转换访问不同网段的信息。本文将介绍在Windows 2000 Server、Linux和路由器中如何配置NAT。

NAT的应用环境

情况1:一个企业不想让外部网络用户知道自己的网络内部结构,可以通过NAT将内部网络与外部Internet 隔离开,则外部用户根本不知道通过NAT设置的内部IP地址。

情况2:一个企业申请的合法Internet IP地址很少,而内部网络用户很多。可以通过NAT功能实现多个用户同时公用一个合法IP与外部Internet 进行通信。

NAT的类型

静态地址转换:将内部本地地址与内部合法地址进行一对一的转换,或者说是将外网某个IP与内网中某个IP捆绑,延伸开去,可以把内网某个IP的某个端口(比如80)与外网的某个IP的某个端口(比如8080)捆绑。如果内部网络有E-mail服务器或FTP服务器等可以为外部用户提供的服务,那么这些服务器的IP地址必须采用静态地址转换,以便外部用户可以使用这些服务。这种NAT方式,也可称作PAT(Port Address Translation)。

动态网络地址转换:是将外网某个或者多个IP(称为地址池)与整个内网捆绑,相当于内网有了一个或多个外网地址。

NAT的实现

为了便于描述,我们下面做内网(192.168.2.0/24)与外网(211.84.20.0/28)之间动态NAT地址转换和静态地址转换。内网192.168.2.1提供WWW服务,并且侦听8080端口。当外部向地址211.84.20.1提交WWW的80端口请求时,系统NAT将目的地址转换为192.168.2.1,并将端口转换为8080。

一、在Windows 2000 Server系统环境下NAT的设置。

首先需要安装两块网卡,分别配置两个网段地址(内网网卡配192.168.2.2;外网网卡配211.84.20.1)。通过“控制面板”或者“管理工具”进入“路由和远程访问”。如果原先没有启用配置过路由(如果原先已经启用了静态路由等其他功能,建议先禁用,原因下面会讲到)访问,进入配置向导,按照向导,选择“Internat连接服务”→ “设置有网络地址转换(NAT)路由协议的路由器”→ “使用选择的Internat连接”,下面的列表框里显示了两个连接(见图1左窗口,本地连接和本地连接2),选择配置了外网IP的那个连接(比如配置了公网IP的连接),再点击下一步就完成了。打开本机树,您会看到四个子项(见图1):路由接口、IP路由选择、远程访问策略、远程访问记录。

图1

第一项显示本机路由接口,不需配置,第三四项提供远程访问服务(比如远程拨入),在这里不是本文中心,略过。展开第二项可看到常规、静态路由、IGMP、网络地址转换(NAT)四个小子项;可根据需求配置静态路由;如果不需要IGMP(组播)功能,建议删除。展开网络地址转换,可以看到两个连接,打开配置了外网地址的连接,如图2所示。

图2

常规中的选项不用改变,就用默认即可。地址池是您所拥有的外网地址,比如您有从211.84.20.1到211.84.20.7七个地址(这里是示例,实际情况可能并不合理,因为至少应该留一个做网关地址,以便到达其他网段),就可以写在这里。下面的保留公用地址,是为了一对一的静态地址转换用的。

特殊端口的配置实际上就是配置所谓的静态NAT+Port。上图显示内网地址为192.168.2.1提供WWW服务,并且侦听8080端口。当外部提交WWW请求(80端口)时,系统NAT将目的地址转换为192.168.2.1(见图3)。

图3#p#

二、在 Linux系统环境下NAT的设置。

NAT在以前的Linux版本中被称为端口转发。SNAT就是改变转发数据包的源地址,DNAT就是改变转发数据包的目的地址。

做NAT有三条规则:

POSTROUTING:定义进行目的NAT的规则;

POSTROUTING:定义进行源NAT的规则;

OUTPUT:定义对本地产生的数据包的目的NAT规则。

具体实现过程如下:

要使用NAT表时,必须首先载入相关模块:

modprobe ip_tables

modprobe ip_nat_ftp

iptable_nat 模块会在运行时自动载入。

我们还用上面的那个例子。

静态NAT(带端口转发):

iptables -t nat -A PREROUTING -d 211.84.20.1 -j DNAT -p tcp -m tcp --to-destination 192.168.2.1 --dport 80 REDIRECT --to-port 8080

iptables -t nat -A POSTROUTING -s 192.168.2.1 -j SNAT -p tcp -m tcp --to-source 211.84.20.1

动态NAT:

iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -j -d 211.84.20.1

动态NAT也可用伪装,这条规则一般是没有固定外部地址,常用于拨号访问Internet。

iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -j MASQUERADE

说明:使用iptables的NAT功能时,我们必须在每一条规则中使用“-t nat”显示指明使用NAT表。

-A加入(append) 一个新规则到一个链 (-A)的最后;

-I可以插入一条规则,插入位置序号写在POSTROUTING后;

-D在链内某个位置删除(delete) 一条规则;

-R在链内某个位置替换(replace) 一条规则;

--source或-src或-s来指定源地址;

--destination或-dst或-s来指定目的地址;

--in-interface或-I指定网络入口;

--out-interface或-o指定网络出口(从NAT的原理可以看出,对于PREROUTING链,我们只能用-i指定进来的网络接口;而对于POSTROUTING和OUTPUT我们只能用-o指定出去的网络接口。);

--protocol或-p选项来指定协议;

--source-port或-sport

--destination-port或--dport来指明端口;

MASQUERADE 做NAT欺骗;

Redirection重定向。#p#

三、设置NAT所需路由器的硬件配置和软件配置。

很多路由器都提供NAT功能,这里选择比较常用的Cisco路由器。首先设置NAT功能的路由器的IOS应支持NAT功能。至少要有一个内部(Inside)接口,配置内网地址(192.168.2.2),一个外部(Outside)接口,配置外网地址(211.84.20.1)。

NAT的设置方法:

1.静态地址转换基本配置步骤。

(1)在内部本地地址与外部合法地址之间建立静态地址转换。在全局设置状态下输入:

ip nat inside source static 192.168.2.2 211.84.20.1

如果加上端口转发则为:

ip nat inside source static tcp 192.168.2.1 8080 211.84.20.1 80 extendable

(2)指定连接网络的内部接口上配置:

ip nat inside

(3)指定连接外部网络的外部接口上配置:

ip nat outside

注:可以根据实际需要定义多个内部接口及多个外部接口。

2.动态地址转换基本配置步骤。

(1)如果有多个IP地址,可以在全局设置模式下,定义内部合法地址池,如果只有一个,就不用定义了(建议不要定义地址池,这不会带来什么好处)。

其格式为:ip nat pool 地址池名称 起始IP地址 终止IP地址 子网掩码。例如:

ip nat pool outnet 211.84.20.1 211.84.20.7 netmask 255.255.255.248

其中地址池名称可以任意设定。

(2)在全局设置模式下,定义access-list(通常是标准的,也可以是扩展的或是命名的)规则以判断哪些地址需要进行动态地址转换。

其格式为:Access-list 标号 permit 源地址 通配符

例如:

access-list 1 permit 192.168.2.0 0.0.0.255

其中标号为1-99之间的整数。

(3)在全局设置模式下,将由access-list指定的内部本地地址与指定的合法地址池进行地址转换。

其格式为:ip nat inside source list 访问列表标号 pool内部合法地址池名字。

例如:

ip nat inside source list 1 pool outnet overload

其中overload是指一对多做地址转换,建议加上。

(4)指定与内部网络相连的内部接口上配置。

其格式为:ip nat inside

(5)指定与外部网络相连的外部接口上配置。

其格式为:ip nat outside

NAT规则的查看:

show ip nat statistcs

show ip nat translations

【编辑推荐】

  1. 不留一个死角做好企业NAT配置验证工作
  2. 单口NAT配置实验
责任编辑:许凤丽 来源: IT专家网
相关推荐

2009-02-10 09:47:00

应用程序访问权限

2013-09-09 15:05:12

iOS应用内置付费IAP完全攻略

2009-12-14 14:32:38

动态路由配置

2014-12-19 12:57:57

APP推广运营

2020-12-28 10:50:09

Linux环境变量命令

2020-11-23 15:21:12

Linux环境变量

2011-03-28 10:12:44

FreeBSDnagios

2010-07-12 09:42:06

FreeBSD 7.0nagios安装

2010-11-18 23:24:42

云迁移

2010-07-22 09:50:26

交换机telnet登录

2013-04-15 10:48:16

Xcode ARC详解iOS ARC使用

2013-06-08 11:13:00

Android开发XML解析

2024-05-07 09:01:21

Queue 模块Python线程安全队列

2010-04-23 14:04:23

Oracle日期操作

2023-11-06 08:14:51

Go语言Context

2010-04-22 12:07:36

lvs负载均衡

2011-05-17 10:19:40

EMC Celerra

2016-08-28 14:44:42

算法TSP生物智能

2014-03-19 17:22:33

2009-10-19 15:20:01

家庭综合布线
点赞
收藏

51CTO技术栈公众号