前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅谈网络地址转换(NAT)

浅谈网络地址转换(NAT)

作者头像
小手冰凉
发布2019-09-10 10:17:38
1.6K0
发布2019-09-10 10:17:38
举报
文章被收录于专栏:小手冰凉小手冰凉

随着网络的发展,公网IP地址的需求与日俱增。为了缓解公网IP地址的不足,并且保护公司内部服务器的私网地址,可以使用NAT(网络地址转换)技术将私网地址转化成公网地址,以缓解IP地址的不足,并且隐藏内部服务器的私网地址。 NAT通过将内部服务器的私网IP地址转换成全球唯一的公网IP地址,是内部网络可以连接到互联网等外部网络上。 NAT的实现方式有三种: 静态NAT(static translation) 动态转换(dynamic translation) PAT(port-base address translation,基于端口的地址转换) 其中常用到的是静态转换和PAT,动态转换不太实用。因为动态转换的话,我们拥有的公网IP地址要和局域网要上网的ip地址一样多。这是不现实的。所以这里就不说动态ip了。 静态转换是一对一(一个公网IP地址对应一个私网IP地址)、一对多(一个公网IP地址对应多个私网IP地址)的转换,主要是用于我们内部需要让外网客户访问的服务器会做静态转换,简单的静态转换只能一对一,可以通过NAT端口映射来实现一对多的转换。 一对一转换的实现过程如下: Router(config)#ip nat inside source static 192.168.1.1 20.0.0.2 #将内网ip地址192.168.1.1在与外网通信时转换为20.0.0.2

Router(config)#in f0/0 #进入内部网络的接口 Router(config-if)#ip nat inside #在内部网络的端口启用NAT Router(config-if)#in f0/1 #进入连接外部网络的端口 Router(config-if)#ip nat outside #在连接外部网络的端口启动NAT(注意:和在内部网络的接口启用NAT的命令字有差别

经过以上配置,静态转换(一对一)就生效了。

接下来我们使用NAT端口映射,实现静态转换的一对多转换(跟一对一的转换差别不大,只是多定义了下端口号)。命令如下:

Router(config)#ip nat inside source static tcp 192.168.1.1 80 20.0.0.2 80 extendable #将内网ip地址为192.168.1.1的web服务器在与外网通信时转换为20.0.0.2

Router(config)#ip nat inside source static tcp 192.168.1.2 25 20.0.0.2 25 extendable #将内网ip地址为192.168.1.2的SMTP服务器在与外网通信时转换为20.0.0.2

以上两条配置成功后(同样需要分别在内部端口和外部端口启动NAT),当外网用户访问web服务器时,路由器会对应NAT转换条目,并查看端口号,然后把数据包传送给192.168.1.1的web服务器;当外网用户访问SMTP服务器时,路由器同样会查看NAT转换条目,并查看端口号,然后把数据包传送给192.168.1.2的SMTP服务器。这样就实现了基于NAT端口映射的一对多的静态转换。(当然,若有两台服务器都是相同服务的话,就不太适用了,如果更改服务默认的端口号,就会不利于用户的访问了。)

PAT

PAT可以实现一对多(一个公网IP地址对应多个私网IP地址)、直接复用路由器外部接口地址,两种实现方式。

一对多的实现命令如下(需要借助ACL控制列表):

Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255 #定义ACL控制列表,允许192.168.1.0/24网段的流量通过。

Router(config)#ip nat pool 123 20.0.0.2 20.0.0.2 netmask 255.0.0.0 #定义合法的公网IP地址池,其中“123”为地址池的名字。可以自行定义。第一段ip为起始ip地址,第二段ip地址为结束ip地址,因为只用一个公网IP,所以起始和结束相同

Router(config)#ip nat inside source list 1 pool 123 overload #overload是启用端口复用方式,这条命令实现的是:以端口复用方式,将ACL 1 中的局部地址转换为123地址池中定义的全局IP地址。

接下来分别在内部端口和外部端口启用NAT即可生效。

直接复用路由器外部接口地址的实现过程如下:

Router(config)#access-list 2 permit 192.168.2.0 0.0.0.255 #定义ACL控制列表,允许192.168.2.0/24网段的流量通过

由于直接使用外部接口地址,因此不用定义IP地址池。

Router(config)#ip nat inside source list 2 in f0/1 overload #在全局配置模式,设置复用动态IP地址转换,在内部的ACL 2 的地址与路由器上与外网连接的接口合法公网IP地址之间建立地址转换。

以上就是几种常用的地址转换方式。在配置完成后可以在特权模式下执行:Router#debug ip nat命令后,让内网和外网通信,来查看调试信息,以便验证地址转换是否达到了我们所要实现的要求,若要关闭此功能,输入Router#no debug ip nat 即可。也可执行Router#show ip nat translations来查看转换条目;执行:Router#clear ip nat translations *删除除静态转换条目以外的所有条目。

NAT的故障排查思路

若遇到NAT故障,基本上可以归于两类:配置错误和没有正确理解NAT的工作方式。 一般可以通过Router#i show run来查看配置,以便检查以下几个方面是否存在问题: 1、是否设置了ACL,阻塞了进行过NAT或没有进行过NAT的流量; 2、定义需要进行NAT的ACL是,漏掉了需要进行地址转换的网络; 3、在NAT语句中漏掉了overload关键字。为了建立PAT,在NAT配置命令的最后,必须使用overload关键字,漏掉这个关键字,将会导致无法进行PAT,最终将会导致只有数目有限的主机可以访问公用网或互联网,而不是期望中的所有主机。 4、不对称路由导致NAT失败,就是在外部端口(outside)和内部端口(inside)配置反了; 5、NAT地址池和静态NAT表项中有重叠地址。要确保NAT地址池中的IP地址也不能用于静态NAT,这很重要。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-05-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NAT 网关
NAT 网关(NAT Gateway)提供 IP 地址转换服务,为腾讯云内资源提供高性能的 Internet 访问服务。通过 NAT 网关,在腾讯云上的资源可以更安全的访问 Internet,保护私有网络信息不直接暴露公网;您也可以通过 NAT 网关实现海量的公网访问,最大支持1000万以上的并发连接数;NAT 网关还支持 IP 级流量管控,可实时查看流量数据,帮助您快速定位异常流量,排查网络故障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档