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 コマンドを入力します。[Translation hits] フィールドで、ソース 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 インスタンスに誘導するために、パブリック IP アドレスから単一 VRF のプライベート アドレスへの宛先 NAT マッピングを設定する方法を説明します。
必要条件
NAT 向け SD-WAN 導入におけるファイアウォールのしくみを理解します。 NAT の概要を参照してください。
仮想ルーティングと転送インスタンスを理解する。 SD-WAN 展開における仮想ルーティングおよびフォワーディングインスタンスを参照してください。
概要
宛先 NAT とは、ジュニパーネットワークスのデバイスに入るパケットの宛先 IP アドレスを変換したものです。宛先NATは、仮想ホスト(元のIP アドレスで識別)を宛先とするトラフィックを実際のホスト(変換後のIP アドレスで識別)にリダイレクトするために使用されます。
この例では、パブリック IP アドレスを VRF インスタンスの VRF プライベート IP アドレスに変換するために、ファイアウォールが宛先 NAT で設定されています。パブリックIPアドレスは、VRFインスタンスごとに設定できます。 図 2 では、ファイアウォールは VRF-a と VRF-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 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 コマンドを入力します。[Translation hits] フィールドで、宛先 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 の概要を参照してください。
概要
この例では、VRF インスタンスの VRF プライベート IP アドレスを VRF インスタンスのパブリック IP アドレスに変換するために、ファイアウォールが静的 NAT で設定されています。静的 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 コマンドを入力します。[Translation hits] フィールドで、静的 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