VRFルーティングインスタンス用NAT
NATの概要
ネットワークアドレス変換(NAT)は、パケットヘッダー内のネットワークアドレス情報を変更または変換する方法です。NATは、IPv4アドレス枯渇問題を解決するためにRFC 1631で説明されました。NATは、ファイアウォール、トラフィックリダイレクト、負荷分散、ネットワーク移行に役立つツールです。
SD-WAN導入では、ファイアウォールはハブアンドスポークの場所に導入されます。異なるサイトがスポークファイアウォールに接続されています。パケットは、これらのサイトからパブリックインターネットサーバーまたはリモートサイトに送信されます。ハブでは、セキュリティ処理が完了した後、パケットを調べて、宛先がパブリックインターネットサーバーかMPLSネクストホップデバイスかを判断します。宛先がパブリックインターネットサーバーの場合、NATは仮想ルーティングおよび転送(VRF)プライベートIPアドレスをパブリックIPアドレスに変換し、セッションを確立します。同様に、パブリックインターネットサーバーからのトラフィックがVRFプライベートネットワークに到達するには、NATが必要です。
ジュニパーネットワークス デバイスでは、以下のタイプの NAT がサポートされています。
静的 NAT
宛先 NAT
ソースNAT
例:VRFインスタンスのプライベートIPアドレスを別のVRFインスタンスのプライベートIPアドレスに変換するようにソースNATを設定する
この例では、2つのMPLSネットワーク間で送信元NATを設定する方法を説明します。
要件
始める前に
-
NAT向けのSD-WAN導入でファイアウォールがどのように機能するかを理解します。 「NATの概要」を参照してください。
-
仮想ルーティングおよび転送インスタンスについて理解する。 「SD-WAN導入における仮想ルーティングおよび転送インスタンス」を参照してください。
前提条件の例
-
ソフトウェア要件:サポートされているすべてのJunosリリース。
-
ハードウェア要件: サポートされているデバイス上。
概要
送信元 NAT は、ジュニパーネットワークス デバイスから送信されるパケットの送信元 IP アドレスの変換です。送信元NATは、プライベートIPアドレスを持つホストがパブリックネットワークにアクセスできるようにするために使用されます。
この例では、ファイアウォールが2つのMPLSプライベートネットワークを接続して、プライベートIPアドレスを1つのVRFのプライベートIPアドレスから別のVRFのプライベートIPアドレスに変換します。 図1では、スポークファイアウォールは、ハブファイアウォールに接続されたVRF-aおよびVRF-bルーティングインスタンスで構成されています。サイト C とサイト D は、別のスポーク ファイアウォールに接続されています。ハブファイアウォールでは、VRF-aおよびVRF-bルーティングインスタンスの送信元IPアドレス192.168.1.200および192.168.1.201が203.0.113.200および203.0.113.201に変換されます。
設定
手順
CLIクイックコンフィグレーション
この例をすばやく設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを [edit] 階層レベルでCLIにコピー アンド ペーストして、設定モードから commit を入力します。
set routing-instances VRF-a instance-type vrf set routing-instances VRF-a route-distinguisher 30:200 set routing-instances VRF-a vrf-target target:100:100 set routing-instances VRF-a vrf-table-label set routing-instances VRF-b instance-type vrf set routing-instances VRF-b route-distinguisher 40:200 set routing-instances VRF-b vrf-target target:200:100 set routing-instances VRF-b vrf-table-label set routing-instances VRF-a1 instance-type vrf set routing-instances VRF-a1 route-distinguisher 60:200 set routing-instances VRF-a1 vrf-target target:300:100 set routing-instances VRF-a1 vrf-table-label set routing-instances VRF-b1 instance-type vrf set routing-instances VRF-b1 route-distinguisher 50:200 set routing-instances VRF-b1 vrf-target target:400:100 set routing-instances VRF-b1 vrf-table-label set security nat source pool vrf-a_p address 203.0.113.200 set security nat source rule-set vrf-a_rs from routing-instance VRF-a set security nat source rule-set vrf-a_rs to routing-instance VRF-a1 set security nat source rule-set vrf-a_rs rule rule1 match source-address 192.168.1.200 set security nat source rule-set vrf-a_rs rule rule1 then source-nat pool vrf-a_p set security nat source pool vrf-b_p address 203.0.113.201 set security nat source rule-set vrf-b_rs from routing-instance VRF-b set security nat source rule-set vrf-b_rs to routing-instance VRF-b1 set security nat source rule-set vrf-b_rs rule rule2 match source-address 192.168.1.201 set security nat source rule-set vrf-b_rs rule rule2 then source-nat pool vrf-b_p
ステップバイステップの手順
次の例では、設定階層のさまざまなレベルに移動する必要があります。
送信元 NAT マッピングを設定するには:
レイヤー3 VPNでは、ネットワーク内でルートを配布するためのVRFテーブルが必要です。VRFインスタンスを作成し、値 vrfを指定します。
[edit routing-instances] user@host#set VRF-a instance-type vrf user@host#set VRF-b instance-type vrf user@host#set VRF-a1 instance-type vrf user@host#set VRF-b1 instance-type vrf
ルーティングインスタンスにルート識別子を割り当てます。
[edit routing-instances] user@host#set VRF-a route-distinguisher 30:200 user@host#set VRF-b route-distinguisher 40:200 user@host#set VRF-a1 route-distinguisher 60:200 user@host#set VRF-b1 route-distinguisher 50:200
すべてのルートをインポートまたはエクスポートするためのコミュニティポリシーを作成します。
[edit routing-instances] user@host#set VRF-a vrf-target target:100:100 user@host#set VRF-b vrf-target target:200:100 user@host#set VRF-a1 vrf-target target:300:100 user@host#set VRF-b1 vrf-target target:400:100
VRF内のすべてのルートに1つのVPNラベルを割り当てます。
[edit routing-instances] user@host#set VRF-a vrf-table-label user@host#set VRF-a1 vrf-table-label user@host#set VRF-b vrf-table-label user@host#set VRF-b1 vrf-table-label
ソース NAT プールを作成します。
[edit security nat source] user@host#set vrf-a_p address 203.0.113.200 user@host#set vrf-b_p address 203.0.113.201
ソース NAT ルール セットを作成します。
[edit security nat source] user@host#set rule-set vrf-a_rs from routing-instance VRF-a user@host#set rule-set vrf-a_rs to routing-instance VRF-a1 user@host#set rule-set vrf-b_rs from routing-instance VRF-b user@host#set rule-set vrf-b_rs to routing-instance VRF-b1
パケットを照合し、送信元IPアドレスを送信元NATプール内のIPアドレスに変換するルールを設定します。
[edit security nat source] user@host# set rule-set vrf-a_rs rule rule1 match source-address 192.168.1.200 user@host# set rule-set vrf-a_rs rule rule1 then source-nat pool vrf-a_p user@host# set rule-set vrf-b_rs rule rule2 match source-address 192.168.1.201 user@host# set rule-set vrf-b_rs rule rule2 then source-nat pool vrf-b_p
結果
設定モードから、 show security nat および show routing-instances コマンドを入力して設定を確認します。出力に意図した設定が表示されない場合は、この例の設定手順を繰り返して修正します。
[edit]
user@host# show security nat
source {
pool vrf-a_p {
address {
203.0.113.200/32;
}
}
pool vrf-b_p {
address {
203.0.113.201/32;
}
}
rule-set vrf-a_rs {
from routing-instance VRF-a;
to routing-instance VRF-a1;
rule rule1 {
match {
source-address 192.168.1.200/32;
}
then {
source-nat {
pool {
vrf-a_p;
}
}
}
}
}
rule-set vrf-b_rs {
from routing-instance VRF-b;
to routing-instance VRF-b1;
rule rule2 {
match {
source-address 192.168.1.201/32;
}
then {
source-nat {
pool {
vrf-b_p;
}
}
}
}
}
}
[edit]
user@host# show routing-instances
VRF-a {
instance-type vrf;
route-distinguisher 30:200;
vrf-target target:100:100;
vrf-table-label;
}
VRF-a1 {
instance-type vrf;
route-distinguisher 60:200;
vrf-target target:300:100;
vrf-table-label;
}
VRF-b {
instance-type vrf;
route-distinguisher 40:200;
vrf-target target:200:100;
vrf-table-label;
}
VRF-b1 {
instance-type vrf;
route-distinguisher 50:200;
vrf-target target:400:100;
vrf-table-label;
}
デバイスの設定が完了したら、設定モードから commit を入力します。
検証
送信元NATルールの使用状況の確認
目的
送信元NATルールに一致するトラフィックがあることを確認します。
アクション
動作モードから、 show security nat source rule all コマンドを入力します。変換ヒットフィールドで、送信元NATルールに一致するトラフィックがあるかどうかを確認します。
user@host>show security nat source rule all
Total rules: 2
Total referenced IPv4/IPv6 ip-prefixes: 2/0
source NAT rule: rule1 Rule-set: vrf-a_rs
Rule-Id : 1
Rule position : 1
From routing instance : VRF-a
To routing instance : VRF-a1
Match
Source addresses : 192.168.1.200 - 192.168.1.200
Action : vrf-a_p
Persistent NAT type : N/A
Persistent NAT mapping type : address-port-mapping
Inactivity timeout : 0
Max session number : 0
Translation hits : 0
Successful sessions : 0
Failed sessions : 0
Number of sessions : 0
source NAT rule: rule2 Rule-set: vrf-b_rs
Rule-Id : 2
Rule position : 2
From routing instance : VRF-b
To routing instance : VRF-b1
Match
Source addresses : 192.168.1.201 - 192.168.1.201
Action : vrf-b_p
Persistent NAT type : N/A
Persistent NAT mapping type : address-port-mapping
Inactivity timeout : 0
Max session number : 0
Translation hits : 0
Successful sessions : 0
Failed sessions : 0
Number of sessions : 0
例:パブリック IP アドレスを VRF インスタンスの VRF の単一プライベート IP アドレスに変換する宛先 NAT の設定
この例では、パケットを正しいVRFインスタンスに送信するために、単一のVRFのプライベートアドレスへのパブリックIPアドレスの宛先NATマッピングを設定する方法を説明します。
要件
NAT向けのSD-WAN導入でファイアウォールがどのように機能するかを理解します。 「NATの概要」を参照してください。
仮想ルーティングおよび転送インスタンスについて理解する。 「SD-WAN導入における仮想ルーティングおよび転送インスタンス」を参照してください。
概要
宛先 NAT は、ジュニパーネットワークスのデバイスに入るパケットの宛先 IP アドレスの変換です。宛先 NAT は、仮想ホスト(元の宛先 IP アドレスで識別)宛てのトラフィックを実際のホスト(変換された宛先 IP アドレスで識別)にリダイレクトするために使用されます。
この例では、ファイアウォールが宛先 NAT で設定され、パブリック IP アドレスを VRF インスタンスの VRF プライベート IP アドレスに変換します。パブリックIPアドレスは、VRFインスタンスごとに設定できます。 図2では、ファイアウォールがVRF-aとVRF-bの2つのVRFインスタンスで構成されています。ファイアウォールは、パブリックIPアドレスをVRFインスタンスのプライベートIPアドレスに変換します。
設定
手順
CLIクイックコンフィグレーション
この例を迅速に設定するには、以下のコマンドをコピーしてテキストファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを [edit] 階層レベルでCLIにコピーアンドペーストして、設定モードから commit を入力します。
set routing-instances VRF-a instance-type vrf set routing-instances VRF-a route-distinguisher 30:200 set routing-instances VRF-a vrf-target target:100:100 set routing-instances VRF-a vrf-table-label set routing-instances VRF-b instance-type vrf set routing-instances VRF-b route-distinguisher 40:200 set routing-instances VRF-b vrf-target target:200:100 set routing-instances VRF-b vrf-table-label set security nat destination pool vrf-a_p routing-instance VRF-a set security nat destination pool vrf-a_p address 192.168.1.200 set security nat destination rule-set rs from interface ge-0/0/0 set security nat destination rule-set rs rule vrf-a_r match destination-address 203.0.113.200 set security nat destination rule-set rs rule vrf-a_r then destination-nat pool vrf-a_p set security nat destination pool vrf-b_p routing-instance VRF-b set security nat destination pool vrf-b_p address 192.168.1.201 set security nat destination rule-set rs from interface ge-0/0/1 set security nat destination rule-set rs rule vrf-b_r match destination-address 203.0.113.201 set security nat destination rule-set rs rule vrf-b_r then destination-nat pool vrf-b_p
ステップバイステップの手順
次の例では、設定階層のさまざまなレベルに移動する必要があります。
単一VRFの宛先NATマッピングを設定するには:
レイヤー3 VPNでは、ネットワーク内でルートを配布するためのVRFテーブルが必要です。VRFインスタンスを作成し、値 vrfを指定します。
[edit routing-instances] user@host#set VRF-a instance-type vrf user@host#set VRF-b instance-type vrf
ルーティングインスタンスにルート識別子を割り当てます。
[edit routing-instances] user@host#set VRF-a route-distinguisher 30:200 user@host#set VRF-b route-distinguisher 40:200
すべてのルートをインポートまたはエクスポートするためのコミュニティポリシーを作成します。
[edit routing-instances] user@host#set VRF-a vrf-target target:100:100 user@host#set VRF-b vrf-target target:200:100
VRF内のすべてのルートに1つのVPNラベルを割り当てます。
[edit routing-instances] user@host#set VRF-a vrf-table-label user@host#set VRF-b vrf-table-label
宛先 NAT IP アドレス プールを指定します。
[edit security nat destination] user@host# set pool vrf-a_p address 192.168.1.200 user@host# set pool vrf-b_p address 192.168.1.201
宛先プールにルーティングインスタンスを割り当てます。
[edit security nat destination] user@host# set pool vrf-a_p routing-instance VRF-a user@host# set pool vrf-b_p routing-instance VRF-b
宛先 NAT ルール セットを作成します。
[edit security nat destination] user@host# set rule-set rs from interface ge-0/0/0 user@host# set rule-set rs from interface ge-0/0/1
パケットを照合し、宛先IPアドレスを宛先NAT IPアドレスプール内のIPアドレスに変換するルールを設定します。
[edit security nat destination] user@host# set rule-set rs rule vrf-a_r match destination-address 203.0.113.200 user@host# set rule-set rs rule vrf-a_r then destination-nat pool vrf-a_p user@host# set rule-set rs rule vrf-b_r match destination-address 203.0.113.201 user@host# set rule-set rs rule vrf-b_r then destination-nat pool vrf-b_p
結果
設定モードから、 show security nat および show routing-instances コマンドを入力して設定を確認します。出力に意図した設定が表示されない場合は、この例の設定手順を繰り返して修正します。
[edit]
user@host# show security nat
destination {
pool vrf-a_p {
routing-instance {
VRF-a;
}
address 192.168.1.200/32;
}
pool vrf-b_p {
routing-instance {
VRF-b;
}
address 192.168.1.201/32;
}
rule-set rs {
from interface [ ge-0/0/0.0 ge-0/0/1.0 ];
rule vrf-a_r {
match {
destination-address 203.0.113.200/32;
}
then {
destination-nat {
pool {
vrf-a_p;
}
}
}
}
rule vrf-b_r {
match {
destination-address 203.0.113.201/32;
}
then {
destination-nat {
pool {
vrf-b_p;
}
}
}
}
}
}
[edit]
user@host# show routing-instances
VRF-a {
instance-type vrf;
route-distinguisher 30:200;
vrf-target target:100:100;
vrf-table-label;
}
VRF-b {
instance-type vrf;
route-distinguisher 40:200;
vrf-target target:200:100;
vrf-table-label;
}
デバイスの設定が完了したら、設定モードから commit を入力します。
検証
宛先 NAT ルールの使用状況の確認
目的
宛先 NAT ルールに一致するトラフィックがあることを確認します。
アクション
動作モードから、 show security nat destination rule all コマンドを入力します。変換ヒットフィールドで、宛先NATルールに一致するトラフィックがあるかどうかを確認します。
user@host> show security nat destination rule all
Total destination-nat rules: 2
Total referenced IPv4/IPv6 ip-prefixes: 2/0
Destination NAT rule: vrf-a_r Rule-set: rs
Rule-Id : 1
Rule position : 1
From interface : ge-0/0/0.0
: ge-0/0/1.0
Destination addresses : 203.0.113.200 - 203.0.113.200
Action : vrf-a_p
Translation hits : 0
Successful sessions : 0
Failed sessions : 0
Number of sessions : 0
Destination NAT rule: vrf-b_r Rule-set: rs
Rule-Id : 2
Rule position : 2
From interface : ge-0/0/0.0
: ge-0/0/1.0
Destination addresses : 203.0.113.201 - 203.0.113.201
Action : vrf-b_p
Translation hits : 0
Successful sessions : 0
Failed sessions : 0
Number of sessions : 0
例:VRFインスタンスのプライベートIPアドレスをパブリックIPアドレスに変換するスタティックNATの設定
この例では、VRFのシングルプライベートIPアドレスとパブリックIPアドレスの静的NATマッピングを設定する方法を説明します。
要件
NAT向けのSD-WAN導入でファイアウォールがどのように機能するかを理解します。 「NATの概要」を参照してください。
概要
この例では、ファイアウォールを静的 NAT で設定し、VRF インスタンスの VRF プライベート IP アドレスを VRF インスタンスのパブリック IP アドレスに変換します。静的NATは、送信元NATと宛先NATに適用できます。 図3では、ファイアウォールはVRF-aとVFR-bの2つのVRFインスタンスで構成されています。ファイアウォールは、VRFインスタンスのプライベートIPアドレスをパブリックIPアドレスに変換します。
設定
手順
CLIクイックコンフィグレーション
この例を迅速に設定するには、以下のコマンドをコピーしてテキストファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを [edit] 階層レベルでCLIにコピーアンドペーストして、設定モードから commit を入力します。
set routing-instances VRF-a instance-type vrf set routing-instances VRF-a route-distinguisher 30:200 set routing-instances VRF-a vrf-target target:100:100 set routing-instances VRF-a vrf-table-label set routing-instances VRF-b instance-type vrf set routing-instances VRF-b route-distinguisher 40:200 set routing-instances VRF-b vrf-target target:200:100 set routing-instances VRF-b vrf-table-label set security nat static rule-set rs from interface ge-0/0/0 set security nat static rule-set rs rule vrf-a_r match static-address 203.0.113.200 set security nat static rule-set rs rule vrf-a_r then static-nat prefix 192.168.1.200 set security nat static rule-set rs rule vrf-a_r then static-nat prefix routing-instance VRF-a set security nat static rule-set rs from interface ge-0/0/1 set security nat static rule-set rs rule vrf-b_r match static-address 203.0.113.201 set security nat static rule-set rs rule vrf-b_r then static-nat prefix 192.168.1.201 set security nat static rule-set rs rule vrf-b_r then static-nat prefix routing-instance VRF-b
ステップバイステップの手順
次の例では、設定階層のさまざまなレベルに移動する必要があります。
単一VRFのIPアドレスに静的NATマッピングを設定するには:
レイヤー3 VPNでは、ネットワーク内でルートを配布するためのVRFテーブルが必要です。VRFインスタンスを作成し、値 vrfを指定します。
[edit routing-instances] user@host#set VRF-a instance-type vrf user@host#set VRF-b instance-type vrf
ルーティングインスタンスにルート識別子を割り当てます。
[edit routing-instances] user@host#set VRF-a route-distinguisher 30:200 user@host#set VRF-b route-distinguisher 40:200
すべてのルートをインポートまたはエクスポートするためのコミュニティポリシーを作成します。
[edit routing-instances] user@host#set VRF-a vrf-target target:100:100 user@host#set VRF-b vrf-target target:200:100
VRF内のすべてのルートに1つのVPNラベルを割り当てます。
[edit routing-instances] user@host#set VRF-a vrf-table-label user@host#set VRF-b vrf-table-label
静的 NAT ルール セットを作成します。
[edit security nat static] user@host# set rule-set rs from interface ge-0/0/0 user@host# set rule-set rs from interface ge-0/0/1
パケットを一致させ、パケット内の宛先アドレスをプライベートIPアドレスに変換するルールを設定します。
[edit security nat static] user@host# set rule-set rs rule vrf-a_r match static-address 203.0.113.200 user@host# set rule-set rs rule vrf-a_r then static-nat prefix 192.168.1.200 user@host# set rule-set rs rule vrf-a_r then static-nat prefix routing-instance VRF-a user@host# set rule-set rs rule vrf-b_r match static-address 203.0.113.201 user@host# set rule-set rs rule vrf-b_r then static-nat prefix 192.168.1.201 user@host# set rule-set rs rule vrf-b_r then static-nat prefix routing-instance VRF-b
結果
設定モードから、 show security nat および show routing-instances コマンドを入力して設定を確認します。出力に意図した設定が表示されない場合は、この例の設定手順を繰り返して修正します。
[edit]
user@host# show security nat
static {
rule-set rs {
from interface [ ge-0/0/0.0 ge-0/0/1.0 ];
rule vrf-a_r {
match {
destination-address 203.0.113.200/32;
}
then {
static-nat {
prefix {
192.168.1.200/32;
routing-instance VRF-a;
}
}
}
}
rule vrf-b_r {
match {
destination-address 203.0.113.201/32;
}
then {
static-nat {
prefix {
192.168.1.201/32;
routing-instance VRF-b;
}
}
}
}
}
}
[edit]
user@host# show routing-instances
VRF-a {
instance-type vrf;
route-distinguisher 30:200;
vrf-target target:100:100;
vrf-table-label;
}
VRF-b {
instance-type vrf;
route-distinguisher 40:200;
vrf-target target:200:100;
vrf-table-label;
}
デバイスの設定が完了したら、設定モードから commit を入力します。
検証
静的 NAT ルールの使用状況の確認
目的
静的 NAT ルールに一致するトラフィックがあることを確認します。
アクション
動作モードから、 show security nat static rule コマンドを入力します。変換ヒットフィールドで、静的NATルールに一致するトラフィックがあるかどうかを確認します。
user@host> show security nat static rule all
Total static-nat rules: 2
Total referenced IPv4/IPv6 ip-prefixes: 4/0
Static NAT rule: vrf-a_r Rule-set: rs
Rule-Id : 1
Rule position : 1
From interface : ge-0/0/0.0
: ge-0/0/1.0
Destination addresses : 203.0.113.200
Host addresses : 192.168.1.200
Netmask : 32
Host routing-instance : VRF-a
Translation hits : 0
Successful sessions : 0
Failed sessions : 0
Number of sessions : 0
Static NAT rule: vrf-b_r Rule-set: rs
Rule-Id : 2
Rule position : 2
From interface : ge-0/0/0.0
: ge-0/0/1.0
Destination addresses : 203.0.113.201
Host addresses : 192.168.1.201
Netmask : 32
Host routing-instance : VRF-b
Translation hits : 0
Successful sessions : 0
Failed sessions : 0
Number of sessions : 0