構成

  • inside: 10.1.1.0/24
  • outside: 20.1.1.0/24
  • IPアドレスは各機器の名前の末尾、iosv-2だけ.254
  • iosv-2でNATする

Destination NAT

◎iosv-1,3にて#debug ip icmp, iosv-2にてdebug ip natを実行している。
◎iosv-3にてping 10.1.1.1 repeat 1を実行する

iosv-3

“echo reply rcyd, src 10.1.1.1, dst 10.1.1.3″

  • iosv-2にて宛先が10.1.1.1から20.1.1.1へ変換されるので、iosv-3は20.1.1.0/24を知っている必要がない。
  • したがって、RIBには自分の所属する10.1.1.0/24しか載っていない。
  • これはDestination NAT (宛先を書き換えるから)
iosv-3#ping 10.1.1.1 repeat 1
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds:
!
Success rate is 100 percent (1/1), round-trip min/avg/max = 112/112/112 ms
iosv-3#
*Jan 22 22:06:29.659: ICMP: echo reply rcvd, src 10.1.1.1, dst 10.1.1.3, topology BASE, dscp 0 topoid 0

RIB(iosv-3)

iosv-3#sh ip ro | b Gate
Gateway of last resort is not set

      10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        10.1.1.0/24 is directly connected, GigabitEthernet0/0
L        10.1.1.3/32 is directly connected, GigabitEthernet0/0

DNATコンフィグ

(config)# ip nat outside source static 20.1.1.1 10.1.1.1 no-alias add-route
(config)# ip nat outside source static 20.1.1.6 10.1.1.6 no-alias add-route

Source NAT

iosv-1

“echo reply sent, src 20.1.1.1, dst 20.1.1.254

  • iosv-3→iosv-1でpingを実施した場合、本来であれば送信元IPアドレスはiosv-3の10.1.1.3になるはずである。
  • しかし今回はiosv-1が20.1.1.254へpingを返している。
  • これはNATで送信元IPアドレスが10.1.1.3から20.1.1.254に書き換えられたため。
  • したがってiosv-1でもiosv-3のいる10.1.1.0/24を知っている必要はない。
  • これはSource NAT(送信元を書き換えているから)
iosv-1#
*Jan 22 22:06:25.763: ICMP: echo reply sent, src 20.1.1.1, dst 20.1.1.254, topology BASE, dscp 0 topoid 0

RIB(iosv-1)

iosv-1#sh ip ro | b Gate
Gateway of last resort is not set

      20.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        20.1.1.0/24 is directly connected, GigabitEthernet0/0
L        20.1.1.1/32 is directly connected, GigabitEthernet0/0

SNAT コンフィグ

  • GigabitEthernet0/0はiosv-2のoutside向けインターフェース:20.1.1.254
iosv-2#sh run | s NAT
ip nat inside source list NAT_inside interface GigabitEthernet0/0 overload
ip access-list standard NAT_inside
 permit 10.1.1.0 0.0.0.255

NATデバイスでの確認(iosv-2)

#debug ip nat

iosv-2#
*Jan 22 22:21:32.498: NAT*: s=10.1.1.3->20.1.1.254, d=10.1.1.1 [8]
*Jan 22 22:21:32.498: NAT*: s=20.1.1.254, d=10.1.1.1->20.1.1.1 [8]
*Jan 22 22:21:32.524: NAT*: s=20.1.1.1->10.1.1.1, d=20.1.1.254 [8]
*Jan 22 22:21:32.524: NAT*: s=10.1.1.1, d=20.1.1.254->10.1.1.3 [8]

#show ip nat translations

iosv-2#sh ip nat trans
Pro Inside global      Inside local       Outside local      Outside global
--- ---                ---                10.1.1.1           20.1.1.1
--- ---                ---                10.1.1.6           20.1.1.6
icmp 20.1.1.254:4      10.1.1.3:4         10.1.1.1:4         20.1.1.1:4

#show ip route

iosv-2#sh ip ro | b Gate
Gateway of last resort is not set

      10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
C        10.1.1.0/24 is directly connected, GigabitEthernet0/1
S        10.1.1.1/32 [1/0] via 20.1.1.1
S        10.1.1.6/32 [1/0] via 20.1.1.6
L        10.1.1.254/32 is directly connected, GigabitEthernet0/1
      20.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        20.1.1.0/24 is directly connected, GigabitEthernet0/0
L        20.1.1.254/32 is directly connected, GigabitEthernet0/0

NAT、わかると面白いんだけどわかるまでむっちゃ難しいね。

4.5 Network services