F5负载均衡系列教程四【SNAT实验】
基础拓扑如下所示:

F5里面的SNAT可以理解为路由交换里面的源地址转换,可以将特定的源地址转成另外一个ip地址(IP地址池)去访问目的服务器
实验环境如下,其中F5到后端服务器网络均路由可达
一、配置SNAT
创建一个SNAT list如下图所示,作用是将源地址是10.1.0.1/32访问VS的的流量转成172.16.128.200去访问服务器,这里面有个优先级顺序,如果VS没有配置automap或者指定snat pool,那么会命中SNAT list,如果有配置snat pool,那么会优先使用snat pool的地址
1 | create /ltm snat /Common/snat_172.16.20.200 origins add { 10.1.0.1/32 } translation 172.16.20.200 |
WEB界面配置如下,命令行和web界面配置二选一即可

首先关闭VS(10.1.10.132:443)的Source Address Translation功能,在F5上抓包,可以发现客户端地址被转换成172.16.20.200了

二、配置autoMAP
删除第一步配置snat_172.16.20.200,不删除的话同一个源IP是不能做多个SNAT的;此处不在VS上开启Source Address Translation
1 | create /ltm snat /Common/snat_automap automap origins add { 10.1.0.1/32 } |
WEB界面配置如下,命令行和web界面配置二选一即可

下图是F5设备的接口ip配置

再次抓包可以发现,F5会使用和服务器相连的浮动selfIP去建立连接

删除snat_automap配置
三、配置snat pool
1 | create /ltm snatpool /Common/my_snatpool members add { 172.16.20.201 172.16.20.202 }<br>create /ltm snat /Common/test_snatpool origins add { 10.1.0.1/32 { } } snatpool my_snatpool |
WEB界面配置如下,命令行和web界面配置二选一即可


访问VS多次抓包,可以发现F5会交替使用snatpool里面的地址去访问后端服务器,如果做了地址池,可能要考虑会话保持的问题

四、正常情况下的snat配置
一般情况下是新建一个snatpool,比如新建个snat_172.16.10.1 ,里面有个地址172.16.10.1;然后在VS里面关联该snat地址。一个VS地址关联一个SNAT地址,逻辑清晰

五、总结如下
一般我们都是在VS里面配置Source Address Translation ,再在snat pool里面选择转换后的地址,比如autoMap或者snmatpool;但是实际上,可以在SNAT list里面单独做SNAT地址转换,里面有三种类型可以选择:IP address、autoMap,snatpool

分类:
网络 / F5负载均衡学习教程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?