Cisco ASA でヘアピン NAT を設定する
Cisco ASA でヘアピン NAT を設定する設定をメモしておきます。 ASA は CML2 上の ASAv 9.15(1)1 を利用しました。
構成図
初期コンフィグ
各機器の初期コンフィグは下記です。 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) のルーティングが存在しない設定としています。
| hostname R1
!
interface GigabitEthernet0/0
ip address 192.0.2.1 255.255.255.0
no shutdown
!
end
|
R2 (IOSv)
| 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)
| 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
を設定して同じインターフェイスでの折返しトラフィックを許可しています。
| 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 設定が行われていることを確認します。
| packet-tracer input inside icmp 10.0.0.2 0 0 192.0.2.103 detailed
|