big-ip source nat


追記
これは任意のsourceからとあるStandardなVirtualServerへアクセスしたときのsource natのお話です
追記おわり


VirtualServer

Source Address TranslationでAutoMap (floating ip)かSNAT を選択
SNATはあらかじめSNAT Pool Listを作っておく。

iRule

AutoMap, SNAT, SNAT Pool が利用可能?
snatpoolは作っておいたSNAT Pool Listの名前を指定
snatもSNAT Listで作っておく必要があるけど、こちらはなぜか名前ではなくIPを指定?

正確にいうとSNAT Listで作成しておかなくてもiRuleは作成可能。
ただし、実際にはNATできなくて、そのIPにpingも通らなかった。
また、iRuleを作ったあとにSNAT Listから削除もできてしまい、しばらく経つと(arp消えたら?) NATもできなくなる。

なのでSNAT Pool で作って、それをiRuleで指定するほうがよさげ?

when CLIENT_ACCEPTED {
  if { [IP::addr [IP::client_addr] equals 192.168.0.11/32] } {
    snat 192.168.1.11
  }
  elseif { [IP::addr [IP::client_addr] equals 192.168.0.12/32] } {
    snatpool snatpool-test1
  }
  else {
    snat automap
  }
}