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

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

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

配置源地址转换

方法一:转换为出口所属 VLAN  IP  或者出口所属  VLAN  的浮动  IP
               配置:定义一个 SNAT 转换项,在转换地址部分选择 Automap 
               转换规则:单机部署,数据包到达 F5 后, F5 将其源 IP 转换为出口 所属 VLAN IP
                                   双机部署,数据包到达 F5 后, F5 将其源 IP 转换为出口所属 VLAN 的浮动 IP
               适用情况:内部电脑不多(外出会话数不会超过 65535 ),而且外出数据包源地址 转换没有特殊要求的情况。
 
 
方法二:转换为特定的 IP 地址或者 IP 地址池。
               配置:定义一个 SNAT pool ,然后定义一个 SNAT 转换项,在转换地址部分选择 定义的 SNAT pool 
               转换规则:数据包到达 F5 后, F5 会从 SNAT pool 里面依次取出一个 IP ,然后将 数据包的源 IP 转换为该 IP
               适用情况:内部电脑很多(外出会话数会超过 65535 ),而且外出数据包源地址转 换没有特殊要求的情况。
 
 
方法三:根据特定的源 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
}