初步接觸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
}