VIP映射的主机访问Internet

网络需求

某用户使用VIP一对一映射了一个公网IP到内网服务器,同时又需要此服务器通过FortiGate的SNAT访问Internet。

网络拓扑

image-20231213172830930

  1. 在port1(WAN1)上通过VIP将202.103.12.3映射到内网Server 10.10.2.100。
  2. 内网PC和Server都通过port1(WAN1)做SNAT访问Internet,SNAT策略配置转换的源IP为借用出接口地址202.103.12.2。

配置步骤

  1. 配置VIP映射,将202.103.12.3映射到内网Server 10.10.2.100。

    image-20231213152953528

    config firewall vip
        edit "VIP_to_Server"
            set extip 202.103.12.3
            set mappedip "10.10.2.100"
            set extintf "port1"
        next
    end
    
  2. 使用安全策略放通Internet到VIP的访问。

    image-20231213153812089

    config firewall policy
        edit 1
            set name "VIP_to_Server"
            set srcintf "port1"
            set dstintf "port4"
            set action accept
            set srcaddr "all"
            set dstaddr "VIP_to_Server"
            set schedule "always"
            set service "ALL"
        next
    end
    
  3. 配置上网策略,允许内网PC和Server访问Internet,并开启SNAT,SNAT IP池选择使用流出接口地址。

    image-20231213154835762

    config firewall policy
        edit 2
            set name "to_Internet"
            set srcintf "port3" "port4"
            set dstintf "port1"
            set action accept
            set srcaddr "10.10.1.0/24" "10.10.2.0/24"
            set dstaddr "all"
            set schedule "always"
            set service "ALL"
            set nat enable
        next
    end
    

结果验证

  1. 内网PC可以访问Internet时,SNAT转换的源地址正确地转换为出接口port1(WAN1)的IP地址202.103.12.2。

    image-20231213160536233

  2. Server也可以正常访问Internet,但是经过SNAT后,转换的源地址不是出接口port1(WAN1)的IP地址202.103.12.2,而是VIP配置的extip地址202.103.12.3

    image-20231213155646659

  3. 默认配置下,当访问Internet的SNAT策略使用流出接口地址作为IP池配置时,有VIP映射的服务器访问Internet,会优先使用VIP的extip(202.103.12.3)作为SNAT的源地址,而不是流出接口地址(202.103.12.2)

解决方法

  1. 如果需要VIP映射的服务器访问Internet时,按照上网策略的配置使用流出接口地址作为SNAT的源地址,需要将上网策略的SNAT池改为“动态IP池”方式。新建IP池,范围配置为出接口port1(WAN1)的IP。

    image-20231213161738605

    config firewall ippool
        edit "WAN1"
            set startip 202.103.12.2
            set endip 202.103.12.2
        next
    end
    
  2. 编辑上网策略,将“IP池配置”修改为“动态IP池”,选择上步创建的IP池。

    image-20231213161919226

    config firewall policy
        edit 2
            set name "to_Internet"
            set srcintf "port3" "port4"
            set dstintf "port1"
            set action accept
            set srcaddr "10.10.1.0/24" "10.10.2.0/24"
            set dstaddr "all"
            set schedule "always"
            set service "ALL"
            set nat enable
            set ippool enable
            set poolname "WAN1"
        next
    end
    
  3. 再次使用Server访问Internet,可以看到FortiGate使用出接口port1(WAN1)作为SNAT的源地址。

    image-20231213162229335

  4. 如果上网策略配置了“动态IP池”,但VIP映射的Server又想使用VIP的extip作为SNAT的源地址,那么可以通过如下配置实现。在VIP的配置中开启nat-source-vip后,即使上网策略的SNAT使用了“动态IP池”,VIP映射的主机依然会使用VIP的extip作为SNAT的源地址。

    config firewall vip
        edit "VIP_to_Server"
            set nat-source-vip enable
        next
    end
    
  5. 开启nat-source-vip后,Server再次访问Internet,SNAT转换的源地址是VIP配置的extip地址202.103.12.3。

    image-20231213162836332

总结

  1. 上网策略的SNAT使用“流出接口地址”作为“IP池配置”时:VIP映射的内网Server访问Internet,FortiGate使用VIP的extip作为SNAT的源IP,而不是上网策略的出接口地址(nat-source-vip不起任何作用)。
  2. 上网策略的SNAT使用“动态IP池”作为“IP池配置”时:
    • 默认情况下,VIP映射的内网Server访问Internet,FortiGate使用IP池范围中的地址作为SNAT的源IP,而不是VIP的extip。
    • 如果想使用VIP的extip作为SNAT的源IP,则需要在VIP配置中开启nat-source-vip。

Copyright © 2024 Fortinet Inc. All rights reserved. Powered by Fortinet TAC Team.
📲扫描下方二维码分享此页面👇
该页面修订于: 2023-12-13 17:43:17

results matching ""

    No results matching ""