まず考え方を理解し、次のアクティビティで確認しましょう。
外向けに変換し、内向けに公開する
多数のホストが1つのパブリックアドレスを共有することと、内部の1つのサービスが外部から到達可能になることの違い、そしてなぜ後者には前者にはないルールが必要なのかを学びます。
できるようになること
- スタティックNAT、プールドNAT、PATを、それぞれが何をマッピングするかで区別する
- アウトバウンドの共有になぜインバウンドルールが不要かを説明する
- ポートフォワードが何を追加し、どこに適用されるかを説明する
この前に: 基本的な変換の考え方については「NATとPAT」、そしてPATとポートフォワードの両方がその上に成り立っているためTCP/UDPポートの知識が必要です。
重要な理由: アウトバウンドNATはうまく動作しているときは見えないため、ほとんどのエンジニアが最初にそれについて考えるのは、内部の何か - ポータル、メールサーバー、監視エンドポイント - が外部から到達可能でなければならないときです。それは方向の異なる別のルールであり、両者を混同することが公開したサービスに到達できなくなる普通の原因です。
アドレス変換にはいくつかの形態があり、何を何に対応付けるかが異なります。適切な形態を選ぶことが作業の中心であり、構文はそれに従います。
| 種類 | 対応関係 | 用途 |
|---|---|---|
| スタティックNAT | 内部アドレス1つと外部アドレス1つ | 常に同じパブリックアドレスで公開する必要があるサーバー |
| プールドNAT | 多数の内部アドレスと外部アドレスのプール | ホストがパブリックアドレスより多いが、その差は大きくない場合 |
| PAT (overload) | 多数の内部アドレスと1つの外部アドレスをポートで区別 | 普段使うほぼすべてのインターネット接続 |
外向き通信に内向きルールが不要な理由
内部ホストが外部へ接続すると、ルーターは行った変換を記録します。返信は外部アドレスとポート宛てに届き、ルーターが一致するエントリを見つけて内部宛てに書き換えます。その返信のための個別設定は不要です。外向きパケット自体がエントリを作ったからです。
内部サービスを外部に公開する
ポートフォワードがそのルールです。この外部アドレスとポートに届いた通信を、指定した内部アドレスとポート宛てに書き換えます。パケットの経路を決める前、受信時に適用されます。
ポート8080のポータル
ポータルサーバーは 10.20.30.10 にあり、8080 で待ち受けます。ルーターの外部アドレスは 198.51.100.7 です。ポートフォワードで 198.51.100.7:8080 を 10.20.30.10:8080 に対応付けると、外部クライアントはサーバーがパブリックアドレスにあるかのように接続できます。
- ポートフォワードは通信が到着するインターフェースに適用します。送信側に適用しても機能しません。
- 内部ホストにも外部へ戻る経路が必要です。なければ返信は戻れません。
- そのポートを許可するファイアウォールルールはアドレス変換とは別であり、両方必要です。
重要なポイント
- スタティックNATは1対1、プールドNATは多数対少数、PATはポートを使って多数対1に対応付けます。
- 外向き変換は自ら戻り道を作ります。内向き通信には学習元のパケットがないので明示的なルールが必要です。
- ポートフォワードは通信が到着する場所に適用し、戻り経路と許可するファイアウォールルールも必要です。
- 公開したサービスは設定を読み直すだけでなく、実際に接続して確認します。
続ける準備はできましたか?
無料アカウントを作成すると、進捗を保存して理解度チェックを受けられます。
