初步接触F5的网络管理员可能会被F5的源地址转换搞迷糊,因为F5有多种情况下需要使用源地址转换,而且源地址转换的方法也有几种,本文就简单叙述一下F5源地址转换。

需要做源地址转换的情况:

n 内部网络主动发起请求,要求访问外部网络的服务时;
n 单臂部署F5,外部网络主动发起请求,要求访问内部网络的服务时;
两种情况下,源地址转换的配置方法都是一样的。

配置源地址转换

方法一:转换为出口所属VLAN IP 或者出口所属 VLAN 的浮动 IP
              配置:定义一个SNAT转换项,在转换地址部分选择Automap 
              转换规则:单机部署,数据包到达F5后,F5将其源IP转换为出口所属VLANIP
                                  双机部署,数据包到达F5后,F5将其源IP转换为出口所属VLAN的浮动IP
              适用情况:内部电脑不多(外出会话数不会超过65535),而且外出数据包源地址转换没有特殊要求的情况。
 
f5 源地址转换
 
方法二:转换为特定的IP地址或者IP地址池。
              配置:定义一个SNAT pool,然后定义一个SNAT转换项,在转换地址部分选择定义的SNAT pool 
              转换规则:数据包到达F5后,F5会从SNAT pool里面依次取出一个IP,然后将数据包的源IP转换为该IP
              适用情况:内部电脑很多(外出会话数会超过65535),而且外出数据包源地址转换没有特殊要求的情况。
 
f5 源地址转换
 
方法三:根据特定的源IP或者目标IP转换为相应的IP
配置:定义一个iRule 实现地址判断和源IP转换,定义一个匹配所有目标的VS然后引用定义的iRule
              转换规则:数据包到达F5后,F5 会检查其源IP/和目标IP,然后根据iRule逻辑决定将数据包的源IP转换为哪个IP
              适用情况:需要根据数据包的来源或/和目标IP转换数据包的源IP,比如多链路时。
rule irule_outbound {
when LB_SELECTED {
                 if {[IP::remote_addr equals 192.168.1.1] } {
                    snatpool snat_192.168.1.1
                }
                elseif {[IP::remote_addr equals 192.168.10.1] } {
                    snatpool snat_192.168.10.1
                }
                else {
                    snat automap
                }
            }
}
 
              virtual vs_outbound {
            destination any:any
            persist dest_addr
            rule irule_outbound
}