配色: 字号:
网络基本功(十九):细说NAT原理与配置
2014-12-31 | 阅:  转:  |  分享 
  
2014/12/31EMCCommunityNetwork-ECN:网络基本功系列:细说网络那些事儿(12月29日更新)

https://community.emc.com/message/856307#8563071/6

网络基本功(十九):细说NAT原理与配置

转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese



介绍

NAT技术让少数公有IP地址被使用私有地址的大量主机所共享。这一机制允许远多于IP地址空间所支持的主机共

享网络。同时,由于NAT屏蔽了内部网络,也为局域网内的机器提供了安全保障。

NAT的基本实施过程包括使用一个预留给本地IP网络的私有地址成立组织的内部网络,同时分配给组织一个或多

个公网IP地址,并在本地网络与公网之间安装一个或多个具有NAT功能的路由器。NAT路由器实现的功能包括

将数据报中私网地址转换成公网地址,反向亦然。当有报文通过时,网络地址转换其不仅检查报文信息,还将报

文头中的IP地址和端口信息进行修改,以使处于NAT之后的机器共享少数公网IP地址。

更多信息

何时使用NAT?

因为NAT能够减少在网络环境中所需的公共IP地址需求,因此当两家公司重复内部地址合并时,这一技术是很有

帮助的。当组织改变其Internet服务供应商(ISP),但网络管理员不想改变内部地址方案时,NAT也是一个很

好用的工具。

以下是应用NAT的场景:

用户需要访问Internet但主机没有全球唯一的IP地址

用户更改ISP需要对网络重新编号

用户需要合并地址重复的内网

通常NAT应用于边界路由器。例如,下图中NAT应用于企业连接到Internet的路由器上:

2014/12/31EMCCommunityNetwork-ECN:网络基本功系列:细说网络那些事儿(12月29日更新)

https://community.emc.com/message/856307#8563072/6



NAT的优势与不足:



优势不足

节约合法注册地址转换导致交换路径延时

解决地址重叠问题导致端到端IP地址无法追溯

提高访问Internet灵活性某些应用程序无法使用

网络变动无需地址重新编号

网络地址转换类型:

静态NAT:此类NAT在本地和全局地址之间做一到一的永久映射。须注意静态NAT要求用户对每一台主机都有

一个真实的InternetIP地址。

动态NAT:允许用户将一个未登记的IP地址映射到一个登记的IP地址池中的一个。采用动态分配的方法将外部合

法地址映射到内部网络,无需像静态NAT那样,通过对路由器进行静态配置来将内部地址映射到外部地址,但

是必须有足够的真正的IP地址来进行收发包。

端口NAT(PAT):最为流行的NAT配置类型。通过多个源端口,将多个未登记的IP地址映射到一个合法IP地址

(多到一)。使用PAT能够使上千个用户仅使用一个全局IP地址连接到Internet。

NAT术语:

NAT术语还是比较直观的。NAT地址转换之后成为全局地址。通常是Internet上使用的公网地址。如果不访问

Internet的话就不需要用到。

本地地址:NAT地址转换之前用到的地址。内部本地地址实际上是尝试访问Internet的发送主机的私有地址。外

部本地地址通常是连接到用户ISP的路由器接口,也是报文开始传输的公有地址。

转换之后,内部本地地址之后被称为内部全局地址,而外部全局地址成为目标主机的地址。如下表所示:



名称含义

内部本地转换前的源主机内部地址

外部本地Internet上识别到源主机的地址。通常是连接到ISP的路由器接口——真实的Internet地址。

内部全局转换后连接到Internet的源主机地址。也是真实的Internet地址

2014/12/31EMCCommunityNetwork-ECN:网络基本功系列:细说网络那些事儿(12月29日更新)

https://community.emc.com/message/856307#8563073/6

外部全局外部目标主机地址,同样是真实的Internet地址

NAT实现细节:

下图中,主机10.1.1.1将报文发送到有NAT功能的边界路由器。路由器将源IP地址识别为内部本地IP地址,在报

文中转换源IP地址,并在NAT表中记录此次转换。

配有新转换源地址的报文发送到外部接口。外部主机将报文发送给目的主机并且NAT路由器通过NAT表将内部

全局IP地址转换回内部本地IP地址。

PAT方式中,所有内部主机都转换为一个IP地址。如下图所示,除了内部本地IP地址和内部全局IP地址以外,还

多了一个端口号。端口号帮助路由器识别哪一台主机应当收到返回数据。路由器使用来自各主机的源端口好来区

别他们各自发出的数据。注意当报文离开路由器时有一个目标端口号80,而HTTP服务器将报文发回时目的端口

号为1026。从而允许NAT转换路由器区别NAT表中的主机然后将目的IP地址转换回内部本地地址。

本例中,端口号在传输层用户识别本地主机。如果必须要使用真实全局IP地址来识别源主机,那就只能通过静

态NAT,并且会用光所有地址。PAT允许我们在传输层识别主机,从而理论上一个真实IP地址可被65,000台主

机共享。

2014/12/31EMCCommunityNetwork-ECN:网络基本功系列:细说网络那些事儿(12月29日更新)

https://community.emc.com/message/856307#8563074/6

静态NAT配置:

ipnatinsidesourcestatic10.1.1.1170.46.2.2

!

interfaceEthernet0

ipaddress10.1.1.10255.255.255.0

ipnatinside

!

interfaceSerial0

ipaddress170.46.2.1255.255.255.0

ipnatoutside

!

在第一个路由器输出中,ipnatinsidesource命令指定需要转换的IP地址。本例中,此命令配置了内部本地IP

地址10.1.1.1到外部全局IP地址170.46.2.2的静态配置。

在各接口下都有一条ipnat命令。ipnatinside命令将该接口识别为内部接口,ipnatoutside命令将该接口识别

为外部接口。回头看ipnatinsidesource命令,该命令将内部接口作为转换的源或起点。也可以这样使用:ip

natoutsidesource。该选项表明指定的外部接口会成为转换的源或起点。

动态NAT配置:

动态NAT表示将一个地址池当作真实IP地址提供给内部一组用户。由于不使用端口号,对于同时尝试访问外部网

络的用户必须提供真实的IP地址。

以下是动态NAT配置的示例输出:

ipnatpooltodd170.168.2.3170.168.2.254

netmask255.255.255.0

ipnatinsidesourcelist1pooltodd

!

interfaceEthernet0

ipaddress10.1.1.10255.255.255.0

ipnatinside

!

interfaceSerial0

ipaddress170.168.2.1255.255.255.0

ipnatoutside

!

2014/12/31EMCCommunityNetwork-ECN:网络基本功系列:细说网络那些事儿(12月29日更新)

https://community.emc.com/message/856307#8563075/6

access-list1permit10.1.1.00.0.0.255

!

ipnatinsidesourcelist1pooltodd命令告知路由器将匹配access-list1的IP地址转换到名为todd的IPNAT池中的一

个地址。这里ACL并不是出于安全因素通过允许或拒绝数据来过滤报文。本例中,它是用来选择或指定我们感兴趣的数据

流。当数据流与接入列表相匹配,就被拉入NAT进程转换。

命令ipnatpooltodd170.168.2.3192.168.2.254netmask255.255.255.0用来创建地址池,之后被分配给请求全局

地址的主机。做CiscoNAT故障排查时,一定要检查池中确保有足够地址提供转换给内部主机。最后,确保池名匹配,注

意区分大小写。

端口NAT配置:

以下是端口NAT配置的示例输出:

ipnatpoolglobalnet170.168.2.1170.168.2.1netmask255.255.255.0

ipnatinsidesourcelist1poolglobalnetoverload

!

interfaceEthernet0/0

ipaddress10.1.1.10255.255.255.0

ipnatinside

!

interfaceSerial0/0

ipaddress170.168.2.1255.255.255.0

ipnatoutside

!

access-list1permit10.1.1.00.0.0.255

端口NAT与动态NAT配置的不同之处在于:

地址池变为只有一个IP地址

在ipnatinsidesource命令最后加入overload关键字。

本例中一个关键元素是使用了池中的一个IP地址作为外部接口IP地址。如果有其他可用地址如170.168.2.2可作

为额外地址,这样做在内部大量用户同时为活跃状态,需要不止一个重载IP地址时很有帮助。

参考

CCENT







举报滥用喜爱(0)

129.Re:网络基本功系列:细说网络那些事儿(9月15日更新)

感谢楼主分享,看完这一章,有几个问题想问一下

1)子网IP向公网发出的数据包是否还需要NAT转换?

2)ABC类的私有地址的划分方式和这种子网划分方式区别在哪?分别是针对哪些情况设定的?为什么要分这两种方式?

3)子网IP会占用IP资源吗?

谢谢了哈

举报滥用喜爱(0)

JaSonS_toy2014-12-29下午10:56(回复Zhang,Jiawen)

2014/12/31EMCCommunityNetwork-ECN:网络基本功系列:细说网络那些事儿(12月29日更新)

https://community.emc.com/message/856307#8563076/6

130.Re:网络基本功系列:细说网络那些事儿(12月29日更新)

写得好赞!

希望再详细写一写ARP协议的细节、ARP协议是怎样在链路层与网络层之间起桥梁作用的,因为我发现很多人不理解二层

与三层之间的分工和协作呢。

举报滥用喜爱(0)

luodichen2014-12-29下午11:26(回复Zhang,Jiawen)

131.Re:网络基本功系列:细说网络那些事儿(12月29日更新)

1)子网IP向公网发出的数据包是否还需要NAT转换?

子网如果采用的是公有IP地址,就无需NAT转换,只有在私有地址时才需要NAT。

2)ABC类的私有地址的划分方式和这种子网划分方式区别在哪?分别是针对哪些情况设定的?为什么要分这

两种方式?

私有地址划分是因为IPv4地址机制导致IP地址不够用了,所以NAT的目的是为了节省IP地址资源。划分子网是

为了将网络细化,避免浪费。可参考这个系列的第七节:IP地址与子网。

3)子网IP会占用IP资源吗?

子网IP会占用IP资源,每一个公有IP地址都是唯一的。

Zhang,Jiawen2014-12-29下午11:56(回复JaSonS_toy)

献花(0)
+1
(本文系icecity0079...首藏)