Juniper NetScreen-208 Policy-based Destination NAT in ScreenOS 5.4

NetScreen-208(ScreenOS 5.4)でPolicy-based Destination NATを使う方法です。
インターネット(Untrust)からも内部(Trust)からもグローバルIPアドレスでアクセスさせるのにはちょっとした工夫が必要です。もっともPolicy-based Destination NATを使わず、VIP(Virtual IP)を使えば簡単なのですが...。

= 前提条件 =
グローバルIPアドレス x.y.z.0/28(使えるIPアドレスは x.y.z.1 ~ x.y.z.14 まで)のインターネット環境があると仮定します。
“ethernet1″を”Untrust”ゾーン、”ethernet2″を”DMZ”ゾーンと設定します。
“ethernet1″にはIPアドレス x.y.z.2 が割り当てられてあり、他にサーバー用として割り当て可能なアドレスは以下の1つです。

x.y.z.3

グローバルIPアドレスと対象サービス(プロトコル:ポート番号)、転送されるプライベートIPアドレスは以下の通りです。

x.y.z.3 SMTP(TCP:25)    → 192.168.1.2
x.y.z.3 DNS(TCP/UDP:53) → 192.168.1.3
x.y.z.3 HTTP(TCP:80)    → 192.168.1.4
x.y.z.3 POP3(TCP:110)   → 192.168.1.2
x.y.z.3 HTTPS(TCP:443)  → 192.168.1.4

= 手順 =
1. Destination NAT用に proxy-arp を有効化する(隠しコマンド)

set arp nat-dst

2. グローバルIPアドレスを”Untrust”にオブジェクトとして定義する。

set address "Untrust" "U-server" x.y.z.3 255.255.255.255

3. グローバルIPアドレスを”DMZ”にオブジェクトとして定義する。

set address "DMZ" "D-server" x.y.z.3 255.255.255.255

4. ポリシーを定義する。
インターネット(Untrust)からインターネット(Untrust)へ

set policy id 10 from "Untrust" to "Untrust"  "Any" "U-server" "POP3" nat dst ip 192.168.1.2 permit log 
set policy id 10
set service "SMTP"
exit
set policy id 11 from "Untrust" to "Untrust"  "Any" "U-server" "DNS" nat dst ip 192.168.1.3 permit log 
set policy id 11
exit
set policy id 12 from "Untrust" to "Untrust"  "Any" "U-server" "HTTP" nat dst ip 192.168.1.4 permit log 
set policy id 12
set service "HTTPS"
exit

インターネット(Untrust)から公開サーバ(DMZ)へ

set policy id 20 from "Untrust" to "DMZ"  "Any" "D-server" "POP3" nat dst ip 192.168.1.2 permit log 
set policy id 20
set service "SMTP"
exit
set policy id 21 from "Untrust" to "DMZ"  "Any" "D-server" "DNS" nat dst ip 192.168.1.3 permit log 
set policy id 21
exit
set policy id 22 from "Untrust" to "DMZ"  "Any" "D-server" "HTTP" nat dst ip 192.168.1.4 permit log 
set policy id 22
set service "HTTPS"
exit

内部(Trust)から公開サーバ(DMZ)へ

set policy id 30 from "Trust" to "DMZ"  "Any" "D-server" "POP3" nat dst ip 192.168.1.2 permit log 
set policy id 30
set service "SMTP"
exit
set policy id 31 from "Trust" to "DMZ"  "Any" "D-server" "DNS" nat dst ip 192.168.1.3 permit log 
set policy id 31
exit
set policy id 32 from "Trust" to "DMZ"  "Any" "D-server" "HTTP" nat dst ip 192.168.1.4 permit log 
set policy id 32
set service "HTTPS"
exit

”Untrust”にオブジェクトを作成して"Untrust" to "Untrust"のポリシーを作成しないと"Untrust" to "DMZ"のポリシーが機能しませんでした。

5. グローバルIPアドレスを”DMZ”インターフェースへのスタティックルートとして定義します。

set vrouter "trust-vr"
set route x.y.z.3/32 interface ethernet2
exit

“DMZ”のインターフェースは”ethernet2″になりますので上記の書き方になります。
“Untrust”にあるIPアドレスを転送するのに必要なようです。

= 備考 =
これでPolicy-based Destination NATが機能するはずです。
自分の環境に合わせて書き換えてみてください。
参考になれば幸いです。