NAT設定

動作確認バージョン:vSRX Version15.1X49-D105.1
vSRX は、NAT(ネットワークアドレス変換)設定が可能です。ここでは、vSRXで送信元IPアドレスを変換する機能ならびに、宛先IPアドレスを変換する機能の設定例を紹介します。

送信元IPアドレスのNAT

特定の送信元IPアドレスからの通信を指定して送信元IPアドレスをNATします。

サンプル設定のシナリオ

  • trustゾーンからuntrustゾーン向けのパケットに対してNATしたい
  • 送信元IPアドレス192.168.2.202を192.168.3.200に変換したい
vsrx_nat_fig1

シナリオにおける設定のながれ

1.NAT変換に利用するプール名を POOL1 に設定し変換アドレスとして 192.168.3.200 を設定
2.trustゾーンからuntrustゾーンに通信するパケットに対してNATを設定
3.送信元NATに利用するルールセットを RULE 、ルールを RULE1-1 として設定
4.変換対象になる送信元IPアドレス(192.168.2.0/24)を設定
5.変換後の送信元IPアドレスとして POOL1 をルールに適用

注釈

  • no-translation」コマンドについては、ポート番号を変更しないでNATする設定です。ポート番号を変更しない場合、IPアドレスがすでに利用されていると使えない状態になりますのでNAT POOLアドレスを充分な数をご準備ください。アドレスが準備できない場合は、送信元IPアドレスのNAPT をご参照いただきご検討ください。
  • proxy-arp」コマンドについては、送信元IPアドレスを変換する際に、インターフェイスに割り当てられていないIPアドレスで変換すると、対向装置がARP解決要求した時に、応答しない状態が発生し通信できなくなる状況が発生します。それを回避するために、実際に設定されていないIPアドレスのARP要求に応答するため設定をしています。

CLIにて入力するコマンド

user01@vSRX-02# set security nat source pool POOL1 address 192.168.3.200/32
user01@vSRX-02# set security nat source pool POOL1 port no-translation
user01@vSRX-02# set security nat source rule-set RULE from zone trust
user01@vSRX-02# set security nat source rule-set RULE to zone untrust
user01@vSRX-02# set security nat source rule-set RULE rule RULE1-1 match source-address 192.168.2.0/24
user01@vSRX-02# set security nat source rule-set RULE rule RULE1-1 then source-nat pool POOL1
user01@vSRX-02# set security nat proxy-arp interface ge-0/0/2.0 address 192.168.3.200/32

正しく設定が完了したときのコンフィグレーションは次のとおりです。

security{
       nat {
           source {
               pool POOL1 {
                   address {
                       192.168.3.200/32;
                   }
                   port {
                       no-translation;
                   }
               }
               rule-set RULE {
                   from zone trust;
                   to zone untrust;
                   rule RULE1-1 {
                       match {
                           source-address 192.168.2.0/24;
                       }
                       then {
                           source-nat {
                               pool {
                                   POOL1;
                               }
                           }
                       }
                   }
               }
           }
           proxy-arp {
               interface ge-0/0/2.0 {
                   address {
                       192.168.3.200/32;
                   }
               }
           }
       }
}

動作確認結果

検証構成図の仮想サーバ(192.168.2.202)から仮想サーバ(192.168.3.203)宛ての通信を実施した際にvSRX-02で192.168.3.200に変換されていることが確認できますので、送信元IPアドレスに対するNATが機能していることを確認できました。

仮想サーバ(192.168.2.202)から仮想サーバ(192.168.3.203)宛の通信確認結果

user01@vRouter-02:~$ ping 192.168.3.203 count 5
PING 192.168.3.203 (192.168.3.203) 56(84) bytes of data.
64 bytes from 192.168.3.203: icmp_seq=1 ttl=63 time=3.97 ms
64 bytes from 192.168.3.203: icmp_seq=2 ttl=63 time=1.42 ms
64 bytes from 192.168.3.203: icmp_seq=3 ttl=63 time=1.25 ms
64 bytes from 192.168.3.203: icmp_seq=4 ttl=63 time=1.38 ms
64 bytes from 192.168.3.203: icmp_seq=5 ttl=63 time=1.25 ms

--- 192.168.3.203 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4004ms
rtt min/avg/max/mdev = 1.250/1.856/3.971/1.060 ms

vSRXでNAT動作の確認結果

user01@vSRX-02> show security flow session
Session ID: 107, Policy name: default-permit/5, Timeout: 1786, Valid
  In: 192.168.2.202/33606 --> 192.168.3.203/22;tcp, Conn Tag: 0x0, If: ge-0/0/1.0, Pkts: 33, Bytes: 4127,
  Out: 192.168.3.203/22 --> 192.168.3.200/33606;tcp, Conn Tag: 0x0, If: ge-0/0/2.0, Pkts: 29, Bytes: 4979,
Total sessions: 1

宛先IPアドレスのNAT

特定の宛先IPアドレスへの通信に対して宛先IPアドレスをNATします。

サンプル設定のシナリオ

  • untrustゾーンから入力するパケットに対してNATしたい
  • 192.168.3.102宛ての通信は192.168.2.202にNATして通信させたい
vsrx_nat_fig2

シナリオにおける設定のながれ

1.NAT変換に利用するプール名を POOL1 に設定し変換アドレスとして 192.168.2.202 を設定
2.untrustゾーンからのパケットに対してNATを設定
2.宛先NATに利用するルールセットを RULE1 、ルールを RULE1-1 として設定
3.変換対象になる宛先IPアドレスを設定
4.変換後の宛先IPアドレスとして POOL1 を設定

CLIにて入力するコマンド

user01@vSRX-02# set security nat destination pool POOL1 address 192.168.2.202/32
user01@vSRX-02# set security nat destination rule-set RULE1 from zone untrust
user01@vSRX-02# set security nat destination rule-set RULE1 rule RULE1-1 match destination-address 192.168.3.102/32
user01@vSRX-02# set security nat destination rule-set RULE1 rule RULE1-1 then destination-nat pool POOL1

正しく設定が完了したときのコンフィグレーションは次のとおりです。

security {
        nat {
            destination {
                pool POOL1 {
                    address 192.168.2.202/32;
                }
                rule-set RULE1 {
                    from zone untrust;
                    rule RULE1-1 {
                        match {
                            destination-address 192.168.3.102/32;
                        }
                        then {
                            destination-nat {
                                pool {
                                    POOL1;
                                }
                            }
                        }
                    }
                }
            }
        }
}

動作確認結果

検証構成図の仮想サーバ(192.168.3.203)からvSRX-02(192.168.3.102)宛ての通信がNATされて192.168.2.202に対して通信が成功しておりますので、宛先IPアドレスに対するNATが機能していることが確認できました。

仮想サーバ(192.168.3.203)からvSRX-02(192.168.3.102)への通信結果

vRouter-03:~$ ssh user01@192.168.3.102
Welcome to Brocade Vyatta Network OS

user01@192.168.3.102's password:
Welcome to Brocade Vyatta Network OS
Version:      5.2R4
Description:  Brocade Vyatta Network OS 5600 5.2R4 Standard
Last login: Mon Sep 18 09:46:49 2017 from 192.168.2.102
user01@vRouter-02:~$

vSRX-02でNAT動作の確認結果

user01@vSRX-02> show security flow session
Session ID: 2026, Policy name: POL1/6, Timeout: 1800, Valid
  In: 192.168.3.203/56922 --> 192.168.3.102/22;tcp, Conn Tag: 0x0, If: ge-0/0/2.0, Pkts: 118, Bytes: 9159,
  Out: 192.168.2.202/22 --> 192.168.3.203/56922;tcp, Conn Tag: 0x0, If: ge-0/0/1.0, Pkts: 97, Bytes: 14543,
Total sessions: 1

user01@vSRX-02>

送信元IPアドレスのNAPT

特定の送信元IPアドレスからの通信に対して送信元IPアドレスをNAPTします。

サンプル設定のシナリオ

  • trustゾーンからuntrustゾーン向けのパケットに対してNAPTしたい
  • 送信元IPアドレス192.168.2.202を出力インターフェイスのIPアドレスに変換したい
vsrx_nat_fig3

シナリオにおける設定のながれ

1.trustゾーンからuntrustゾーンに対してNAPTを設定
2.送信元IPを変換するためのNAPTルールセットを RULE1、ルールを RULE1-1 として設定
3.NAPT対象の送信元IPアドレス(192.168.2.202/32)を設定
4.変換後のIPアドレスを 出力インターフェイス のアドレスに設定

CLIにて入力するコマンド

user01@vSRX-02# set security nat source rule-set RULE1 from zone trust
user01@vSRX-02# set security nat source rule-set RULE1 to zone untrust
user01@vSRX-02# set security nat source rule-set RULE1 rule RULE1-1 match source-address 192.168.2.202/32
user01@vSRX-02# set security nat source rule-set RULE1 rule RULE1-1 then source-nat interface

正しく設定が完了したときのコンフィグレーションは次のとおりです。

security {
       nat {
           source {
               rule-set RULE1 {
                   from zone trust;
                   to zone untrust;
                   rule RULE1-1 {
                       match {
                           source-address 192.168.2.202/32;
                       }
                       then {
                           source-nat {
                               interface;
                           }
                       }
                   }
               }
           }
       }
}

動作確認結果

検証構成図の仮想サーバ(192.168.2.202)から192.168.3.203宛ての通信を実施した際にvSRX-02で192.168.3.102に変換されていることが確認できますので、送信元IPアドレス(192.168.2.202)に対するNAPT機能が確認できました。

仮想サーバ(192.168.2.202)から仮想サーバ(192.168.3.203)への通信結果

vRouter-02:~$ ping 192.168.3.203 count 5
PING 192.168.3.203 (192.168.3.203) 56(84) bytes of data.
64 bytes from 192.168.3.203: icmp_seq=1 ttl=63 time=3.59 ms
64 bytes from 192.168.3.203: icmp_seq=2 ttl=63 time=1.13 ms
64 bytes from 192.168.3.203: icmp_seq=3 ttl=63 time=0.807 ms
64 bytes from 192.168.3.203: icmp_seq=4 ttl=63 time=1.21 ms
64 bytes from 192.168.3.203: icmp_seq=5 ttl=63 time=1.33 ms

--- 192.168.3.203 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4003ms
rtt min/avg/max/mdev = 0.807/1.619/3.598/1.004 ms
vRouter-02:~$

vSRX-02でNAPT状態の確認結果

user01@vSRX-02> show security flow session
Session ID: 1443, Policy name: default-permit/5, Timeout: 1798, Valid
  In: 192.168.2.202/33578 --> 192.168.3.203/22;tcp, Conn Tag: 0x0, If: ge-0/0/1.0, Pkts: 119, Bytes: 9067,
  Out: 192.168.3.203/22 --> 192.168.3.102/17879;tcp, Conn Tag: 0x0, If: ge-0/0/2.0, Pkts: 101, Bytes: 15447,
Total sessions: 1

user01@vSRX-02>

宛先IPアドレスとポート番号のNAPT

特定の宛先IPアドレスとポート番号に該当する通信を指定したIPアドレスとポート番号へ変換するNAPT設定を行います。

サンプル設定のシナリオ

  • 192.168.3.203から宛先192.168.3.102の TCP:2222 宛ての通信を192.168.1.201の TCP:22 宛ての通信に変換したい
  • untrustゾーンから入力するパケットに対してNAPTしたい
vsrx_nat_fig4

シナリオにおける設定のながれ

1.NAT変換で利用するプール名を POOL2 に設定し変換アドレスとして 192.168.1.201:22 を設定
2.宛先NATルールセットを RULE1 として設定
3.untrustゾーンからのパケットに対してNAPTを設定
4.アドレス変換対象であるIPアドレス(192.168.3.102)とポート2222番あてのNAPTルールを RULE1-1 として設定
5.変換後の宛先IPアドレスとして POOL2 を設定

CLIにて入力するコマンド

user01@vSRX-02# set security nat destination pool POOL2 address 192.168.1.201/32 port 22
user01@vSRX-02# set security nat destination rule-set RULE1 from zone untrust
user01@vSRX-02# set security nat destination rule-set RULE1 rule RULE1-1 match destination-address 192.168.3.102/32
user01@vSRX-02# set security nat destination rule-set RULE1 rule RULE1-1 match destination-port 2222
user01@vSRX-02# set security nat destination rule-set RULE1 rule RULE1-1 then destination-nat pool POOL2

正しく設定が完了したときのコンフィグレーションは次のとおりです。

security {
       nat {
           destination {
             pool POOL2 {
                   address 192.168.1.201/32 port 22;
             }
             rule-set RULE1 {
                 from zone untrust;
                 rule RULE1-1 {
                       match {
                           destination-address 192.168.3.102/32;
                           destination-port {
                               2222;
                           }
                       }
                       then {
                           destination-nat {
                               pool {
                                   POOL2;
                               }
                           }
                       }
                   }
             }
           }
       }
}

動作確認結果

検証構成図の仮想サーバ(192.168.3.203)からvSRX-02(192.168.3.102)ポート2222番宛ての通信がNAPTされて 192.168.1.201ポート22番に対してSSH通信が成功しておりますので、宛先IPアドレスとポート番号のNAPTが機能していることが確認できました。

仮想サーバ(192.168.3.203)から仮想サーバ(192.168.1.201)への通信結果

user01@vRouter-03:~$ ssh user01@192.168.3.102 port 2222
Welcome to Brocade Vyatta Network OS

user01@192.168.3.102's password:
Welcome to Brocade Vyatta Network OS
Version:      5.2R4
Description:  Brocade Vyatta Network OS 5600 5.2R4 Standard
Last login: Mon Sep 18 15:49:53 2017 from 192.168.3.203
user01@vRouter-01:~$

vSRX-02でNAPT動作の確認結果

user01@vSRX-02> show security flow session
Session ID: 459, Policy name: POL1/6, Timeout: 1800, Valid
  In: 192.168.3.203/37106 --> 192.168.3.102/2222;tcp, Conn Tag: 0x0, If: ge-0/0/2.0, Pkts: 201, Bytes: 13403,
  Out: 192.168.1.201/22 --> 192.168.3.203/37106;tcp, Conn Tag: 0x0, If: ge-0/0/0.0, Pkts: 179, Bytes: 27191,
Total sessions: 2

user01@vSRX-02>

宛先NAPTと送信元IPアドレスNAPTの組み合わせ設定

サンプル設定のシナリオ

  • 192.168.3.203から宛先192.168.3.102のTCPポート2222番あての通信は192.168.2.202を宛先にしたい
  • 192.168.3.203から宛先192.168.3.102のTCPポート22番あての通信は192.168.1.201を宛先にしたい
  • インターフェイス(ge-0/0/2)に入力するトラフィックに対して宛先NATをしたい
  • 送信元IPアドレス192.168.3.0/24を送信元にするパケットをNAPTしたい
  • trustゾーンの各インターフェイス(ge-0/0/0,ge-0/0/1)から出力されるパケットの送信元IPアドレスをインターフェイスアドレスに変換したい
vsrx_nat_fig5

シナリオにおける設定のながれ

  • 送信元IPアドレスに対するNAPT設定
1.untrustゾーンからtrustゾーンに対してNAPTを行う設定
2.送信元IPを変換するためのルールセット名を SNAT_RULE に設定
3.NAPT対象のIPアドレス(192.168.3.0/24)を SNAT_RULE1 に設定
4.変換後のIPアドレスを出力インターフェイスアドレスに変換
  • 宛先IPアドレスとポート番号の組み合わせのNAT設定
1.untrustゾーンからtrustゾーンに対してNATを行う設定
2.NAT変換で使用するプール POOL1 に192.168.1.201 ポート22 を設定
3.NAT変換で使用するプール POOL2 に192.168.2.202 ポート22 を設定
4.アドレス変換対象であるIPアドレス(192.168.3.102)とポート22番あてのNATルールを DNAT_RULE1 で設定
5.変換後の宛先IPアドレスは、 POOL1 を使用
6.アドレス変換対象であるIPアドレス(192.168.3.102)とポート2222番あてのNATルールを DNAT_RULE2 で設定
7.変換後の宛先IPアドレスは、POOL2 を使用

CLIにて入力するコマンド

送信元IPアドレスに対するNAPT設定

user01@vSRX-02# set security nat source rule-set SNAT_RULE from zone untrust
user01@vSRX-02# set security nat source rule-set SNAT_RULE to zone trust
user01@vSRX-02# set security nat source rule-set SNAT_RULE rule SNAT_RULE1 match source-address 192.168.3.0/24
user01@vSRX-02# set security nat source rule-set SNAT_RULE rule SNAT_RULE1 then source-nat interface

宛先IPアドレスとポート番号の組み合わせのNAT設定

user01@vSRX-02# set security nat destination pool POOL1 address 192.168.1.201/32 port 22
user01@vSRX-02# set security nat destination pool POOL2 address 192.168.2.202/32 port 22
user01@vSRX-02# set security nat destination rule-set DNAT_RULE from zone untrust
user01@vSRX-02# set security nat destination rule-set DNAT_RULE rule DNAT_RULE1 match destination-address 192.168.3.102/32
user01@vSRX-02# set security nat destination rule-set DNAT_RULE rule DNAT_RULE1 match destination-port 22
user01@vSRX-02# set security nat destination rule-set DNAT_RULE rule DNAT_RULE1 then destination-nat pool POOL1
user01@vSRX-02# set security nat destination rule-set DNAT_RULE rule DNAT_RULE2 match destination-address 192.168.3.102/32
user01@vSRX-02# set security nat destination rule-set DNAT_RULE rule DNAT_RULE2 match destination-port 2222
user01@vSRX-02# set security nat destination rule-set DNAT_RULE rule DNAT_RULE2 then destination-nat pool POOL2

正しく設定が完了したときのコンフィグレーションは次のとおりです。

送信元IPアドレスに対するNAPT設定

security {
        nat {
             source {
                 rule-set SNAT_RULE {
                     from zone untrust;
                     to zone trust;
                     rule SNAT_RULE1 {
                         match {
                             source-address 192.168.3.0/24;
                         }
                         then {
                             source-nat {
                                 interface;
                             }
                         }
                     }
                 }
             }
        }
}

宛先IPアドレスとポート番号の組み合わせのNAT設定

security {
        nat {
            destination {
                pool POOL1 {
                    address 192.168.1.201/32 port 22;
                }
                pool POOL2 {
                    address 192.168.2.202/32 port 22;
                }
                rule-set DNAT_RULE {
                from zone untrust;
                    rule DNAT_RULE1 {
                        match {
                            destination-address 192.168.3.102/32;
                            destination-port {
                                22;
                            }
                        }
                        then {
                            destination-nat {
                                pool {
                                    POOL1;
                                }
                            }
                        }
                    }
                    rule DNAT_RULE2 {
                        match {
                            destination-address 192.168.3.102/32;
                            destination-port {
                                2222;
                            }
                        }
                        then {
                            destination-nat {
                                pool {
                                    POOL2;
                                }
                            }
                        }
                    }
                }
            }
        }
}

動作確認結果

仮想サーバからそれぞれ192.168.3.102:22と192.168.3.102:2222を宛先にしたSSH通信が成功しました。 192.168.1.201と192.168.2.202の仮想サーバへアクセス可能なことが確認できましたので、宛先IPアドレスとポート番号の組み合わせたNAPTも正しく動作することが確認できました。 また、通信を実施した際にvSRX-02で192.168.1.102と192.168.2.102に変換されていることが確認できますので、送信元IPアドレス(192.168.3.0/24)に対するNAPT機能が確認できました。

仮想サーバ(192.168.3.203)から192.168.3.102:22宛てのSSH通信が192.168.1.201に通信ができており、接続元も192.168.1.102から接続されていることが確認できます。

user01@vRouter-03:~$ ssh user01@192.168.3.102 port 22
Welcome to Brocade Vyatta Network OS

user01@192.168.3.102's password:
Welcome to Brocade Vyatta Network OS
Version:      5.2R4
Description:  Brocade Vyatta Network OS 5600 5.2R4 Standard
Last login: Tue Sep 19 07:12:12 2017 from 192.168.1.102
user01@vRouter-01:~$

仮想サーバ(192.168.3.203)から192.168.3.102:2222宛てのSSH通信が192.168.2.202に通信ができており、接続元も192.168.2.102から接続されていることが確認できます。

user01@vRouter-03:~$ ssh user01@192.168.3.102 port 2222
Welcome to Brocade Vyatta Network OS

user01@192.168.3.102's password:
Welcome to Brocade Vyatta Network OS
Version:      5.2R4
Description:  Brocade Vyatta Network OS 5600 5.2R4 Standard
Last login: Tue Sep 19 07:57:22 2017 from 192.168.2.102
user01@vRouter-02:~$

vSRX-02でNAPT状態の確認結果

user01@vSRX-02> show security flow session
Session ID: 601, Policy name: POL1/6, Timeout: 1800, Valid
  In: 192.168.3.203/57016 --> 192.168.3.102/22;tcp, Conn Tag: 0x0, If: ge-0/0/2.0, Pkts: 2459, Bytes: 130963,
  Out: 192.168.1.201/22 --> 192.168.1.102/27746;tcp, Conn Tag: 0x0, If: ge-0/0/0.0, Pkts: 2439, Bytes: 369967,

Session ID: 602, Policy name: POL1/6, Timeout: 1800, Valid
  In: 192.168.3.203/37124 --> 192.168.3.102/2222;tcp, Conn Tag: 0x0, If: ge-0/0/2.0, Pkts: 2391, Bytes: 128003,
  Out: 192.168.2.202/22 --> 192.168.2.102/26438;tcp, Conn Tag: 0x0, If: ge-0/0/1.0, Pkts: 2368, Bytes: 358443,
Total sessions: 2