Skip to content

Cisco ASA でヘアピン NAT を設定する

Cisco ASA でヘアピン NAT を設定する設定をメモしておきます。 ASA は CML2 上の ASAv 9.15(1)1 を利用しました。

構成図

file

初期コンフィグ

各機器の初期コンフィグは下記です。 ASA 用の NAT 設定は後から行います。

IOS 共通コンフィグ

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
service timestamps debug datetime msec localtime
service timestamps log datetime msec localtime
!
clock timezone JST +9
!
no ip domain-lookup
!
no banner exec
no banner incoming
no banner login
!
line con 0
 exec-timeout 300 0
 privilege level 15
!
line vty 0 4
 exec-timeout 300 0
 privilege level 15
 no login
 transport input all
!
scheduler allocate 20000 1000
!
end

R1 (IOSv)

outside の外側にあり、LAN 内 (inside) のルーティングが存在しない設定としています。

1
2
3
4
5
6
7
hostname R1
!
interface GigabitEthernet0/0
 ip address 192.0.2.1 255.255.255.0
 no shutdown
!
end

R2 (IOSv)

1
2
3
4
5
6
7
8
9
hostname R2
!
interface GigabitEthernet0/0
 ip address 10.0.0.2 255.255.255.0
 no shutdown
!
ip route 0.0.0.0 0.0.0.0 10.0.0.254
!
end

R3 (IOSv)

1
2
3
4
5
6
7
8
9
hostname R3
!
interface GigabitEthernet0/0
 ip address 10.0.0.3 255.255.255.0
 no shutdown
!
ip route 0.0.0.0 0.0.0.0 10.0.0.254
!
end

ASA (ASAv)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
hostname ASA
!
interface GigabitEthernet0/0
 nameif outside
 security-level 0
 ip address 192.0.2.254 255.255.255.0
 no shutdown
!
interface GigabitEthernet0/1
 nameif inside
 security-level 100
 ip address 10.0.0.254 255.255.255.0
 no shutdown
!
object network OBJ_LAN
 subnet 10.0.0.0 255.255.255.0
 nat (inside,outside) dynamic interface
!
no pager
!
policy-map global_policy
 class inspection_default
  inspect icmp
!
end

outside → inside への NAT 設定

outside → inside への NAT 設定例は以下の通りです。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
object network OBJ_10.0.0.2
 host 10.0.0.2
 nat (inside,outside) static 192.0.2.102
!
object network OBJ_10.0.0.3
 host 10.0.0.3
 nat (inside,outside) static 192.0.2.103
!
access-list OUTSIDE-TO-INSIDE extended permit ip any host 10.0.0.2
access-list OUTSIDE-TO-INSIDE extended permit ip any host 10.0.0.3
!
access-group OUTSIDE-TO-INSIDE in interface outside
!
end

ヘアピン NAT (inside → inside) の設定

ヘアピン NAT の設定例は以下の通りです。 inside → inside の折返し通信 (=ヘアピン) になる為、same-security-traffic permit intra-interface を設定して同じインターフェイスでの折返しトラフィックを許可しています。

1
2
3
4
5
6
7
8
9
object network OBJ_192.0.2.102
 host 192.0.2.102
!
object network OBJ_192.0.2.103
 host 192.0.2.103
!
nat (inside,inside) source dynamic OBJ_LAN interface destination static OBJ_192.0.2.102 OBJ_10.0.0.2
nat (inside,inside) source dynamic OBJ_LAN interface destination static OBJ_192.0.2.103 OBJ_10.0.0.3
same-security-traffic permit intra-interface

設定後は show nat detail や以下のように packet-tracer を使ったり、実際に通信を行って意図した NAT 設定が行われていることを確認します。

1
packet-tracer input inside icmp 10.0.0.2 0 0 192.0.2.103 detailed