宛先NAT with HSRP

構成

  • 各機器のIPアドレスの第四オクテットは名前にある数字を採用(iosv-1なら20.1.1.1)
  • iosv-2,9でHSRPを動作させる
  • iosv-2がActive (Priority 110)
  • iosv-9がStandby (Priority 100)
  • iosv-2のインターフェースがダウンした際、逆サイドのインターフェースはプライオリティを20デクリメントさせてHAの切り替えを行う
  • VIPの第四オクテットはそれぞれ.254
  • inside側に20.1.1.1を10.1.1.1へstaticに変換させる(DestNAT)

コンフィグ

ip nat ~の設定の末尾にredundancy [HSRP名]を入れる。

iosv-2

iosv-2#sh run | s NAT|nat|0/0|0/1
track 1 interface GigabitEthernet0/0 line-protocol
track 2 interface GigabitEthernet0/1 line-protocol

interface GigabitEthernet0/0
 ip address 20.1.1.2 255.255.255.0
 ip nat outside
 ip virtual-reassembly in
 standby 2 ip 20.1.1.254
 standby 2 priority 110
 standby 2 preempt
 standby 2 name outside
 standby 2 track 2 decrement 20

interface GigabitEthernet0/1
 ip address 10.1.1.2 255.255.255.0
 ip nat inside
 ip virtual-reassembly in
 standby 1 ip 10.1.1.254
 standby 1 priority 110
 standby 1 preempt
 standby 1 name inside
 standby 1 track 1 decrement 20

ip nat pool for_SNAT 20.1.1.254 20.1.1.254 prefix-length 24
ip nat inside source list NAT_inside pool for_SNAT redundancy 1 mapping-id 1 overload
ip nat outside source static 20.1.1.1 10.1.1.1 redundancy outside no-alias add-route
ip access-list standard NAT_inside
 permit 10.1.1.0 0.0.0.255

iosv-9

iosv-9#sh run | s NAT|nat|0/0|0/1
interface GigabitEthernet0/0
 ip address 20.1.1.9 255.255.255.0
 ip nat outside
 ip virtual-reassembly in
 standby 2 ip 20.1.1.254
 standby 2 preempt
 standby 2 name outside

interface GigabitEthernet0/1
 ip address 10.1.1.9 255.255.255.0
 ip nat inside
 ip virtual-reassembly in
 standby 1 ip 10.1.1.254
 standby 1 preempt
 standby 1 name inside

ip nat pool for_SNAT 20.1.1.254 20.1.1.254 prefix-length 24
ip nat inside source list NAT_inside pool for_SNAT redundancy 1 mapping-id 1 overload
ip nat outside source static 20.1.1.1 10.1.1.1 redundancy outside no-alias add-route
ip access-list standard NAT_inside
 permit 10.1.1.0 0.0.0.255

検証

各フェーズごとに以下のpingを投げてshowで確認を行う。

iosv-3→10.1.1.1(DNAT後iosv-1アドレス)

1. HA切り替え前

  • まだAct-Standby健在なのでただのDNAT
  • ただし、セッションの同期は行わないのでiosv-9のshow ip nat translationsにはセッションが表示されない
iosv-2(config-if)#do sh ip nat trans
Pro Inside global      Inside local       Outside local      Outside global
--- ---                ---                10.1.1.1           20.1.1.1
icmp 10.1.1.3:6        10.1.1.3:6         10.1.1.1:6         20.1.1.1:6

iosv-9(config)#do sh ip nat trans
Pro Inside global      Inside local       Outside local      Outside global
--- ---                ---                10.1.1.1           20.1.1.1

2. HA切り替え後

  • iosv-9がActiveになった
  • セッション同期を行わないので異なるセッションでNAT変換を行っていることが確認できる
iosv-2(config-if)#do sh ip nat trans
Pro Inside global      Inside local       Outside local      Outside global
--- ---                ---                10.1.1.1           20.1.1.1
icmp 10.1.1.3:6        10.1.1.3:6         10.1.1.1:6         20.1.1.1:6

iosv-9(config)#do sh ip nat t
rans
Pro Inside global      Inside local       Outside local      Outside global
--- ---                ---                10.1.1.1           20.1.1.1
icmp 10.1.1.3:7        10.1.1.3:7         10.1.1.1:7         20.1.1.1:7

3. HA切り戻し後

  • iosv-2がActiveに戻ってきた
  • 特に書くことはない
iosv-2(config-if)#do sh ip nat trans
Pro Inside global      Inside local       Outside local      Outside global
--- ---                ---                10.1.1.1           20.1.1.1
icmp 10.1.1.3:6        10.1.1.3:6         10.1.1.1:6         20.1.1.1:6
icmp 10.1.1.3:8        10.1.1.3:8         10.1.1.1:8         20.1.1.1:8

iosv-9(config)#do sh ip nat trans
Pro Inside global      Inside local       Outside local      Outside global
--- ---                ---                10.1.1.1           20.1.1.1
icmp 10.1.1.3:7        10.1.1.3:7         10.1.1.1:7         20.1.1.1:7

参考

ネットワークアドレス変換(NAT)に関するFAQを確認する

4.5 Network services