组网及说明

image.png
组网说明:
本案例采用H3C HCL模拟器来模拟实现双向NAT的组网,由于模拟器和本物理机的局限性,因此采用模拟器的S5820交换机开启WEB功能模拟成为WEB服务器。在该网络拓扑图中,内网和外网已经有了明确的标识,某局点申请了202.1.100.2-202.1.100.3这两个公网IP地址,其中202.1.100.2用于与外网互联,202.1.100.3用于给内网WEB服务器的转换并对外网提供WEB服务,同时内网机子能通过使用外网IP地址来访问WEB服务器,因此在不使用NAT回流的前提下,采用双向NAT来实现此需求。

配置步骤

1、按照网络拓扑图正确配置IP地址
2、SW1开启WEB功能,并创建相应账户及赋予权限
3、SW1配置默认路由指向FW1
4、FW1配置默认路由指向外网,并配置静态路由指向SW1
5、FW1配置NAT,允许内网主机访问外网
6、FW1配置双向NAT,实现内网主机通过使用外网地址来访问WEB服务

配置关键点

ISP:

  1. <H3C>sys
  2. System View: return to User View with Ctrl+Z.
  3. [H3C]sysname ISP
  4. [ISP]int gi 0/1
  5. [ISP-GigabitEthernet0/1]ip address 202.103.224.254 24
  6. [ISP-GigabitEthernet0/1]quit
  7. [ISP]int gi 0/0
  8. [ISP-GigabitEthernet0/0]des <connect to FW1>
  9. [ISP-GigabitEthernet0/0]ip address 202.1.100.1 28
  10. [ISP-GigabitEthernet0/0]quit

SW1:

  1. <H3C>sys
  2. System View: return to User View with Ctrl+Z.
  3. [H3C]sysname SW1
  4. [SW1]int gi 1/0/1
  5. [SW1-GigabitEthernet1/0/1]port link-mode route
  6. [SW1-GigabitEthernet1/0/1]des <connect to FW1>
  7. [SW1-GigabitEthernet1/0/1]ip address 10.0.0.2 30
  8. [SW1-GigabitEthernet1/0/1]quit
  9. [SW1]ip route-static 0.0.0.0 0.0.0.0 10.0.0.1
  10. [SW1]ip http enable
  11. [SW1]ip https enable
  12. [SW1]local-user admin
  13. New local user added.
  14. [SW1-luser-manage-admin]password simple admin
  15. [SW1-luser-manage-admin]service-type http https
  16. [SW1-luser-manage-admin]authorization-attribute user-role network-admin
  17. [SW1-luser-manage-admin]quit

FW1:

  1. <H3C>sys
  2. System View: return to User View with Ctrl+Z.
  3. [H3C]sysname FW1
  4. [FW1]acl basic 2001
  5. [FW1-acl-ipv4-basic-2001]rule 0 permit source any
  6. [FW1-acl-ipv4-basic-2001]quit
  7. [FW1]zone-pair security source trust destination untrust
  8. [FW1-zone-pair-security-Trust-Untrust]packet-filter 2001
  9. [FW1-zone-pair-security-Trust-Untrust]quit
  10. [FW1]zone-pair security source untrust destination trust
  11. [FW1-zone-pair-security-Untrust-Trust]packet-filter 2001
  12. [FW1-zone-pair-security-Untrust-Trust]quit
  13. [FW1]zone-pair security source trust destination local
  14. [FW1-zone-pair-security-Trust-Local]packet-filter 2001
  15. [FW1-zone-pair-security-Trust-Local]quit
  16. [FW1]zone-pair security source local destination trust
  17. [FW1-zone-pair-security-Local-Trust]packet-filter 2001
  18. [FW1-zone-pair-security-Local-Trust]quit
  19. [FW1]zone-pair security source untrust destination local
  20. [FW1-zone-pair-security-Untrust-Local]packet-filter 2001
  21. [FW1-zone-pair-security-Untrust-Local]quit
  22. [FW1]zone-pair security source local destination untrust
  23. [FW1-zone-pair-security-Local-Untrust]packet-filter 2001
  24. [FW1-zone-pair-security-Local-Untrust]quit
  25. [FW1]zone-pair security source trust destination trust
  26. [FW1-zone-pair-security-Trust-Trust]packet-filter 2001
  27. [FW1-zone-pair-security-Trust-Trust]quit
  28. [FW1]int gi 1/0/4
  29. [FW1-GigabitEthernet1/0/4]ip address 192.168.1.1 24
  30. [FW1-GigabitEthernet1/0/4]quit
  31. [FW1]int gi 1/0/3
  32. [FW1-GigabitEthernet1/0/3]des <connect to SW1>
  33. [FW1-GigabitEthernet1/0/3]ip address 10.0.0.1 30
  34. [FW1-GigabitEthernet1/0/3]quit
  35. [FW1]security-zone name trust
  36. [FW1-security-zone-Trust]import interface GigabitEthernet 1/0/3
  37. [FW1-security-zone-Trust]import interface GigabitEthernet 1/0/4
  38. [FW1-security-zone-Trust]quit

FW1 双向NAT关键配置点:

  1. [FW1]acl basic 2000
  2. [FW1-acl-ipv4-basic-2000]rule 0 permit source any
  3. [FW1-acl-ipv4-basic-2000]quit
  4. [FW1]int gi 1/0/2
  5. [FW1-GigabitEthernet1/0/2]des <connect to ISP>
  6. [FW1-GigabitEthernet1/0/2]ip address 202.1.100.2 28
  7. [FW1-GigabitEthernet1/0/2]nat outbound 2000
  8. [FW1-GigabitEthernet1/0/2]nat server protocol tcp global 202.1.100.3 80 inside 10.0.0.2 80
  9. [FW1-GigabitEthernet1/0/2]nat server protocol tcp global 202.1.100.3 443 inside10.0.0.2 443
  10. [FW1-GigabitEthernet1/0/2]quit
  11. [FW1]ip route-static 0.0.0.0 0.0.0.0 202.1.100.1
  12. [FW1]acl basic 2002
  13. [FW1-acl-ipv4-basic-2002]rule 0 permit source 192.168.1.0 0.0.0.255
  14. [FW1-acl-ipv4-basic-2002]quit
  15. [FW1]int gi 1/0/3
  16. [FW1-GigabitEthernet1/0/3]nat outbound 2002
  17. [FW1-GigabitEthernet1/0/3]nat server protocol tcp global 202.1.100.3 80 inside 10.0.0.2 80
  18. [FW1-GigabitEthernet1/0/3]nat server protocol tcp global 202.1.100.3 443 inside 10.0.0.2 443
  19. [FW1-GigabitEthernet1/0/3]quit
  20. [FW1]security-zone name Untrust
  21. [FW1-security-zone-Untrust]import interface GigabitEthernet 1/0/2
  22. [FW1-security-zone-Untrust]quit
  23. [FW1]int gi 1/0/4
  24. [FW1-GigabitEthernet1/0/4]nat outbound 2002
  25. [FW1-GigabitEthernet1/0/4]nat server protocol tcp global 202.1.100.3 80 inside 10.0.0.2 80
  26. [FW1-GigabitEthernet1/0/4]nat server protocol tcp global 202.1.100.3 443 inside 10.0.0.2 443
  27. [FW1-GigabitEthernet1/0/4]quit

故障分析以及解决方案:

  1. 在fw1和fw2中配置DNAT地址映射,100.1.1.10:9000——->192.168.0.11:9000——->192.168.1.100:9000。这层转换是没有问题的
    2. 业务有问题,其实是出在了数据回包的过程,192.168.1.100:9000——->100.1.1.1,当该数据到了fw2之后,fw2对该包有如下处理,查路由表,发现需要从g0/0/0口发出去,然后匹配策略,以及SNAT,但是此时是匹配不了之前SNAT的会话表的(100.1.1.1——>192.168.0.11:9000[192.168.1.100:9000]),因为之前的数据是从G0/0/1接口进来的,所以数据不会转换192.168.0.11。那么该数据包要从G0/0/0出去,就要就要看防火墙的配置了,是否允许该区域之间的流量通过,不过即便允许了数据包也被丢弃了,一般上防火墙都会认为是攻击报文
    3. 那知道问题所在就好,只需要将数据的走向和数据来源一致即可,可以将fw2的默认路由指向fw1,这样数据经过fw2和fw1的dnat规则后会自动转换。但是这种改法有很多缺点,最为明显的就是影响部门B的使用,整个路由都从internet2改成了internet1。另外如果fw1和fw2如果是同一网段还好,如果是跨网段,任意一个路径都有可能从不同的出口出去(实际我的环境就是多层NAT,为了方便理解,我将拓扑优化了)
    4. 最优的办法就是,在fw1中,凡是去往192.168.0.11的9000,8080等端口的,都先做一个源地址转换,转换成自己的出接口地址192.168.0.10,这样fw2在回包的时候,肯定会将数据包送回给fw1再出去。

    总结:

  2. 综合来说,fw1做了双向nat,即把去往100.1.1.10的9000转成192.168.0.11的9000,也把源地址100.1.1.1转成了192.168.0.10
    2. 再扩展下双向NAT,常见的互联网架构中,一般会配置多个出口,如电信,联通。如果希望实现源进源出的效果(即电信入站流量默认从电信出站,联通反之),那么采用双向NAT,在转换DNAT的同时,也将公网源地址转换称为防火墙的内网出接口IP(局域网)。这样就很简单的实现了源进源出功能
    3. 高流量场合下,如数据中心出口,配置诸多NAT规则的性能是始终比直接路由转发要低的。如无特殊需求,还是不建议对数据包经常进行双向NAT转换。