NAT可以通过将内部网络的私网IP地址转换成全球唯一的公网IP地址,是内部的网络可以连接到互联网等外部网络上,广泛的应用于各种类型的互联网接入方式和各种类型的网络中。

NAT的优点: 1.节省了公有合法的IP地址; 2.处理地址重叠; 3.增强了灵活性; 4.提高了私网地址的安全性;

NAT的实现方式: 1.静态转换; 2.动态转换; 3.PAT(基于端口的地址转换);

NAT对于地址转换中的终端设备是透明的:

简单介绍一下NAT中的四种地址: 内部局部地址:主机在内部使用的地址,一般是私有地址; 内部全局地址:主机在公网使用的地址,一般是公有地址; 外部全局地址:外部的主机在公网上使用的真是地址; 外部局部地址:主机访问的地址。

NAT两种转换方式: 简单转换条目:只转换IP; 扩展转换条目:转换IP和端口。

静态转换NAT:1.由管理员手工设置;2.一对一映射;3.固定、永久;4.双向;5.安全。应用环境:一般用于发布服务器。(不需要配置ACL)

动态转换NAT:1.临时生成的、动态的:2.同一时刻,也是一对一的;3.单向的。应用环境:内部客户机不同时上网时。(需要配置ACL)

PAT:1.一个公网地址对应很多私网地址;通过端口号区分私网地址。应用环境:内部客户机同时上网时。(需要配置ACL)

静态转换NAT实现步骤

R1(config-if)#ip nat inside source static 192.168.1.100 202.106.0.20
#把私网IP地址192.168.1.100转换成公网IP地址202.106.0.20
R1(config)#int f1/0
R1(config-if)#ip nat inside 
#内部端口启用NAT
R1(config-if)#int f0/0
R1(config-if)#ip nat outside 
#外部端口启用NAT
R1(config)#ip route 0.0.0.0 0.0.0.0 202.106.0.2
#配置一条默认路由

这样静态NAT就已经转换完成!

NAT端口映射

R1(config)#ip nat inside source static tcp 192.168.1.100 80 202.106.0.20 80  extendable 
#将私网IP地址192.168.1.100的80端口转换成公网IP地址202.106.0.20的80端口

端口映射就配置完毕!

PAT配置步骤

R1(config)#access-list 1 permit  any
#定义内部访问列表,允许所有内部地址
R1(config)#ip nat pool onlyone 202.106.0.20 202.106.0.20 netmask 255.255.255.0
#定义合法地址池名称为onlyone,合法地址范围202.106.0.20,子网掩码255.255.255.0 (由于只有一个公网地址,所以开始地址和结束地址一样)
R1(config)#ip nat inside source list 1 pool onlyone overload
#以端口复用的方式,将ACL1中的私网地址转换为定义的合法地址池onlyone中的公网地址
R1(config)#int f1/0
R1(config-if)#ip nat inside 
#内部端口启用NAT
R1(config-if)#int f0/0
R1(config-if)#ip nat outside 
#外部端口启用NAT
R1(config)#ip route 0.0.0.0 0.0.0.0 202.106.0.2
#配置一条默认路由

复用路由器外部接口地址步骤: (有时只有一个外部地址,并且已经配置在路由器的外部接口上,这种情况,在地址转换过程中,可以直接使用接口的IP地址作为转换后的地址)

R1(config)#access-list 1 permit  any
#定义内部访问列表,允许所有内部地址
R1(config)#ip nat inside source list 1 int f 0/0 overload 
#将ACL1中的私有地址转换为路由器外部接口的公有地址
R1(config)#int f1/0
R1(config-if)#ip nat inside 
#内部端口启用NAT
R1(config-if)#int f0/0
R1(config-if)#ip nat outside 
#外部端口启用NAT
R1(config)#ip route 0.0.0.0 0.0.0.0 202.106.0.2
#配置一条默认路由

PAT配置完成!

验证NAT的配置常用的命令:

  • 使用show ip nat translations 命令显示当前存在的转换信息
  • 使用show ip nat statistics 命令显示NAT的统计信息
  • 使用show ip nat translations verbose 命令显示更详细的信息
  • 使用clear ip nat translation * 命令删除NAT表中的所有条目(不会删除静态转换的条目)
  • 使用debug ip nat 命令显示出每个转换的数据包

NAT故障处理思路: 1.是否设置了ACL,阻塞了进行过NAT或没进行过NAT的流量; 2.定义需要进行的NAT的ACL时,漏掉了需要进行地址转换的网络; 3.在NAT语句中漏掉了overload关键字; 4. 不对称路由导致NAT失败; 5. NAT地址池和静态NAT表中有重叠地址; 6. inside和outside接口配置错误, 以上情况都会导致NAT转换失败。