NAT/NAPT
グローバルアドレス空間とプライベートアドレス空間の間で、アドレス変換やポート番号変換によって相互の通信を可能にする機能です。
LAN内プライベートアドレスのホストからインターネットへアクセスしたり、特定のホストのみをインターネットに公開したりすることができます。
項目 | 値 |
---|---|
NATセッションの上限 | 65536 |
静的NATの設定上限 | 256 |
静的NAPTの設定上限 | 256 |
NAPTの設定上限 | 16 |
リフレクションNATの設定上限 | 8 |
機能 | IPv4 | IPv6 | 備考 |
---|---|---|---|
NAT/NAPT | ○ | × |
機能 | 状態 | 備考 |
---|---|---|
NAT/NAPT | 無効 |
NAT/NAPTの適用優先順位
- 静的NAT
- 静的NAPT
- NAPT
- 静的NATが使用するグローバルアドレスとNAPTが使用するグローバルアドレスが同一であると、静的NATが適用されNAPTは適用されません。
パケット処理の適用順
- NAT/NAPT(受信インタフェースのルール)
- IPパケットフィルタおよびポリシールーティング(受信インタフェースの入力方向のルール)
- 経路表に基づくルーティング
- ポリシールーティング(送信インタフェースの出力方向のルール)
- IPパケットフィルタ(送信インタフェースの出力方向のルール)
- NAT/NAPT(送信インタフェースのルール)
- パケット受信時は、IPパケットフィルタとポリシールーティングは常に両方評価され、ポリシールーティングにマッチした場合はIPパケットフィルタの評価結果によらず受信されます。
- 入力方向のポリシールーティングにマッチした場合は、入力方向のIPパケットフィルタのブロック対象であってもブロックされず、転送先ゲートウェイを指定した上でルーティング処理に進みます。
- パケット送信時は、ポリシールーティングの評価後にIPパケットフィルタが評価されます。
- 入出力いずれかのポリシールーティングにマッチしたパケットであっても、出力方向のIPパケットフィルタのブロック対象ならば破棄されます。
- 受信時にIPパケットフィルタにマッチしたパケットも、送信時にIPパケットフィルタが評価されます。
- 経路表に基づくルーティング対象でないパケットは、ポリシールーティングにマッチしたパケットであっても破棄されます。
- デフォルト経路やdiscard経路を含むいずれかの経路に一致するならば、ポリシールーティングで指定するゲートウェイに転送可能です。
- NAT/NAPT評価後の宛先アドレスに基づいて経路表が参照されます(ポリシールーティングはパケットのヘッダを書き換えません)。
- 入力方向のポリシールーティングにマッチしたパケットは、出力方向のポリシールーティングの評価はスキップされます。
- 入出力いずれかのポリシールーティングにマッチしたパケットの、送信インタフェースにおけるIPパケットフィルタおよびNAT/NAPTの評価は、ポリシールーティングで指定されたゲートウェイインタフェースのルールに基づきます。
- 本装置自身が送信元となるパケットは、受信インタフェースでの処理が省かれます。
NAPT
NAPT機能を使用すると、一つのグローバルアドレスに対してTCP/UDPのポート単位でのセッション管理を行い、プライベートネットワークの複数の端末から同時にパブリックネットワークと通信することができます。
一般的に、接続時にグローバルアドレスを1個払い出すPPPoE接続サービスやダイアルアップIP接続サービスなどで利用されます。
NAPTは原理上TCP/UDP通信に対してのみ有効ですが、本装置はICMPv4についても独自にセッション管理を行っており、プライベートネットワーク内の複数のホストからパブリックネットワーク側へのpingコマンド等の利用が可能です。
NAPT対象のグローバルアドレスの任意設定
NAPT適用時のグローバルアドレスは、通常はNAPTを適用するインタフェースのグローバルアドレスとなります。
NAPT適用時のグローバルアドレスは任意に設定でき、設定した場合、設定したアドレス宛への外部からのTCP/UDP接続は、すべてそのアドレス宛へと変換されます。(設定しない場合、NATセッションが無い状態での外部からの接続は本装置自身が受信します)
NATセッションの作成・検索
NAPTが適用される通信が発生すると、パケット内の特定の値を検索キーとして既存のNATセッションとの一致の有無を検索し、一致しない場合にNATセッションを追加します。
検索キーとなる値は下表のとおりです。
パケットの種類 | 検索キーとなる値(AND検索) |
---|---|
tcp | protocol, source address, destination address, source port, destination port |
udp | protocol, source address, destination address, source port, destination port |
icmp-error | icmpパケットに含まれるエラー元パケットの内容に準ずる |
icmp-echo/reply | protocol, source address, destination address, icmp id |
icmp-timestamp/reply | protocol, source address, destination address, icmp id |
icmp-ireq/reply | protocol, source address, destination address, icmp id |
icmp-maskreq/reply | protocol, source address, destination address, icmp id |
icmp-その他 | protocol, source address, destination address |
gre(gre flagsのKbit=0) | protocol, source address, destination address, gre callid=0 |
gre(gre flagsのKbit=1) | protocol, source address, destination address, gre callid |
その他 | protocol, source address, destination address |
NAPT適用時の送信元ポート番号割り当て方法
- 自動割り当て(デフォルト)
- 元パケットの送信元ポート番号と同じポートが未使用であれば、同じ番号を送信元ポートとして割り当てます。同じポートが使用中であれば、近い番号のポートを送信元ポートとして割り当てます。
- ランダムに割り当てる
- 未使用のポート番号からランダムに割り当てます。
- 非特権ポートに限定する
- 未使用の非特権ポート(1024 - 65535)から割り当てます。
予約ポート番号
- 予約ポートは、通信にNAPTを適用する時に割り当てません。
- 予約ポートは、UPnPのポートマップ要求でマッピングできません。
- 静的NAPTによるポート割当は、予約より優先されます。ただし、静的NAPTで予約ポートを他のホストに差し向けると、本装置の機能が当該ポートを使用できず通信できなくなります。
プロトコル | ポート番号 | 使用する機能 |
---|---|---|
TCP | 22 | Secure Shell |
TCP | 23 | Telnet |
TCP/UDP | 53 | DNS中継 |
UDP | 67 | DHCP |
TCP | 80 | Webインタフェース |
UDP | 123 | NTP |
UDP | 161 | SNMP |
TCP | 179 | BGP |
TCP | 443 | SSTP |
UDP | 500 | IKE |
UDP | 520 | RIP |
UDP | 521 | RIPng |
UDP | 1701 | L2TP |
TCP | 1723 | PPTP |
UDP | 1900 | UPnP |
TCP | 3000 | UPnP |
UDP | 4500 | IKE(NAT-T) |
UDP | 5001 | スループット測定(iperf) |
TCP | 10443 | SMFv2 |
静的NAPT
静的NAPT機能を使用すると、TCP/UDPの特定ポート宛ての通信、及び任意のプロトコルの通信を、指定したホストへ転送することができます。
プライベートネットワーク内のホストに対して、特定ポートに限りグローバルネットワークからのアクセスを可能にする場合等に使用します。
静的NAT
静的NATは、グローバルアドレスとプライベートアドレスを1対1の固定ペアとして関連付け、アドレスを変換します。
動的NATと異なり変換されるグローバルアドレスとプライベートアドレスのペアは常に固定であるため、静的NATの対象となるホストはプライベートアドレスでありながら常にパブリックネットワークから通信可能になります。
動的NAT
動的NATは、1つまたは複数のグローバルアドレスをプールとして用意し、プライベートネットワークからパブリックネットワーク側へ通信しようとするホストへ先着順で1対1のペアとして一時的に関連付け、アドレスを変換します。
プライベートネットワークは任意の範囲を指定可能ですが、同時に通信可能なホスト数はプールに割り当てたグローバルアドレスの数が上限になります。
グローバルアドレスがすべて使用されているときは新たな関連付けができず通信できません。既存のセッションが終了すると、また先着順で通信可能になります。
リフレクションNAT
リフレクションNATを使用すると、プライベート側ネットワークから、NAT/NAPT機能で設定したグローバル側アドレスへのアクセスが可能になります。
静的NATや静的NAPTを使用してプライベートネットワーク内のサーバをパブリックネットワークに公開した場合、プライベートネットワーク内のホスト(公開サーバと同一セグメントのホスト)からこの公開サーバのグローバルアドレスに対する通信が成立しません。サーバへ向かうパケットの送信元を変換しないため、リプライパケットが本装置を経由せずに送信元に届きます。クライアントはアクセスしたサーバとは異なるアドレスからパケットを受けとるため、通信を成立できません。
リフレクションNATを使用すると、静的NATや静的NAPTを適用する際に送信元アドレスも書き換えます。これによりリプライパケットが本装置を経由するため、送受信パケットのアドレス食い違いを防ぐことができます。
- 公開サーバと同一セグメント内のホストから公開サーバのホスト名でアクセスするために、外部公開用に設置されたDNSで名前解決を行う環境等で有効です。
- NATを適用する通信が増加するため、リフレクションNATを使用しない場合に比べてNATセッション数が増加します。
NATのオプション機能
NATに関連するオプション機能について解説します。
透過プロキシ・パススルー
- FTP透過プロキシ
-
NAT変換を介したFTP通信が可能です。
- EPRT, EPSV, PORT, PASV コマンドのIPアドレス部を書き換えます。
- PPTP透過プロキシ
-
NAT変換を介したPPTP通信が可能です。
- プライベート側ネットワーク内のPPTPクライアントから、グローバル側ネットワークのPPTPサーバへ接続できます。
- PPTPセッション1個につき、2個のNATセッションを使用します。
- PPTPセッション数の制限はありません(NATセッションの最大保持数に依存)
- SIPプロキシ
-
NAT変換を介したSIP通信が可能です。
VoIP端末が送信するSIPパケットを処理する際に、パケットのヘッダ部の送信元IPアドレスおよびポート番号と共にSIPのメッセージ部に含まれるIPアドレスも書き換えます。これによりプライベートネットワーク内に複数のVoIP端末を設置し、それぞれ独立した通話が可能です。
- 1個のSIP端末につき、3個のNATセッションを使用します。
- 本装置をSIP端末より後に起動した場合、もしくは本装置を再起動した場合、一定時間着信できません。
- NAT変換で利用するグローバルIP アドレスが動的に変更された場合、一定時間着信できません。
- SSLで暗号化されたSIPパケットは書き換えることができません。
- VoIP端末側でUPnP機能を併用すると正常に通信できません。
- 送信元ポート番号が5060番ではないSIPパケットにも対応します。
- NAPT使用時は書き換え後の送信元ポート番号が不定になるため、送信元ポート番号が5060番固定である必要があるサービスは利用できません。
- IPsecパススルー
-
NAT変換を介したIPsec通信を可能とする、IPsecパススルー機能を提供します。
- ESPパケットをNAPTの逆変換対象とするセッションを生成することで、 プライベート側ネットワーク内のIPsecクライアントから、グローバル側ネットワークのIPsecサーバへの接続を可能とします。
- 一つのサーバに対しては、最初に接続を試みた一つのクライアントからのみ接続が可能です。
- プロトコルの仕様上、AH(Authentication Header)を使用している場合にはパススルーできません。
- NAT連動Proxy ARP
- 静的NATに割り当てられたIPアドレスへのARPリクエストに対して、本装置のMACアドレスをリプライします。
機能 | 状態 |
---|---|
FTP透過プロキシ | 常に有効 |
PPTP透過プロキシ | 常に有効 |
SIPプロキシ | 無効 |
IPsecパススルー | 常に有効 |
NAT連動Proxy ARP | 無効 |
NATバイパス
指定した条件に一致する通信についてNAT変換の適用を除外することができます。
NATを広範囲に適用する環境において一部のアドレス帯についてNAT変換の適用を除外するルールを設定することができます。
適用の除外ルールの優先度は、静的NAT、動的NAT、NAPT、及び静的NAPTより高く、UPnPにより生成された静的NAPTルールより低くなります。
NATセッションタイマー
NATセッションの有効期間は設定により変更できます。
- NATセッションは、規定の期間使用されていないと消去されます(デフォルト:900秒)。
- 有効期間は通信の種別により個別の値が設けられているものがあり、また、種別により任意の値を設定することができます。
- ICMP Echo Request により生成され、ICMP Echo Reply が帰った NATセッション、及び、FIN が双方向に通過した TCP セッションについては短時間で消去されます。また、DNSリクエスト(UDP port53)によるNATセッションはタイマーが15秒となります。
NATセッション数の上限と制限
NATセッションは仕様上の最大数により制限されるほか、一部利用者による占有を防ぐために上限を制限できます。
- NATセッション保持数の制限
- プライベート側IPアドレス一つあたりに許可する保持数の上限を設定できます。LAN内の特定のホストがPeer to Peerアプリケーション等により多数のホストとのセッションを維持するような場合に効果があります。