メモも残してない。失敗した。そのうち見つけたらメモる。
/*************************************************************************************/
FireWallが外部へ送信する時は、自身のIPアドレスは同じ(1つ)であり、外部からの
送信先 IPアドレスはFireWallのIPアドレスになると思うが、
さらにその先の社内のどのPCのIPアドレスへ送信すればよいかは、どうやって
判別するのか? (->DeepSeek)
良い質問です!これはFireWallの重要な機能であるNAT(Network Address Translation) とセッション管理に関連します。
## NAT(IPマスカレード)の仕組み
### 送信時(社内→社外)
社内PC(192.168.1.10:1234) → FireWall → 変換後(203.0.113.1:50001) → 外部Webサーバ
– FireWallは送信元IPを自身のグローバルIPに変換
– 送信元ポートもランダムな高ポート番号に変更
– この変換情報をNATテーブルに記録
### NATテーブルの例 | 内部IP | 内部ポート | 外部IP | 外部ポート | 宛先IP | 宛先ポート | |--------------|------------|-------------|-------------|---------------|------------| | 192.168.1.10 | 1234 | 203.0.113.1 | 50001 | 93.184.216.34 | 80 | | 192.168.1.11 | 5678 | 203.0.113.1 | 50002 | 93.184.216.34 | 80 |
## 応答時(社外→社内)の判別方法
### 1. ポート番号による識別
外部Webサーバ(93.184.216.34:80) → FireWall(203.0.113.1:50001) → 社内PC(192.168.1.10:1234)
– 外部サーバはFireWallのグローバルIP(203.0.113.1) と変換されたポート(50001) に応答
– FireWallはNATテーブルを参照:
– ポート50001 → 192.168.1.10:1234
– ポート50002 → 192.168.1.11:5678
### 2. 5タプルによるセッション特定
FireWallは以下の組み合わせでセッションを特定:
– 送信元IPアドレス
– 送信元ポート番号
– 宛先IPアドレス
– 宛先ポート番号
– プロトコル(TCP/UDP)
## 具体的な例
PC-Aからのリクエスト:
送信: 192.168.1.10:1234 → 93.184.216.34:80
NAT後: 203.0.113.1:50001 → 93.184.216.34:80
PC-Bからの同時リクエスト:
送信: 192.168.1.11:5678 → 93.184.216.34:80
NAT後: 203.0.113.1:50002 → 93.184.216.34:80
応答の振り分け:
93.184.216.34:80 → 203.0.113.1:50001 → 192.168.1.10:1234 (PC-A)
93.184.216.34:80 → 203.0.113.1:50002 → 192.168.1.11:5678 (PC-B)
このように、ポート番号の変換と管理によって、単一のグローバルIPアドレスで複数の社内PCからの通信を同時に扱えるのです。
/*************************************************************************************/
参考情報: