NAT网路地址转换


 一 NAT的概述
  1. NAT提出的目的
    ① 节约IP
    ② 隐藏了内网主机的细节(安全性)
  2. NAT的工作原理
    ① 转换数据包头中的IP地址
    ② 有些应用无法支持
  3. NAT可在哪做
    ① 可在代理服务器上做----成本高
    ② 可在路由器上做
  4. NAT的实现(三种)
    ① 静态转换--1对1(一个私有IP转换为一个公有IP)
    ② 动态转换--多对多(节约IP)
    ③ PAT-端口多复用--多对1(节约IP ,常用的方法)
  5. NAT的术语
    ① 内部ip :源IP         内部全局:公有的源IP
    ② 外部ip :目的IP       内部局部IP:私有的源IP
    ③ 局部ip :私有IP       外部局部IP:私有的目的IP
    ④ 全局ip :公有IP       外部全局IP: 公有的目的IP
  6. NAT的优缺点
    ① 优点:节省公有IP,增强灵活性,增加了安全性
    ② 缺点:会使延迟增大,配置和排错的复杂性,不支持某些应用          (如:DNS 区域传送)。
                    二  NAT的应用    
  1. 转换内部LAN地址

    用NAT在内部局部IP(私有的源IP)与内部全局IP(公有的源IP)之间建立一个映射关系。
  2. PAT(端口地址转换)
      ① 多个不同的内部局部(私有的源IP)映射到同一个内部全局(公有的源IP)时,使用各个内部主机的TCP或UDP端口号来区分它们。
      ② 用端口来区分内部主机,实际上就是端口地址转换PAT,PAT是NAT的一个子集。
   3. TCP负载均衡
      ① 用对外的IP来代表一组同样的服务器,(一个服务器一样)
      ② NAT通过轮回的方式,分别轮流转换为一组相同服务器的实际地址。
      ③ 没有容错功能(不常用负载均衡)


                     三 NAT的配置

      接口IP
      路由表
      ACL(哪个主机能做NAT)
     采用什么公有地址 静态地址池
      ⑤ 指定地址转换映射
      ⑥ 在内外部端口上启用NAT


  1.静态NAT的配置步骤(一对一)
    设置外部端口的IP地址

    设置内部端口的IP地址

    静态的不用些ACL
   
    静态转换在内部局部(私有源IP)内部全局(公有源IP)之间
     r1(config)#ip nat inside source static 私有源IP 公有源IP

    在内部和外部端口上启用NAT
     r1(config-if)#ip nat outside
     r1(config-if)#ip nat intside
  2.动态NAT的配置 (多对多)
   设置外部接口的IP地址
 
    ② 设置内部接口的IP地址

    ③ 定义内网中允许访问外网的ACL
      r1(config)#access-list 表号 permit 源 反码
     定义合法IP的地址池
      r1(config)#ip nat pool 池名 起始IP 终止IP netmask 子网掩码
               
     实现网络地址转换
      r1(config)#ip nat inside source list 表号 pool 池名
     在内外部端口上启用NAT
      r1(config-if)#ip nat outside
      r1(config-if)#ip nat intside
    
   3.PAT的配置 (多对一)
     《1》.当外接口公网IP已配置,使用别的公有目的IP
     设置外部接口的IP地址

     设置内部接口的IP地址        

     定义内网中允许访问外网的ACL
      r1(config)#access-list 表号 permit 内部网段 反码

     定义合法IP的地址池
      r1(config)#ip nat pool 池名 合法起始IP 合法终止IP netmask 掩码

     设源私有与源公有的转换
      r1(config)#ip nat inside source list 表号 pool 池名 overload
    在内外部端口上启用NAT
      r1(config-if)#ip nat outside
      r1(config-if)#ip nat intside
    
       《2》.有1个公有IP并且已经用到外部接口使用
     设置外部接口的IP地址

     设置内部接口的IP地址

     定义内网中允许访问外网的ACL
      r1(config)#access-list 表号 permit 内部网段 反码
    
    
定义合法的IP地址池
     
由于直接使用外部接口地址,不用定义IP地址池
   
  设置内部私有地址与内部合法IP之间建立转换
     
r1(config)#ip nat inside source list 表号 interface 接口 overload
     在内外部端口上启用NAT
      r1(config-if)#ip nat outside
      r1(config-if)#ip nat intside