一、背景介绍

NAT地址转换是生产环境中用的最多的一种技术,除了能缓解ipv4地址不够外,还能有效保护内网真实服务器的地址,nat从流向的角度可以分为snat和dnat,本章对以下几种情况分别进行说明,拓扑如下图所示:
假装网络工程师8——NAT使用场景介绍_第1张图片

二、SNAT使用地址池方式

此种方式是定义一个地址池,内网地址访问外网时在网关接口进行源地址转换,转换后的源地址为地址池中的地址,同时可以通过no-pat选项决定是否开启端口复用

  1. 先进行基础配置
    [R1]int g0/0/0
    [R1-GigabitEthernet0/0/0]ip add 12.0.0.1 24
    [R2]int g0/0/0
    [R2-GigabitEthernet0/0/0]ip add 12.0.0.2 24
    [R2-GigabitEthernet0/0/0]int g0/0/1
    [R2-GigabitEthernet0/0/1]ip add 23.0.0.1 24
    [R3]int g0/0/1
    [R3-GigabitEthernet0/0/1]ip add 23.0.0.2 24
  2. 此时R1没有去往R3的路由所有要在R1上添加去往R3的静态路由
    [R1]ip route-static 23.0.0.0 24 12.0.0.02
  3. 设置一个地址池,内网访问外网时会转化为地址池中的地址,此时再定义一个acl允许R1所在网段12.0.0.0/24流量通过
    [R2]nat address-group 1 23.0.0.10 23.0.0.20 
    [R2]acl 2000 
    [R2-acl-basic-2000]rule 5 permit source 12.0.0.0 0.0.0.255 
  4. 在R2的外网接口上调用nat地址转换及acl,no-pat则是不进行基于端口的转发
    [R2]int g0/0/1
    [R2-GigabitEthernet0/0/1]nat outbound 2000 address-group 1 no-pat 
  5. 此时在到R2的外网接口抓包,能看到内网12.0.0.0/24地址已经转换为外网的23.0.0.0/24网段地址
    假装网络工程师8——NAT使用场景介绍

    三、SNAT使用easy ip方式

    尽管上面2种方法都可以进行地址转换,但还是需要浪费至少一个额外的公网IP地址,现实场景下,大多数小企业结构拓扑更像如下:
    假装网络工程师8——NAT使用场景介绍_第2张图片
    上图中只有一个公网IP地址,内网所有的访问在经过边界路由时都转化成23.0.0.2/24这个外网地址,华为产品管此场景成为easy ip,他的前4步配置与上面示例完全一样,只有在第5步端口调用时使用不同的命令

    [R2]int g0/0/1  
    [R2-GigabitEthernet0/0/1]nat outbound 2000  

    此时源地址就会转换为R2上g0/0/1口的地址,通过outbound表能查看
    假装网络工程师8——NAT使用场景介绍_第3张图片

    四、DNAT一对一方式

    假装网络工程师8——NAT使用场景介绍_第4张图片

  6. 基础配置
    [R1]int g0/0/0
    [R1-GigabitEthernet0/0/0]ip add 192.168.0.100 24
    [R1-GigabitEthernet0/0/0]q 
    [R1]ip route-static 23.0.0.0 24 192.168.0.1 
    [R2]int g0/0/0
    [R2-GigabitEthernet0/0/0]ip add 192.168.0.1 24
    [R2-GigabitEthernet0/0/0]int g0/0/1
    [R2-GigabitEthernet0/0/1]ip add 23.0.0.2 24
    [R3]int g0/0/1
    [R3-GigabitEthernet0/0/1]ip add 23.0.0.3 24
  7. 为R1开通虚拟终端,模拟telnet服务器
    [R1]user-interface vty 0 4 
    [R1-ui-vty0-4]set authentication password cipher huawei 
    [R1-ui-vty0-4]user privilege level 15
  8. R2上配置映射地址,此时要注意对外提供telnet服务的地址不能和外口地址冲突
    [R2-GigabitEthernet0/0/1]nat static global 23.0.0.10 inside 192.168.0.100   

    可以通过映射命令查看静态转换地址表
    假装网络工程师8——NAT使用场景介绍_第5张图片

  9. 在R3的用户模式下进行telnet登录测试
    telnet 23.0.0.10 23 

    五、DNAT一对多方式

    上面介绍了DNAT场景下通过static命令进行全地址映射,如果指向映射某个特定的端口,在边界路由的外口上使用以下命令:

    [R2-GigabitEthernet0/0/1]nat server protocol tcp global 23.0.0.10 2323 inside 192.168.0.100 23 

    六、总结

  10. 外网口SNAT场景下使用outbound命令,使用使用端口复用技术取决于参数no-pat(默认启用复用)
  11. 外网口static命令用于一对一的DNAT转换,server命令用于一对多的DNAT转换
  12. static属于全地址映射,实际中不常用;server是特定端口进行映射,常用