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

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

 

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

 

 

介绍

 

NAT技术让少数公有IP地址被使用私有地址的大量主机所共享。这一机制容许远多于IP地址空间所支持的主机共享网络。同时,因为NAT屏蔽了内部网络,也为局域网内的机器提供了安全保障。网络


NAT的基本实施过程包括使用一个预留给本地IP网络的私有地址成立组织的内部网络,同时分配给组织一个或多个公网IP地址,并在本地网络与公网之间安装一个或多个具备NAT功能的路由器。NAT路由器实现的功能包括将数据报中私网地址转换成公网地址,反向亦然。当有报文经过时,网络地址转换其不只检查报文信息,还将报文头中的IP地址和端口信息进行修改,以使处于NAT以后的机器共享少数公网IP地址。ide


更多信息

 

什么时候使用NAT?工具

 

由于NAT可以减小在网络环境中所需的公共IP地址需求,所以当两家公司重复内部地址合并时,这一技术是颇有帮助的。当组织改变其Internet服务供应商(ISP),但网络管理员不想改变内部地址方案时,NAT也是一个很好用的工具。spa

如下是应用NAT的场景:blog

  • 用户须要访问Internet但主机没有全球惟一的IP地址接口

  • 用户更改ISP须要对网络从新编号进程

  • 用户须要合并地址重复的内网ip

 

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

p_w_picpath002.png

 

 

NAT的优点与不足:

 

         

优点

不足

节约合法注册地址

转换致使交换路径延时

解决地址重叠问题

致使端到端IP地址没法追溯

提升访问Internet灵活性

某些应用程序没法使用

网络变更无需地址从新编号

 

网络地址转换类型:

 

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

动态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地址

外部全局

外部目标主机地址,一样是真实的Internet地址

p_w_picpath003.png

 

NAT实现细节:

 

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

 

配有新转换源地址的报文发送到外部接口。外部主机将报文发送给目的主机而且NAT路由器经过NAT表将内部全局IP地址转换回内部本地IP地址。

p_w_picpath004.png

 

PAT方式中,全部内部主机都转换为一个IP地址。以下图所示,除了内部本地IP地址和内部全局IP地址之外,还多了一个端口号。端口号帮助路由器识别哪一台主机应当收到返回数据。路由器使用来自各主机的源端口好来区别他们各自发出的数据。注意当报文离开路由器时有一个目标端口号80,而HTTP服务器将报文发回时目的端口号为1026。从而容许NAT转换路由器区别NAT表中的主机而后将目的IP地址转换回内部本地地址。

 

本例中,端口号在传输层用户识别本地主机。若是必需要使用真实全局IP地址来识别源主机,那就只能经过静态NAT,而且会用光全部地址。PAT容许咱们在传输层识别主机,从而理论上一个真实IP地址可被65,000台主机共享。

p_w_picpath005.png

 

静态NAT配置:

 

ip nat inside source static 10.1.1.1 170.46.2.2

!

interface Ethernet0

ip address 10.1.1.10 255.255.255.0

ip nat inside

!

interface Serial0

ip address 170.46.2.1 255.255.255.0

ip nat outside

!

 

在第一个路由器输出中, ip nat inside source 命令指定须要转换的IP地址。本例中,此命令配置了内部本地IP地址10.1.1.1到外部全局IP地址170.46.2.2的静态配置。

在各接口下都有一条ip nat命令。ip nat inside命令将该接口识别为内部接口,ip nat outside命令将该接口识别为外部接口。回头看 ip nat inside source 命令,该命令将内部接口做为转换的源或起点。也能够这样使用:ip nat outside source。该选项代表指定的外部接口会成为转换的源或起点。

 

动态NAT配置:

 

动态NAT表示将一个地址池看成真实IP地址提供给内部一组用户。因为不使用端口号,对于同时尝试访问外部网络的用户必须提供真实的IP地址。

 

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

ip nat pool todd 170.168.2.3 170.168.2.254

    netmask 255.255.255.0

ip nat inside source list 1 pool todd

!

interface Ethernet0

ip address 10.1.1.10 255.255.255.0

ip nat inside

!

interface Serial0

ip address 170.168.2.1 255.255.255.0

ip nat outside

!

access-list 1 permit 10.1.1.0 0.0.0.255

!

 

ip nat inside source list 1 pool todd 命令告知路由器将匹配access-list 1的IP地址转换到名为todd的IP NAT池中的一个地址。这里ACL并非出于安全因素经过容许或拒绝数据来过滤报文。本例中,它是用来选择或指定咱们感兴趣的数据流。当数据流与接入列表相匹配,就被拉入NAT进程转换。

 

命令 ip nat pool todd 170.168.2.3 192.168.2.254 netmask 255.255.255.0用来建立地址池,以后被分配给请求全局地址的主机。作Cisco NAT故障排查时,必定要检查池中确保有足够地址提供转换给内部主机。最后,确保池名匹配,注意区分大小写。

 

端口NAT配置:

 

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

ip nat pool globalnet 170.168.2.1 170.168.2.1 netmask 255.255.255.0

ip nat inside source list 1 pool globalnet overload

!

interface Ethernet0/0

ip address 10.1.1.10 255.255.255.0

ip nat inside

!

interface Serial0/0

ip address 170.168.2.1 255.255.255.0

ip nat outside

!

access-list 1 permit 10.1.1.0 0.0.0.255

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

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

在ip nat inside source命令最后加入overload关键字。

 

本例中一个关键元素是使用了池中的一个IP地址做为外部接口IP地址。若是有其余可用地址如170.168.2.2可做为额外地址,这样作在内部大量用户同时为活跃状态,须要不止一个重载IP地址时颇有帮助

相关文章
相关标签/搜索