NAT安全

2024-10-05

NAT安全(共7篇)

NAT安全 篇1

摘要:最早NAT是用来解决互联网IP耗尽问题的, 随着网络技术的发展、安全需求的提升, NAT逐渐应用到防火墙技术里, 把个别IP地址隐藏起来不被外部发现, 使外部无法直接访问内部网络设备, 从而成为了隔离内外网络、保障网络安全的一种手段。本文基于Linux平台环境详细阐述了NAT服务的技术原理, 通过应用实例描述了NAT配置、管理过程, 分析了存在的安全问题。

关键词:NAT,网络地址转换,NAT安全,静态转换,动态转换

1 引言

目前IP地址正逐渐耗尽, 要想在ISP处申请一个新的IP地址已不是一件很容易的事了。解决这一问题的方法之一就是使用NAT (Network Address Translator, 网络地址转换) 服务。

网络地址转换服务用于将一个地址段映射到另一个地址段, 即在内部网络中使用内部地址 (私有IP地址) , 通过NAT把内部地址转换成合法的IP地址在Internet使用。当一个私有网络要通过在Internet注册的公有IP连接到外部时, 位于内部网络和外部网络中的NAT路由器就负责在发送数据包之前把内部IP转换成外部合法IP地址, 使多重的Intranet子网可以使用相同的IP访问Intemet, 从而减少注册IP地址的使用。此外, NAT还可以防止外部主机攻击内部主机或服务器。

2 NAT的工作原理

NAT是将一个地址段映射到另一个地址段的标准方法。它是一个根据RFC 1631开发的IETF标准, 允许一个IP地址段以一个公有IP地址出现在Internet上。NAT可以将内部网络中的所有节点的私有地址映射为合法的IP地址。所谓私有地址 (Private Address) 是专门为组织机构内部使用而划定的, 属于非注册地址。使用私有IP地址是无法直接连接到Intemet的, 但是能够用在局域网内部地址上, 用于扩展网络。因此, 一般公司内部网络都使用私有地址, 而所有的内部网络连接到Internet时, 都使用NAT。IP地址中有以下几段可以作为私有地址使用。如表1所示。

NAT按照所采用的地址转换技术可以分为三类 , 即静态NAT, 动态NAT和端口NAT。因此动态NAT端口NAT则是把内部地址映射到外部网络的一个IP地址的不同端口上。

NAT服务器存在于内部和外部网络接口处, 只有当内外部网络之间进行数据传送时, 才进行地址转换。如果地址转换必须依赖手工建立的内外部地址映射表来运行, 则称为静态网络地址转换, 这样的NAT服务器称为静态NAT。静态NAT的设置最为简单, 内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址。如果NAT映射表是由NAT服务器动态建立的, 对网络管理员和用户是透明的, 则称为动态网络地址转换, 采用这种方式的NAT服务器被称为动态NAT。动态NAT是在外部网络中定义了一系列的合法地址, 采用动态分配的方法映射到内部网络。这一系列外部网络的合法地址放在地址池中, 也常被称为NAT池。此外, 还有一种服务与动态NAT类似, 但它不仅改变经过这个NAT设备的IP数据报的IP地址, 还会改变IP数据报的TCP/UDP端口, 这一服务被称为网络地址端口转换。采用这种方式的NAT服务器被称为端口NAT。根据不同的需要, 各种NAT方案有利有弊。

在NAT服务器上都维护一张状态表, 成为NAT表或NAT映射表。该表记录每个数据包在NAT服务器上被转换的情况。

2.1 静态地址转换

静态地址转换过程如下:

在NAT服务器上建立静态NAT映射表。

静态NAT表的格式如下:

ip nat inside source static内部本地地址内部全局地址

例如, NAT服务器上的静态NAT表如表2所示。

当内部主机 (IP地址为192.168.10.122) 需要建立条到Intemet的会话连接时, 首先将请求发送到NAT服务器上。NAT服务器接收到请求后, 会根据接收到的请求数据包检查NAT表。

如果已为该地址配置了静态地址转换, NAT服务器就使用相对应的内部公有IP地址, 并转发数据包, 否则NAT服务器不对地址进行转换, 直接将数据包丢弃。NAT服务器使 用202.98.133.45替换内部 本地IP (192.168.10.122) 的过程, 如图1所示。

Intemet上的主机接收到数据包后进行应答 (这时主机接收到的是202.98.133.45的请求) 。

当NAT服务器接收到来自Intemet上的主机返回的数据包后, 检查静态NAT表。如果NAT映射表存在匹配的映射项, 则使用内部私有IP替换数据包的目的IP地址, 并将数据包转发给内部主机。如果不存在匹配映射项则将数据包丢弃。

2.2 动态地址转换

动态地址转换同样也是讲内部本地地址与内部全局地址进行一一转换, 但是, 动态的转换是从内部全局地址池中选择一个未使用的地址, 与内部本地地址进行转。

动态地址转换过程如下:

建立一个内部全局地址池。格式如下:

ip nat pool地址池名称起始地址结束地址掩码

例如, 建立地址池dynamic-pool如下:

ip nat pool dynamic-pool 202.98.133.45

202.98.133.47 255.255.255.0

表明该地 址池的内 部全局地 址范围是202.98.133.45~202.98.133.47。

当内部主机 (IP地址为192.168.10.122) 需要建立一条到Internet的会话连接时, 首先将请求发送到NAT服务器上。NAT服务器接收到请求后, 根据接收到的请求数据包检查动态NAT表。

如果还没有为该内部主机建立地址转换映射项, NAT服务器会决定对该地址进行转换 (从地址池中选定一个尚未使用的内部全局地址, 建立映射项, 并记录会话状态) 。例如, 如图2所示的动态NAT表中, 只有地址池中的202.98.133.46这个本地全局地址尚未使用, 则建立该映射项。

如果已经存在该映射项, 则NAT服务器使用该记录进行地址转换, 并记录会话状态。然后NAT服务器利用转换后的地址发送数据包到Internet主机上。

Internet主机接收到信息后, 进行应替, 将应答信息刚传给NAT服务器。

当NAT服务器接收来自Internet返回的应答信息后, 检查NAT映射表。如果NAT映射表存在匹配的映射项, 则使用内部公有IP替换数据包的目的IP地址, 并将数据包转发给内部主机。如果不存在匹配映射项则将数据包丢弃。

2.3 端口地址转换

端口地址转换本质上也是一种动态地址转换技术, 但它允许多个内部本地地址公用一个内部全局地址。对于仅有少量内部全局地址, 却需要经常有多个用户连接外部网络的单位使用。

基本步骤 如下 : 当内部主 机 (IP地址为192.168.10.122, 使用端口4449) 需要与Internet的某主机建立连接时, 首先将请求发送到端口NAT服务器上。端口NAT服务器接收到请求后.会根据接收到的请求数据包检查端口NAT映射表。

如果还没有为该内部主机建立地址转换映射项, 端口NAT服务器就会为这个传输创建一个Session, 并且给这个Session分配一个端口3200, 然后改变这个数据包的源端口为3200。所以原来的192.168.10.122:4449数据包经过转换后变为了202.98.133.45:3200。

类似的, 当内部主机192.168.10.144, 使用端口80与Internet的某主机建立连接时, 端口NAT服务器就会为这个传输创建一个Session, 并且给这个Session分配一个端口3300, 然后改变这个数据包的源端口为3300。所以原来的192.168.10.144:80数据包经过转换后变为了202.98.133.45:3300。如图3所示。

Internet主机接收到信息后进行应答, 并将应答信息回传给端口NAT服务器。

当端口NAT服务器接收到应答信息后, 检查端口NAT映射表。如果端口NAT表存在匹配的映射项, 则使用内部全局IP替换数据包的目的IP地址, 并将数据包转发给内部主机。如果不存在匹配映射项, 就将数据包丢弃。

从本质上说, 网络地址端口转换不是简单的IP地址之间的映射, 而是网络套接字映射。网络套接字由IP地址和端口号组成, 当多个不同的内部本地地址映射到同一个内部全局地址时, 可以使用不同的端口号来区分它们。

3 NAT配置实例

在Linux和Windows环境下配置NAT的实例模型[3, 4]如图4所示。

在该模型中, 相关设备如下:

在Red Hat Enterprise Linux 5中实现NAT服务器功能。具 有两个网 卡 , 第一个网 卡IP地址为192.168.57.129/24, 第二个网 卡IP地址为211.32.26.1/24。

一台Windows客户端, 其IP地址为192.168.57.2, 网关设置为与之相连的NAT服务器第一个网卡地址192.168.57.129。

一台Linux下的PC充当Web Server, IP地址为211.32.26.120/24, 网关设置为与之相连的NAT服务器第二个网卡地址211.32.26.1。

3.1 配置 NAT 服务器

3.1.1 设置网络环境

网卡的配 置文件保 存在 /etc/sysconfig/network-scripts目录下。第一块网卡eth0对应的是ifcfg-eth0, 第二块网卡对应的是ifcfg-eth1。

网卡1的配置如下:

DEVICE=eth0

BOOTPROTO=static

HWADDR=00:0C:29:FA:98:1E

ONBOOT=yes

TYPE=Ethernet

USERCTL=no

IPV6INIT=no

PEERDNS=yes

NETMASK=255.255.255.0

IPADDR=192.168.57.129

网卡2的配置如下:

DEVICE=eth0

BOOTPROTO=static

HWADDR=00:53:45:AC:55:18

ONBOOT=yes

TYPE=Ethernet

USERCTL=no

IPV6INIT=no

PEERDNS=yes

NETMASK=255.255.255.0

IPADDR=211.32.26.1

设置完毕 后 , 需要重启Linux或者运行 命令“/etc/init.c/network restart”使配置 生效。可 以使用“ifconfig|more”命令查看配置结果。

3.1.2 使用 iptable 实现 NAT

(1) 开启内核路由功能

首先需要 打开内核 的路由功 能。将文 件/proc/sys/net/ipv4/ip_forward设置为1。默认情况下, 该值为0。使用以下命令:

# echo “1” > /proc/sys/net/ipv4/ip_forward

(2) 实现IP伪装

在NAT表中的POSTROUTING链加入一条规则, 这条规则表明所有从192.168.57.0/24送出的包都会被伪装 (MASQUERADE) , 这样就能够使用iptables实现NAT命令了。执行以下命令:

# iptables ╞ t nat ╞ A POSTROUTING ╞ s192.168.57.0/24 ╞j MASQUERADE

输入以上命令后, Linux主机就充当了NAT服务器功能, 通过“iptables -t nat -L POSTROUTING”下命令可以查看nat表中POSTROUTING链规则列表。

# iptables -t nat -L POSTROUTING

Chain POSTROUTING (policy ACCEPT)

target prot opt source destination

MASQUERADE all -- 192.168.57.0/24 anywhere

3.2 配置 NAT 客户端

3.2.1 Windows 中的 NAT 客户端配置

在Windows下配置NAT客户端的方法比较简单, 以下为具体操作步骤。

在桌面上的“网上邻居”图标上右击, 然后在弹出的快捷菜单中选择“属性”命令, 打开“网络连接”窗口。

在“本地连接”图标上右击, 然后在弹出的快捷菜单中选择“属性”命令, 则系统会打开“本地连接属性”对话框, 如图5所示。

选中“Internet协议 (TCP/IP) ”复选框, 然后单击“属性”按钮, 系统会打开“Intemet协议 (TCP/IP) 属性”对话框, 如图6所示。

在“默认网关”中输入NAT服务器eth0的IP地址, 然后单击“确定”按钮即可完成Windows下的NAT客户端的配置。若Linux服务器上设置了DNS, 需要设置DNS服务器的地址。

3.2.2 Linux 中的 NAT 客户端配置

在Linux的Web Server中, 只需要将网关设置为NAT服务器的第二块网卡地址即可, 如图7所示。

完成以上设置后, 在windows中点击浏览器访问Linux上的Web Server, 在地址栏 输入http://211.32.26.120可以访问位于Linux主机上的Web站点。

在Linxu主机上, 查看Web server的http访问日志可以看到一条记录:

211.32.26.1 - - [25/Sep/2007:00:03:06 +0800] "GET /HTTP/1.1" 403 3985 "-" "Mozilla/5.0 (X11; U; Linux i686;zh-CN; rv:1.8.0.9) Gecko/20070118 Red Hat/1.5.0.9-10.el5Firefox/1.5.0.9 pango-text"

对于Linux主机而言 , 来自192.168.57.2的Windows主机的访问请求, 都被认为是从NAT服务器上211.32.26.1发出的。

4 NAT的安全问题分析

防火墙是基于网络层的安全系统, 它在网络之间执行访问控制策略。防火墙对流经它的通信数据进行分析, 并能够过滤掉一些有攻击特征的数据。防火墙可以关闭不使用的端口, 禁止特定端口的通信。还可以禁止来自特殊站点的访问, 从而防止来自不明入侵者的所有通信。一般的防火墙都具有NAT功能, 或者与NAT一起配合使用。例如可以使用iptables实现NAT的功能, 将NAT应用到防火墙种, 可以把个别IP地址隐藏起来不被外界发现, 使外界无法直接访问内部网络设备。

经常有人会把NAT和代理服务器相混淆, 然而两者是有很大区别的。NAT设备对源机器和目标机器都是透明的 (用户看不到) , 地址转换只在网络边界进行。而代理服务器是不透明的, 源机器知道要通过代理服务器发出访问请求, 并且, 需要在源机器上将目标机器设置为代理服务器, 将数据直接发送到代理服务器, 由代理服务器将数据转发。代理服务器工作在OSI模型的第四层 (传输层) , NAT则是工作在第三层 (网络层) 。由于高层的协议比较复杂, 通常来说, 代理服务器比NAT要慢一些。

但是NAT占用路由器的CPU资源, 加上NAT隐藏了IP地址, 跟踪起来比较困难, 不利于管理员对内部用户对外部访问的跟踪管理和审计工作。所有NAT技术只适用于内部用户数量较少的应用, 如果访问外部网络的用户数量大, 而且管理员对内部用户有访问策略设置和访问情况跟踪的应用, 还是使用代理服务器较好一些。

如果单纯使用NAT技术, 还会遇到几个方面的安全问题。

(1) NAT只对地址进行转换而不进行其他操作, 因此, 在建立了与外部网络的连接时, NAT不会阻止任何从外部返回的恶意破坏信息。

(2) 虽然NAT隐藏了端到端的IP地址, 但并不隐藏主机信息。

(3) Internet上的恶意攻击通常针对机器的“公用端口”, 如HTTP的80端口、FTP的21端口和POP的110端口等。虽然NAT可以屏蔽不向外部网络开放的端口, 但针对面向公用端口的攻击, 它是无能为力的。

(4) 许多NAT设备都不记录从外部网络到内部网络的连接, 这会使用户受到来自外部网络的攻击, 但由于没有记录可以追查, 用户根本无法发觉自己受到过什么攻击。

5 结束语

尽管应用NAT技术, 具有解决IP地址不足的问题、简化配置和网络设计、使得网络设计更加灵活等优点, 同时NAT隐藏了内部IP地址, 使其具有一定的安全性, 但从上面的分析可以看出, NAT作为单一的网络安全防范措施是不够全面的, 需要与其他安全手段配合使用。此外, 由于路由器需对每个数据包进行检查, 并对需要地址转换的数据包进行操作, 会占用大量的路由器CPU时间, 所以NAT技术只适用于需要转换地址的机器数量不太多的情况。

参考文献

[1]鲁顶柱, 贺桂英, 周东.NAT与防火墙穿透技术研究[J].广东广播电视大学学报, 2008, 17 (3) :75-79.

[2]陈晓苏, 吴悠.路由器中网络地址转换的一种实现方法[J].计算机工程与应用, 2004, 40 (1) :157-159.

[3]李小玲, 周金治.网络地址转换技术在计算机网络上的应用[J].广东科技大学学报, 2004, 23 (2) :68-71.

[4]孔欣, 李清平, 谢鹏.NAT技术在无线局域网中的应用[J].微型电脑应用.2010, 26 (7) :53-56.

[5]白伟华, 津李吉桂.NAT技术及其穿越方案研究[J].计算机科学.2005, 32 (8) :44-46.

NAT安全 篇2

我校的校园网内部署了6台服务器。起初没有经过科学规划, 只是简单地将服务器直接连接到网关, 造成服务器频繁遭受黑客、病毒、木马的攻击。为此, 我利用N A T技术重新规划服务器的部署。现将规划思路和设计方法介绍给大家。

一、N A T技术

NAT (Network Address Translation) 是一个I E T F标准, 它允许一个整体机构以一个公用I P地址出现在I n t e r n e t上。顾名思义, 它是一种把内部私有网络I P地址翻译成合法网络I P地址的技术。

N A T有三种类型:静态N A T、动态地址N A T、网络地址端口转换N A P T。其中, 静态N A T的设置最为简单, 也最容易实现, 内部网络中的每台主机都被永久地映射成外部网络中的某个合法地址。动态地址N A T则是在外部网络中定义了一系列的合法地址, 采用动态分配的方法映射到内部网络。N A P T则是把内部地址映射到外部网络同一个I P地址的不同端口上。我校所用的技术即为N A P T。

N A P T普遍应用于接入设备中, 它可以将中小型网络隐藏在一个合法的I P地址后面。其工作原理是, 将内部I P地址映射到外部网络中的一个单独的I P地址上, 同时加上一个由N A T设备选定的T C P端口号 (如表1) 这样, 如果要访问192.168.1.3这台服务器的Web服务, 只有通过202.108.9.X:9080才可以访问, 从而有效地将服务器保护起来。

二、校园网网络结构分析

高效、规范的网络部署应该建立在科学的网络结构分析基础之上。笔者所管理的校园网通过网关接入教育城域网。校园网中部署了W e b服务器、资源服务器、办公自动化 (O A) 服务器、F T P服务器、VOD视频点播服务器。校内所有用户通过网关共享访问I n t e r n e t。所有服务器均采用城域网分配的I P地址, 通过网关直接接入城域网 (如图1) 。网关不支持N A P T, 只支持简单静态N A T。网络部署的第一种方案是采购支持N A T防火墙网络设备, 替换现有网关。第二种方案是用普通P C构建N A T转换平台。由于硬件防火墙的设备动辄几万到几十万, 对于一所普通公办学校来说, 是一笔不小的开支, 同时原有的网关仍有其用武之地, 于是我们选择了第二种方案。

三、构建N A T转换平台

目前构建N A T转换平台的软件大致可分为W i nd o w s、L i n u x以及专业路由器软件三大阵营。W i ndows平台下有WinRoute、Microsoft ISA Server。Linux平台下有CoyoteLinux、SmoothWall。专业路由器软件有M i k r o t k R o u t e r O S、IPcop。下面, 以W i n d o w s+W i n R o u t e 6.0为例, (其他软件的构建方法类似) , 介绍其构建过程。

1. 前期准备

准备一台普通P C, 其配置很简单:P e n t i u mⅢ以上的CPU;256 MB以上的内存;20G以上硬盘 (主要用于存放日志文件) ;两块1 0 0 M网卡;W i n d o w s2003 Server操作系统。

2. 软件介绍

W i n R o u t e 6.0通过N A T和代理服务器实现网络共享。该软件除了具有N A T功能外, 还具有超强的病毒防护功能。W i n R o u t e 6.0的安装比较简单, 安装过程中遇到问题的读者可以参考相关的安装资料。

3. 制定转换方案

在开始进行N A T转换配置前, 要仔细考虑和规划转换方案。与原先的网络结构相比, 规划方案 (如图2) 增加了一台装有W i n R o u t e的普通P C作为N A T转换平台, 并调整服务器群的I P地址 (具体映射关系如表2所示) 。

4. N A T转换配置

登录W i n R o u t e管理控制台, 并进入访问策略设置页面 (如图3) 。依据表2建立相应的访问策略即可。

NAT技术的相关应用 篇3

NAT (Network Address Translation) 网络地址转换。其使用环境通常是两个不同网段的网络, 它们之间需要实现访问, 那么就可以通过NAT进行地址转换实现访问。例如现在普遍使用最多的情况就是内网中有多台主机, 但只能通过一个合法外网IP地址访问外网资源, 使用NAT技术就可以解决。当然如果外网要访问内网中的资源, 也可以通过相应的NAT技术来实现。

NAT的作用主要就是:一就是安全方面, 通过NAT转换后不让外网用户了解掌握到内部网络的结构、地址等情况, 起到防范作用。二就是公网IP地址资源方面, 当内网主机较多时, 如果一台主机一个公网IP就显得浪费, 通过NAT技术可实现多台内网主机共用一个外网IP地址就可以访问INTERNET, 以缓解当前公网IP地址短缺的情况。

2 实现NAT的方法

在路由中实现NAT常见有:静态NAT、动态地址NAT和复用动态 (端口多路复用) 地址转换三种技术方法, 具体要分析网络与使用环境而选择。

2.1 静态NAT

静态NAT是一对一的IP地址转换方式。就是将内网中某一台主机的IP地址转换成外网中某一个固定的IP地址。使用这种方法当多台内网主机要访问外网时, 就要一对一做转换, 需要内网IP地址与外网IP数量相同才能实现。

如图1所示, 静态NAT就是将内网中具体IP地址为192.168.0.1转换成外网中IP地址202.16.100.11, 它们之间是一对一的转换关系。例如, 内网中IP地址为192.168.0.1主机中建立了Web服务器、E-mail服务器、FTP服务器等, 如果这些服务也想对外网用户进行开放, 则就可以通过静态NAT实现, 当外网用户访问202.16.100.11地址时等同于直接访问内网中的主机。

以下就以神州数码DCR-2626按图1中参数列出关键配置, 实现NAT的静态转换。

如果内网是一台WEB服务器, 要实现外网也可以访问内网中的网站, 就需要将上述的一行配置内容换成下列一行就可。

这样配置生效后, 外网用户访问HTTP://202.16.100.11就可以使用内网192.168.0.1主机WEB服务器的资源了。如果内网中还存在多个WEB网站, 但只有一个合法的外网IP地址, 则可以通过改变端口号来处理, 如下配置:

通过上行配置, 可以实现内部网络中其他WEB服务NAT转换。外网用户HTTP://202.16.100.11:8080就可以使用内网192.168.0.2主机WEB服务器的资源了。

2.2 动态NAT

动态NAT是多对多的转换方式, 与静态NAT不同就是具有多个外网IP地址可提供给内网转换。它先将一些可供转换的外网IP组织起来, 也就是建立地址池, 然后当某台内网主机需要访问外网时就从地址池中选择一个还没有被占用的外网IP进行转换, 当内网主机访问完成后就归还该外网IP, 接下来如果有其他内网主机要使用时就可以再次使用此外网IP。这种方法允许合法IP地址数少于主机数。

如图2所示, 当IP地址为192.168.0.22的内网主机要访问外网时, 先从地址池中选择还没有被使用的外网IP地址202.16.100.11, 再通过NAT实现转换。从上述原理中, 其实动态NAT也可以理解成是内网IP地址与合法外网IP地址进行一对一的转换, 但是动态NAT是从地址池中动态地选择一个未使用的地址对内网IP地址进行转换。该方法也可以节省一定的合法IP地址, 所以该方法常常被使用。

以下就以神州数码DCR-2626为例, 以图2的连接实现动态NAT, 列出关键配置。

2.3 复用动态NAT (PNAT)

复用动态NAT又称端口多路复用技术, 也称为PNAT, 可以理解成是一种多对一的转换方式。PNAT技术是通过改变外出数据包的源端口并进行端口转换, 它可将多个内网IP地址映射为一个外网IP地址, 使用不同的端口来区分所对应的各个不同的内网IP地址。这种方法可以实现全部内网主机通过共享一个外网IP地址就可以实现外网资源访问, 大大节省外网IP地址资源, 但此方法有可能引起信道一定拥塞。

如图3所示, 内网192.168.0.0/24网段中, 任何主机如果要访问外网资源, PNAT可以实现都将这些内网IP都转换成202.16.100.11外网IP访问外网资源。

以下就以神州数码DCR-2626为例, 按图3的拓扑, 列出关键配置, 实现PNAT。

3 验证NAT转换

配置好相对应的NAT后, 可以通过下列方法对NAT进行验证:

3.1 查看协议状态

显示出转换后的IP信息, 也就是显示当前的NAT转换统计的情况。不过要注意, 在查看之前请先让内网用户与外网进行通信, 以保证有数据通过而进行转换, 才能正确验证出相关NAT转换有没有正常工作。

3.2 查看当前存在的转换

如果能显示出内网IP与外网IP的转换, 就证明NAT转换成功。

3.3 调试NAT

debug ip nat

通过信息可以看到转换的包信息, 如果可以显示出内网与外网数据包的转换情况, 则证实NAT工作正常。

摘要:分析NAT技术中静态NAT、动态地址NAT和复用动态地址转换三种技术基本知识。利用实际例子分析三种NAT的使用, 并给出具体操作方法。给出验证NAT是否成功的方法。

关键词:NAT,静态NAT,动态NAT,复用动态NAT,验证NAT

参考文献

[1]朱红星.计算机网络管理员 (技师) [M].广州:广东科技出版社, 2011.

[2]蒲卫, 吴豪.网络组建与管理[M].北京:清华大学出版社, 2011.

NAT技术的研究与应用 篇4

随着Internet的迅猛发展,连接到Internet的主机数量呈几何趋势增长。由于最初设计Internet的时候并没有考虑到会发展到如此的规模,所以作为网络中主机唯一身份的IP(Internet Protocol)地址短缺已成为目前Internet发展面临的最大问题之一,为了解决IP地址短缺的问题,人们提出了很多的解决方案,在众多的解决方案中,网络地址转换NAT技术提供了一种完全将私有网和公共网隔离的方法,从而得到了广泛的应用。

NAT英文全称是“Network Address Translation”,中文意思是“网络地址转换”,它是一个IETF(Internet Engineering Task Force,Internet工程任务组)标准,允许一个整体机构以一个公用IP地址出现在Internet上。它是一种把内部私有网络地址进行转换从而超越地址限制,合理地安排融合网络中的公有IP地址和私有IP地址的混合使用[1]。

2 NAT基本原理与类型

2.1 NAT技术的基本原理

NAT技术能帮助解决令人头痛的IP地址紧缺的问题,而且能使得内外网络隔离,提供一定的网络安全保障。它解决问题的办法是:在内部网络中使用内部地址,通过NAT把内部地址翻译成合法的IP地址在Internet上使用,其具体的做法是把IP包内的地址域用合法的IP地址来替换[2]。NAT功能通常被集成到路由器、防火墙、ISDN路由器或者单独的NAT设备中。NAT设备维护一个状态表,用来把非法的IP地址映射到合法的IP地址上去。每个包在NAT设备中都被翻译成正确的IP地址,发往下一级,这意味着给处理器带来了一定的负担。但对于一般的网络来说,这种负担是微不足道的[3]。

2.2 NAT技术的基本类型

NAT有三种类型:静态NAT(Static NAT)、动态地址NAT(Pooled NAT)、网络地址端口转换NAPT(Port-Level NAT)。其中静态NAT设置起来最为简单和最容易实现的一种,内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址。而动态地址NAT则是在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络。NAPT则是把内部地址映射到外部网络的一个IP地址的不同端口上。根据不同的需要,三种NAT方案各利弊。

动态地址NAT只是转换IP地址,它为每一个内部的IP地址分配一个临时的外部IP地址,主要应用于拨号,对于频繁的远程联接也可以采用动态NAT。当远程用户联接上之后,动态地址NAT就会分配给他一个IP地址,用户断开时,这个IP地址就会被释放而留待以后使用。[5]

网络地址端口转换NAPT(Network Address Port Translation)是人们比较熟悉的一种转换方式。NAPT普遍应用于接入设备中,它可以将中小型的网络隐藏在一个合法的IP地址后面。[6]NAPT与动态地址NAT不同,它将内部连接映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的TCP端口号。

在Internet中使用NAPT时,所有不同的TCP和UDP信息流看起来好像来源于同一个IP地址。这个优点在小型办公室内非常实用,通过从ISP处申请的一个IP地址,将多个连接通过NAPT接入Internet。实际上,许多SOHO远程访问设备支持基于PPP的动态IP地址。这样,ISP甚至不需要支持NAPT,就可以做到多个内部IP地址共用一个外部IP地址上Internet,虽然这样会导致信道的一定拥塞,但考虑到节省的ISP上网费用和易管理的特点,用NAPT还算是比较合理的一个选择。[7]

3 典型NAT配置实例

例如某高校有两个实验楼,每一个实验楼都是一个独立的局域网,为了区分它们,分别称为A楼和B楼,A楼所采用的网络地址为192.168.*.*,B楼所用的IP地址为172.16.*.*~172.31.*.*,ISP为学校提供的IP地址为202.118.212.*/24,现有两台路由器R1和R2,它们的E0口分别连接A楼和B楼的局域网,由于工作的需要,A楼和B楼需要互相访问,并且都能够访问外网。于是,做如下的仿真实验,将它们的S0端口配置为外网IP相互连接。具体如图1所示.

网络设备和主机的网络地址如表1所示:

3.1 静态NAT地址转换

静态内部源地址转换是将一个未注册的,内部的地址(内网地址)转换为全局的唯一的外部地址(公网地址)如图1所示,路由器将把内部源地址192.168.1.2转换为全局唯一的地址202.118.212.12"具体配置如下所示:

3.2 动态NAT地址转换

动态转换是在一组内部本地地址与一个全局地址池之间建立一种映射关系,这种转换在有很多没有注册的主机想访问离线服务时非常有用,动态内部地址转换用一个预定义的地址池动态地将没注册的地址转换为注册过的地址,这种关系是一对一的,当有一外部连接请求时,从池中取出一个地址用,而一旦连接断开,取出的全局地址将重新放入池中,以供其他的连接使用动态转换效率是非常高的,因为一个注册过的地址可以让多个不同的端站点使用多次,相反前面定义的静态转换,只能让一个特定的端站点使用[8],具体配置如下所示:

4 结束语

通过仿真实验可以得到以下经验:配置动态IP地址池不能使用已经使用在接口上的IP,最好选择其它同一网段的IP,配置NAT的原则是让内网可以访问外网,保护内网,所以与内网连接的端口为inside,与外网连接的端口为outside,培植访问控制类表的时候,permit的是内网的IP地址,而非外网的地址,配置静态NAT的时候,是一一映射的关系,即一个公网IP对应一个内网主机,使用此方式需要保证有足够的公网IP地址,配置PAT方式,在应用NAT语句结尾打上OVERLOAD,路由器会立刻开启过载功能,使用端口转发的方式进行内外网址互相转换。

摘要:NAT技术在很大的程度上缓解了网络地址不足的现状,提供了一种将私有网络地址接入公共网络的一种的工程方案,本文在论述NAT的基本原理和实现方法的同时,给出NAT普遍应用的一个实例。

关键词:地址转换,动态池,映射

参考文献

[1]张永平.VPN网络中IPSec穿越NAT的研究[J].计算机应用与软件.2008,(1):22-25.

[2]ARIHUTTUMEN.UDP encapsulate of IPsec packets[Z].Internet draft,draft-ietf-ipsec-udp-encaps txt.2001

[3]祝芝梅.支持NAT的VPN网关的研究与实现[D]华中科技大学,2004

[4]何永龙,林浒,雷为民.一种SIP NAT应用网关的设计与实现[J]小型微型计算机系统,2002,(8):142-148.

[5]王华伟.图书馆计算机网络的NAT解决方案[J].现代图书情报技术,2001,(5):135-138

[6]吴绍兴,刘德春,尹应鹏.路由器下NAT技术的实现[J].计算机与现代化,2004,(2):65-68

[7]任智.移动Ad Hoc网络路由算法及协议研究[D]电子科技大学,2005.

NAT安全 篇5

1 概述

网络地址转换 (NAT, Network Address Translation) 属接入广域网 (WAN) 技术, 是一种将私有 (保留) 地址转化为合法IP地址的转换技术, 被广泛应用于各种类型Internet接入方式和各种类型的网络中。当内部的计算机与外部internet进行通讯时, 具有NAT功能的设备 (如:路由器) 负责将其内部的IP地址转换为合法的IP地址进行通信。

因此, NAT性能的好坏就成为网络出口产品 (如:路由器) 的一个重要指标。特别是在网吧这类应用场景中, 对NAT性能要求高, 流处理能力不均衡的设备是无法胜任的。

Netiq Choriat是业界著名的多功能网络业务测试软件, 业界广泛应用Choriat软件进行网络设备的性能测试。Choriat测试不象Smartbits测试那样是测试UDP“包”, 而是数据“流”。对于测试网吧路由器的流处理能力, 利用Netiq Choriat可以更准确地获得其NAT性能。

2 地址转换 (NAT) 原理

借助于NAT技术, 私有 (保留) 地址的“内部”网络通过路由器发送数据包时, 私有地址被转换成合法的I P地址, 一个局域网只需使用少量IP地址 (甚至是1个) 即可实现私有地址网络内所有计算机与Internet的通信需求。

NAT将自动修改IP报文的源IP地址和目的IP地址, IP地址校验则在NAT处理过程中自动完成。有些应用程序将源IP地址嵌入到IP报文的数据部分中, 所以还需要同时对报文进行修改, 以匹配IP头中已经修改过的源IP地址。否则, 在报文数据都分别嵌入IP地址的应用程序就不能正常工作。

在这里, 引入端口地址转换PAT (Port Address Translation) 的概念, 采用PAT技术, 可以真正做到许多的局域网内的, 采用局域网内部多个拥有私有IP地址的主机复用一个或者少数的几个全局I P地址, 达到节约IP地址的目的。

下图1说明了使用PAT技术的原理。WWW服务的端口号为80, 所以两台主机都对WEB服务器发起WWW服务请求, 也就是向1 9 7.1.1.2的W E B主机的80端口发起连接请求, 而本地的端口则一般是随机的生成, 假设主机A的源端口为1500, 而主机B的源端口为1300, TCP数据报文到达路由器上时, 路由器判断配置了地址转换, 则按照一定的规则, 将主机A的TCP报文中的源地址由1 0.1.1.1改成全局地址197.1.1.1, 源端口由1500改成5000, 将主机B的TCP报文中的源地址由10.1.1.2改成全局地址197.1.1.1, 源端口由1300改成5001, (这里的1500、1300、5000、5001端口都仅仅是为说明方便而随意设置的) , 同时在路由器内建立一个对应关系的数据结构节点, 将这些对应关系记录下来。这写由内部局部I P地址的数据包经过路由器的地址转换后, 变成了全局I P地址, 传输给了WEB服务器, WEB服务器分别将应答报文发送到1 9 7.1.1.1的5 0 0 0和5001端口上, 路由器查找记录的对应关系表, 又分别将目的地址和目的端口改成1 0.1.1.1的1 5 0 0端口上, 和1 0.1.1.2的1300端口上, 这样便完成了全局地址复用目的。

由于提出地址转换技术的根本原因就是因为I P地址短缺问题, 因此, 现在P A T方式的地址转换是主要的地址转换形式。

3 NAT测试方法

对于NAT的测试, 可分为静态测试和动态测试。我们关注于设备NAT的性能, 因此这里主要介绍动态测试中的黑盒测试用例设计。

NAT宽带路由器其LAN接口连接许多设备, 将源于多个内网IP设备的TCP/UDP报文采用NAT技术根据源IP地址和源端口、目标IP目标端口生成一张NAT索引表, 对此表的操作主要是添加、查询、定期删除三种操作。

经过我们对长期网吧领域的分析研究, NAT索引表 (Entry表) 的容量;NAT索引表 (Entry表) 查询的速度;NAT索引表 (Entry表) 新建和删除的速度;设备同时处理多个流时, 每个流的时延最大值、最小值、平均值是影响路由器的转发性能的关键因素。其中NAT索引表 (Entry表) 的容量是由设备内存分配来决定的, NAT索引表 (Entry表) 查询的速度、NAT索引表 (Entry表) 新建和删除的速度、设备同时处理多个流时, 每个流的时延最大值、最小值、平均值则取决于软件架构上对Entry表的管理的设计。

在了解了NAT实现上的关键技术点后, 我们就可以有针对性的设计出相应的用例得到所需要的指标性能。比如在网吧路由器产品中, 有两个最能反映产品的性能, 一个参数是包转发能力 (throughput) , 它反映产品的数据处理能力;另一个是最大连接数, 它反映产品的带机量。

4 基于Netiq Choriat的NAT测试方法

4.1 Netiq Choriat介绍

Netiq Choriat测试软件由Console与Endpoint两个部分组成, Endpoint根据网络中位置的不同又分为E1与E2, 由Console发送测试脚本及控制信息等给E1, E1发送给E2, 控制连接、测试连接均建立在Windows API的基础上, 发送报文的源地址、路由均由系统决定。

Neti Q运行在PC上, 收到PC性能的限制, 在不同报文长度时性能不尽相同。因此在对被测设备进行测试前, 必须先在交换机上直连测试基准吞吐率A, 再插入被测设备测试吞吐率B。仅当B小于A时, 其数据才能算有效测试。

4.2 基于Netiq Choriat的NAT测试

Netiq Chariot测试则是用两台服务器, 一台接路由器W A N口, 一台接L A N口, 通过统计一个预定长度和格式的脚本文件无差错地从一台服务器传送到另一台服务器的时间来计算出路由器的Throughput。建立的连接数越多, 对路由器软件的性能要求越高, 软件写得差的, 在连接数增加时, 其Throughput会直线下降, 甚至导致无法连接;而软件写得好的路由器则很平稳, 甚至会随连接数的增加反而略有上扬。

Netiq Chorait测试前需定义好测试脚本, 系统中自带了很多的脚本, 可以模拟出各种系统、应用的数据流, 如FTP、Mail、W e b、L o t u s、I P T V、R e a l A u d i o、Active Directory、Microsoft SQL等等, 由于脚本及测试流均模仿真实的网络应用, 因此这个软件是可以说是站在用户的角度上衡量网络性能的;另外, 测试流中大部分为TCP报文, TCP的滑动窗口、重传退避机制是有效的, 也就是说, Netiq不关心网络是否丢包, 只关心应用流的实际传送速度及响应时间。Netiq Chorait性能测试是基于字节的, 测试项目是Throuput、Transaction Rate、Response Time, 某些脚本的测试中还含有Lost Data项。 (如表1)

此项测试采用E1向E2单向成功发送100Kbye数据后增加一个Timing Records来评估吞吐能力, 报文的大小为默认, 速率不限, 从实际抓包的角度看全部为大报文, 我们知道衡量一台网络设备性能的关键是小报文的转发能力 (小报文可以产生更多的报文数目) , 而此脚本对TCP应用程序的响应时间并不是太关心, 这和我们测试NAT宽带设备 (特别是针对网吧应用的产品) 初衷不符合, 网吧应用中特别是网络游戏、QQ视频、语音都以200字节以下的小报文为主, 对端到端的应用程序响应时间特别敏感, 因此不建议采用该脚本测试。 (如图2)

此项测试采用双向发送154字节长度报文的方法衡量吞吐能力, E1向E2发送一个报文、E2收到后回送一个报文, 重复50次后增加Timing Record, 并记录此Timing Record的时间, 以时间差和已知的数据量计算出吞吐率, 这种方式和网吧应用特别是游戏对应用程序响应时间敏感的特性非常符合!测试中为了更加精确和延长测试时间, 将transactions_per_record值由默认的50更改为200。在前面的测试中采用了300个Session (即pair) , 最终在300个TCP连接建立后进行数据的传输, 而后得出结果, 数据传送过程中不创建新的TCP连接 (NAT测试中的NAT Entry) 。 (如表2图3)

这项测试模拟E1为FTP客户端、E2为FTP服务器, E1不断向E2 Get文件, 在脚本中可以看到, 每一个Pair都会不断进行新建TCP连接、传送数据、关闭连接、新建TCP连接这样一个循环。实际报文捕获中发现该脚本可以产生各种大小的报文, 且很够产生大量的NAT Entry, 符合网吧应用中多Socket连接应用种类丰富的特点, 因此使用该脚本进行NAT测试, 一方面可以测试NAT设备创建NAT Entry的速度;另一方面还可以测试FTP Get的速率。由于Netiq测试依靠微机CPU、内存速度、PCI总线速度、网卡速度, 而不依赖磁盘性能, 相比我们平常用两台微机进行FTP下载, 这种方法测试强度更大。

5 结论

地址转换技术在解决I P地址短缺问题方面, 十分合适在小型办公局域网、网吧、校园网、城域网、宽带小区建设等等场合。

基于Netiq Choriat的NAT测试, 能够很直观地反映出设备的NAT性能。Netiq Choriat采用图形曲线的方式能够表达出整个测试过程中每一个流的吞吐率和响应情况, 吞吐率与响应时间其实是呈反比例关系, 因此关注流均衡性只需要看Response Time曲线, 吞吐率能力只需关注Thoughput Average值。理想情况下Response Time曲线集中呈一直线、纵坐标值越小越好, 在此前提下Thoughput Average越大越好。

摘要:随着Internet的高速发展, IP地址资源严重匮乏。在IPV6正式使用之前, NAT地址转换 (Network Address Translation) 技术便是解决IP地址短缺问题的最主要的技术手段。

关键词:网络地址转换,原理,测试方法

参考文献

[1]葛学诗.地址转换解决城域网/局域网公网IP地址短缺问题[J].内将科技, 2004 (5) .

NAT安全 篇6

1 网络地址转换技术的定义

NAT是Network Address Translation的简写, 中文意思是“网络地址转换”, 它是一个IETF (国际互联网工程任务组, 一个公开性质的大型民间国际团体) 标准, 可以将一个内部网络转换为一个公有IP地址出现在网络上。这样外界就无法直接访问内部网络设备, 从而保护内部网络的安全。同时, 它也变相的扩展了网络地址, 合理安排网络中的公有地址和私有IP地址的使用。

2 NAT技术的基本原理

NAT技术特别有效的解决IP地址紧缺的问题, 而且可以做到内部网络和外部网络的隔离, 从而保障了网络的安全。当以内部网络的私有地址向外部网络 (Internet) 发送数据包的时候, NAT通过修改IP包头将内部私有IP地址转换成合法的公有IP地址, 一次也就不需要大幅度修改内部网络的私有地址的分配, 这样就满足内网设备和外网通信的需求。由于内部IP地址被NAT替换成了公网IP地址, 设备对于外网用户来说就显得“不透明”, 可以保证设备安全性。另外内部私有地址和外部公有地址是相互对应的, 使得我们可以只使用少量的公网IP地址实现私有地址网络内所有计算机与外部网络的通信需求。NAT功能大多会被集成到路由器、防火墙、ISDN路由器或者单独的NAT设备中。NAT设备维护一个用来把非法的IP地址映射到合法的IP地址上去的状态表。

3 NAT技术的类型

NAT技术常见的三种类型:静态转换NAT (Static NAT) 、动态转换NAT (Pooled NAT) 、网络地址端口转换NAPT (PAT) 。

3.1 静态转换NAT

将每个拥有内部地址的计算机都映射成外部网络中的一个合法的IP地址, 其中的IP地址是一对一的一成不变的, 由管理员指定私有IP地址和公有IP地址的对应关系, 实现了外部网络对内部网络中特定设备的访问, 这样就可以将中小型的内部网络隐藏在一个合法的IP地址后面。

3.2 动态地址NAT

在外部网络中定义了一些合法地址, 它们是采用动态分配的方法将地址映射到内部网络, IP地址是随机的, 不是一一对应的。所有被允许授权访问外网的私有IP地址可随机转换为任何指定的公有IP地址。当然必须指定的内部地址和外部地址, 才能进行转换。动态地址NAT只是转换IP地址, 为每个内部的IP地址分配一个临时的外部IP地址。

3.3 网络地址端口NAT

可以将一个中小型的网络隐藏在一个合法的IP地址后面, 普遍应用于接入设备中。不同与动态地址NAT是它将内部地址映射到外部网络中一个加上了由NAT设备选定的TCP端口号的单独的IP地址上。这样可以达到一个公有地址对应多个私有地址的一对多的转换。内部网络的计算机可共享一个合法的外部IP地址是实现对外部网络的访问, 不同内部主机产生的流量用不同的随机端口进行标示。同时, 又可隐藏网络内部网络, 避免来自外界攻击。

4 应用NAT技术的安全策略

4.1 应用NAT技术的安全问题

应用了NAT技术, 可以将内网数据包中的地址更改成统一的对外地址信息, 外网是直接与NAT通信, 不是与专用网络的主机通信。这个对外地址背后可能连接着成百上千甚至上万拥有专用地址的主机, 这是存在缺陷的。在网络协议和应用中是需要端对端的网络, 需要数据包不加修改的从源地址发送到目的地址。在IP安全架构不能跨NAT设备使用, 因为原始IP源地址的原始包头采用了数字签名。若改变源地址的话, 数字签名就会失效。另外当需要对两个或多个专用网络进行重组合并和收购时, 因为NAT系统不能多层嵌套, 从而造成路由困扰。

4.2 应用NAT技术的安全策略

在许多网络中, NAT机制都是在防火墙上实现的。它的目的是实现防火墙提供对网络访问与地址转换的双重控制功能, 那么NAT技术在系统中我们应采用以下几个策略:

4.2.1 网络地址转换模块

网络地址转换模块是NAT技术核心部分, 只有它与网络层有关, 可对其直接进行修改。本部分可细分为包交换、数据包头替换、规则处理、连接记录与真实地址分配及传输层过滤等几大子模块组成。

4.2.2 集中访问控制模块

本模块可细分为请求认证和连接中继两个子模块。请求认证子模块主要负责和认证交换各种身份鉴别信息, 并根据合法的用户权限进行后续的连接。连接中继子模块主要是为用户建立起一条无中继的连接通道, 可以向内部服务器传送鉴别过的用户身份信息, 完成相关服务协议中所需的鉴别流程。

4.2.3 临时访问端口表

对于流入的数据包, 防火墙只让那些访问控制表许可的或者临时端口使用表 (包含内部主机使用的临时端口、协议类型和内部主机地址等信息的由网关根据接收的数据包动态生成的) 登记的数据包通过。

4.2.4 认证与访问控制系统

它包括用户鉴别和访问控制两大模块, 可以对用户的身份鉴别以及安全策略的控制。用户鉴别模块采用一次性口令认证技术实现远程和当地用户的身份鉴别, 保护和限制用户的访问。根据系统环境的不同需求采用Telnet和WEB两种实现方式。访问控制模块是基于自主型访问控制策略 (DAC) , 采用访问控制列表 (ACL) 的方式, 按照用户 (组) 、地址 (组) 、服务类型、服务时间等访问控制因素决定用户的访问授权。

4.2.5 网络安全监控系统

它负责对接受进入系统的信息进行分析和归类。对可能出现的入侵及时告警, 监控系统还会及时断开非法访问和非法用户的访问连接, 并追踪检查。

4.2.6 基于WEB的防火墙管理系统

主要负责地址转换系统各模块的系统配置和监控。采用基于WEB的管理模式, 因管理系统涉及到用户账户等敏感数据信息, 我们采用JAVA APPLET技术代替CGI技术, 在信息传递过程中采用加密等安全技术保证用户信息的安全性。

摘要:随着网络技术的迅猛发展, 为解决网络地址日益短缺, 局域网内计算机不能拥有合法的IP地址, 内部网络完全暴露在网络中等问题, 出现了一种网络地址转换 (NAT) 技术, 本文介绍了网络地址转换 (NAT) 技术的定义原理及安全策略。

浅析ACL与NAT的执行顺序 篇7

访问控制列表 (Access Control List, ACL) 技术是一种简单的静态包过滤防火墙技术, 它能够通过数据包的源地址、目的地址、源端口号、目的端口号、协议类型等一系列的匹配条件对网络中的流量进行识别并过滤, 从而达到对特定流量进行控制以保护内部网络安全的目的。

网络地址转换 (Network Address Translation, NAT) 技术最初是作为缓解IPv4地址空间紧张的一种解决方案引入的, 其主要作用就是通过将私有IP地址转换为合法公有IP地址, 使私有网络中的主机可以通过共享少量的公有IP地址访问Internet。另外, NAT技术在客观上屏蔽了企业内部网络的真实IP地址, 一定程度上保护了内部网络不受到外部网络的主动攻击。

由于网络一般既会有安全的需求, 又会有节约IP地址的需求, 因此ACL与NAT往往会被同时应用在网络中。而ACL与NAT又都要求应用在企业网络与Internet相连的网络边界上, 应用位置重叠, 这时候就必须要考虑到ACL与NAT的执行顺序关系, 从而确定ACL是对内部本地地址进行约束还是对内部全局地址进行约束。

作为当前两大主流的网络设备生产商, H3C公司的网络设备和CISCO公司的网络设备 (包括锐捷、神州数码等公司的类CISCO设备) 在对ACL与NAT的执行顺序处理上存在较大的差异, 这就要求网络管理人员必须要了解不同厂商设备的处理情况, 从而确保ACL能够在保护合法流量的同时有效的防范来自Internet的恶意流量攻击。

2 H3C路由器上的执行顺序

在进行执行顺序验证之前, 首先需要搭建一个简单的实验网络, 如图1所示。

将内部网络主机PC1和PC2的IP地址分别静态转换到内部全局地址202.207.120.20和202.207.120.30上。具体配置如下:

[H3C]nat static 192.168.1.2 202.207.120.20

[H3C]nat static 192.168.1.3 202.207.120.30

[H3C]interface Ethernet 0/1

[H3C-Ethernet0/1]nat outbound static

配置完成后, 在PC1或PC2上可以PING通PC3, 并且在路由器上使用display nat session命令可以看到内部本地地址192.168.1.2到内部全局地址202.207.120.20、内部本地地址192.168.1.3到内部全局地址202.207.120.30之间的映射关系。

2.1 出站ACL与NAT的执行顺序

在路由器上配置基本ACL并进行应用, 具体配置如下:

[H3C]firewall enable

[H3C]acl number 2000

[H3C-acl-basic-2000]rule deny source 192.168.1.2 0

[H3C-acl-basic-2000]rule permit

[H3C-acl-basic-2000]quit

[H3C]interface Ethernet 0/1

[H3C-Ethernet0/1]firewall packet-filter 2000outbound

从上面的配置可以看出, ACL 2000中的规则rule 0的定义是拒绝源IP地址为内部本地地址192.168.1.2的数据流量, 该ACL被应用在了路由器的Ethernet 0/1接口的outbound方向上。

配置完成后, 在PC1上使用PING命令测试到达PC3的连通性, 会发现无法连通。在路由器上执行命令display acl2000, 显示结果如下:

[H3C]display acl 2000

Basic ACL 2000, named-none-, 2 rules,

ACL's step is 5

rule 0 deny source 192.168.1.2 0 (4 times matched)

rule 5 permit

从显示的结果可以看出, PC1发出的流量命中了规则rule 0, 因而被拒绝。因此我们通过推断可知, 在H3C路由器某个接口上同时存在出站ACL和NAT时, 出站流量应该是先去匹配出站ACL, 然后再进行地址的转换。

2.2 入站ACL与NAT的执行顺序

首先将ACL 2000从路由器上删除掉, 然后配置高级ACL并进行应用, 具体配置如下:

[H3C]acl number 3000

[H3C-acl-adv-3000]rule deny ip destination192.168.1.2 0

[H3C-acl-adv-3000]rule permit ip

[H3C-acl-adv-3000]quit

[H3C]interface Ethernet 0/1

[H3C-Ethernet0/1]undo firewall packet-filter 2000outbound

[H3C-Ethernet0/1]firewall packet-filter 3000inbound

从上面的配置可以看出, ACL 3000中的规则rule 0的定义是拒绝目的IP地址为内部本地地址192.168.1.2的数据流量, 该ACL被应用在了路由器的Ethernet 0/1接口的inbound方向上。

配置完成后, 在PC3上使用命令“ping 202.207.120.20”测试到达PC1的连通性, 会发现无法连通。在路由器上执行命令display acl 3000, 显示结果如下:

[H3C]display acl 3000

Advanced ACL 3000, named-none-, 2 rules,

ACL's step is 5

rule 0 deny ip destination 192.168.1.2 0 (4 times matched)

rule 5 permit ip

从显示的结果可以看出, PC3发出的流量命中了规则rule 0, 因而被拒绝。因此我们通过推断可知, 在H3C路由器某个接口上同时存在入站ACL和NAT时, 入站流量应该是先进行地址的转换, 然后去匹配入站ACL。

3 CISCO路由器上的执行顺序

依然使用图1所示的实验网络, 并进行NAT的配置。

3.1 出站ACL与NAT的执行顺序

在路由器上配置与第2.1节类似的标准ACL, 具体配置如下:

Router (config) #ip access-list standard 1

Router (config-std-nacl) #deny host 192.168.1.2

Router (config-std-nacl) #permit any

Router (config-std-nacl) #exit

Router (config) #interface Fa0/1

Router (config-if) #ip access-group 1 out

配置完成后, 在PC1上使用PING命令测试到达PC3的连通性, 会发现能够连通。而如果将上面标准ACL的第一条规则修改为deny host 202.207.120.20, 即将约束条件从内部本地地址修改为内部全局地址, 再次进行测试, 则PC1将无法连通PC3。

在路由器上执行命令show access-lists 1, 显示结果如下:

Router#show access-lists 1Standard IP access list 1

deny host 202.207.120.20 (4 match (es) )

permit any

从显示的结果可以看出, PC1发出测流量命中了第一条规则, 而该规则是对内部全局地址进行的约束。可见在CISCO路由器某个接口上同时存在出站ACL和NAT时, 出站流量应该是先进行地址的转换, 然后再去匹配出站ACL。

3.2 入站ACL与NAT的执行顺序

首先将access-list 1删除掉, 然后配置与第2.2节类似的扩展ACL, 具体配置如下:

Router (config) #ip access-list extended 100

Router (config-ext-nacl) #deny ip any host192.168.1.2

Router (config-ext-nacl) #permit ip any any

Router (config-ext-nacl) #exit

Router (config) #interface Fa0/1

Router (config-if) #no ip access-group 1 out

Router (config-if) #ip access-group 100 in

配置完成后, 在PC3上使用命令“ping 202.207.120.20”测试到达PC1的连通性, 会发现能够连通。而如果将上面标准ACL的第一条规则修改为deny ip any host202.207.120.20, 即将约束条件从内部本地地址修改为内部全局地址, 再次进行测试, 则PC3将无法连通PC1。

在路由器上执行命令show access-lists 100, 显示结果如下:

Router#show access-lists 100Extended IP access list 100

deny ip any host 202.207.120.20 (4 match (es) )

permit ip any any

从显示的结果可以看出, PC3发出测流量命中了第一条规则, 而该规则是对内部全局地址进行的约束。可见在CISCO路由器某个接口上同时存在入站ACL和NAT时, 入站流量应该是先匹配入站ACL, 然后再进行地址的转换。

4 结束语

通过具体的实验验证可知, H3C设备和CISCO设备在对ACL与NAT的执行顺序处理上完全相反。由于在实际的网络中可能存在来自不同厂商的设备, 因此在进行具体的ACL策略应用前一定要了解具体设备对ACL与NAT的执行顺序, 以确保ACL的有效性。

摘要:ACL和NAT作为常用的两种网络技术, 经常会被同时应用在网络中的同一个位置, 这时就必须要考虑到两者的执行顺序。执行顺序上的差异将直接影响到ACL的配置和应用的有效性。通过对主流的两大设备厂商的设备进行实验测试, 了解不同厂商对ACL和NAT执行顺序处理上的差异, 从而确保网络管理员能够对于不同厂商设备给出正确的ACL约束规则, 保护网络的安全。

关键词:访问控制列表,网络地址转换,内部本地地址,内部全局地址,规则

参考文献

[1]杭州华三通信技术有限公司.路由与交换技术第1卷 (下册) [M].北京:清华大学出版社, 2011.

[2]Cisco Systems公司.思科网络技术学院教程[M].北京:人民邮电出版社, 2010.

上一篇:奶牛蹄病的预防和治疗下一篇:差压控制