[ネット技] 23. アドレス変換

woody_1227 オーナー 公式アカウント

NAT, NAPT
アドレス変換問題
ログインすると、チェック機能を利用できるようになります。
インターネット上のサービス

通常、特別なことをしなくても利用できますよね
… 不思議に思いませんか?

インターネットは、グローバルアドレス



応答すべき宛先が分からないはず ...


プライベートアドレスでインターネットへアクセスできるのはなぜ ???
・プライベートアドレスとグローバルアドレス
 ・
・組織内のプライベートアドレス
 ・通常、プライベートアドレスがインターネット上に流れることはない
  ・ が破棄するから
・グローバルアドレスの宛先と通信できるのはなぜ?
 ・プライベートアドレスとグローバルアドレスを してるから
 ・変換は誰がやってる?
  ・プライベートネットワークとインターネットを接続する

ルータが行う変換作業


 ③  ④  ⑤
この仕組みを、 ( )という

この仕組みで何か問題はないか?

P2の 、他のPCはインターネット接続不可

NATは外部接続数に上限がある
・プライベートアドレスとグローバルアドレスの変換は、
 ・外部接続できるPC数 =
 ・使用できるグローバルアドレスは、通常1~数十個
  ・浜工は8個(218.44.230.0/29)
  ・家庭用のBBルータなどは、1個(しかも、固定IPでない)
 ・組織内で使用するプライベートアドレス数は、グローバルアドレス数よりずっと多い
・組織内の全PCを外部接続可能にしたい
 ・どうする?

組織内の全PCを外部接続可能にしたい
・解決策1 …
 ・現実的ではない
 ・プライベートアドレスと のグローバルアドレスが必要
 ・新たにグローバルアドレスを取得することは非常に困難
  ・IPv4アドレスは既に枯渇している
 ・仮にできたとしても …
  ・これではプライベートアドレスアドレスを使う
・解決策2 …
 ・IPv4ネットワークとの相互接続には、
  ・IPv6 と IPv4 は別プロトコル(
 ・IPv6に の機器やOSは交換が必要

・現実解は?
 ・その前に、ちょっと寄り道
   … ネットワークアプリケーションの通信方式を見てみましょう

ネットワークアプリケーションの通信
モデル

 ②
 ④

組織内のPCを外部接続可能にしたい
・クライアント・サーバモデルを前提 … 考えられる現実解は?
 ・ を変換対象にする


 ②

NAPT(Network Address Port Translation)
・IPアドレスとポート番号のペアを変換対象にしたアドレス変換
・NAPTは、1つのグローバルアドレスを複数クライアントで共有
 ・複数のクライアントが、同時に外部接続可能
 
 ①  ②
 ③  ④

 ・戻りパケットも正しく受信できる
 
 ①  ②
 ③  ④

アドレス変換の用語

 ・変換対象は、
 ・外部と同時接続数の上限 = グローバルアドレス数

 ・外部と同時接続数の上限 = 16,384×グローバルアドレス数
  ・ポート番号は16bit
  ・動的割当ポート: C000(16)~ FFFF(16)(49,152~65,535=16,384個)
 ・NAPTと同じ意味で使われる用語
  ・NATオーバーロード、動的NAT
  ・ :Linuxの用語)
  ・NAT+、拡張NAT、eNAT、NATe … etc.(メーカ独自用語 … カタログ等で確認)
※NATとNAPTは、 なので注意

NAPTの恩恵
・プライベートアドレスの有効利用
 ・ でのインターネットアクセス
  ・ は、外部と接続しない閉じたネットワークでの使用を想定
にも関わらず、インターネットへ接続でき、しかも が可能になった
 ・限られたグローバルアドレスの節約
  ・IPv4アドレスの を大幅に遅らせることができた
   ・but. … 逆に の普及は遅れることになった
・簡易的な として機能
 ・NAPTの外からは、内側のノードの存在が
  ・NAPTの内側から送信されたパケットは、送信元がどこであるように見える?
   → すべてNAPTが機能しているルータの

NAPT(Network Address Port Translation)




NAPTがあればIPv6は不要か?
・IPv4のグローバルアドレスは枯渇しているけれど …
 ・インターネットアクセスは、IPv4のプライベートアドレスで十分
  ・本当にそう?
  ・IPv4で を提供することは困難
   ・インターネット上で提供するサービスには、 が不可欠
  ・同時に使用できるポート番号には、 (16,384個)がある
   ・16,384個あれば十分?、それとも少ない?
   ・1台のクライアントPCだけでも、同時にインターネットへアクセスするサービスは複数ある
    ブラウザ、メール、ソフトウェアの自動更新、Skype等の通信アプリ、 … etc.
    特にブラウザは、1つのアプリケーションで を消費する
   ・多数のセンサーや機器をネットワークに接続する では、全く不十分
・NAPTには、その仕組みに由来する が存在

アドレス変換問題(NAT, NAPTの特性)
・NAT, NAPTの変換対象は
 ・データ部分は変換対象外
 ・データ部分に を持つプロトコルやアプリケーションも
  少なくない … NATやNAPTでは正常に機能しない
  ・ICMP, FTP, SMTP, POP, IMAP … etc.
  ・tracertコマンド, 経路MTU探索, 多くのネットワーク対応ゲーム … etc.
 ・データ部分は、セキュリティ上暗号化されていることも多い
  ・アドレス変換の仕組みを改良して、データ部分を変換することは
・NAPTの へのアクセスは困難
 ・NAPT配下にあるサーバ(サービス)を

アドレス変換問題が起きる例

 ②
 ④  ⑤

NAPT配下のサーバへは外部からアクセス不能


アドレス変換問題への対処法
・アドレス変換問題への対処法
 ・通称、「NAT(NAPT)越え」とも言われる
・データ部分にアドレス情報を持つ場合への対処
 ・ が各プロトコルごとに個別対応する
 ・ )を使う
・NAPTの内側のサービスを外部へ公開する
 ・ )を使う
 ・ )ホストを設定する

・データ部分にアドレス情報を持つ場合への対処(1)
 ・ルータが各プロトコルごとに個別対応する
  ・各プロトコルのデータ部分を解析、アドレス情報を
  ・対応できるのは、 が公開されている
   ・ICMP, FTP, SMTP, IMAP, POP … etc.
  ・ICMP等、 を持たないプロトコルは、通常この方法が採られる
  ・個別対応には限界がある
   ・アドレス変換によるオーバーヘッドで、パケットの が犠牲になる
   ・全てのプロトコルに対応するのは
    コストが高くなる、新しいプロトコルは次々に登場する … etc.
   ・データ部分が されていると、対応不可能

・FTP(File Transfer Protocol)通信の例
 ・FTP通信は制御チャネルとデータチャネル、2つのコネクションを使う
  ・制御チャネル : PUT(Upload)、GET(Download)などの制御用
  ・データチャネル: 送受信されるデータが流れる
 ・制御チャネルはクライアントが、データチャネルはサーバが作る
  ・データチャネルの待ち受けポート番号は、クライアントがサーバに指示
  
 ①  ②

 ・途中にNAPTが入ると…
 
 ①  ②  ③

 ・NAPTルータがFTPに個別対応
 
 
 ①  ②  ③
 
 ①  ②  ③

・データ部分にアドレス情報を持つ場合への対処(2)
 ・UPnP(Universal Plug and Play)を使う
  ・UPnPは、ネットワークに接続された機器に対して

   ・IPアドレスの取得、通知
   ・存在、機能の通知
   ・状態確認、機能の呼び出し 等を定義するプロトコル

  ・NAPTでは、 が協調してアドレス変換表を作る
   ・仕組み上は、あらゆるプロトコルに対応できる汎用的な方法

 ・UPnPの利用
 
 1  2  3  4
 
 ①  ②  ③
 
 ①

・データ部分にアドレス情報を持つ場合への対処(2)
 ・UPnPを使うための条件
  ・ の全てがUPnPに対応している必要がある
   ・OSやルータは、現在ほとんどのものが対応
   ・アプリケーションは、AV機器(DLNA)を除き、対応しているものはあまり多くない
 ・UPnPの問題点
  ・プロトコル自体に脆弱性がある → がない
   ・UPnPを悪用すると、UPnP対応機器を自由に操作できてしまう

・NAPTの内側のサービスを外部へ公開する
 ・ ( )を使う
  ・アドレス変換表を で( に)作る方法
   ・静的アドレス変換、ポートマッピング、バーチャルIP、バーチャルホスト etc. とも呼ばれる

 ・Webサーバを公開する例
 
 ①  ②  ③  ④  ⑤

ポートフォワーディングの問題点(1)
・同一ポート番号の複数サービスの公開には制約がある
 ・サービス数の上限 = グローバルアドレス数
 

 ・待ち受けポート番号を明示したアクセスができる場合は対処可能
 
 ②

ポートフォワーディングの問題点(2)
・サービス提供のポート番号が固定されていないとダメ
 ・ポート番号がかわると、アドレス変換表を に作ることができない
 
 

アドレス変換問題への対処法
・NAPTの内側のサービスを外部へ公開する
 ・ポートフォワーディング(Port Forwarding:ポート転送)を使う
  ・アドレス変換表を手動で(静的に)作る方法
   ・静的アドレス変換、ポートマッピング、バーチャルIP、バーチャルホスト etc. とも呼ばれる
 ・ポートフォワーディングの問題点
  ・同一ポート番号の の公開には、制約がある
   ・公開できるサービス数の上限は、 に制限される
   ・待ち受け ができる場合は、対処可能
  ・サービス提供のポート番号が されていないとダメ
   ・ ( )ホストを設定することで、対処可能 … 但し、これは最終手段
   ・アドレス変換表にないパケットを受信したら、すべてDMZにある特定のホスト( )へ転送する
   ・DMZホストは全く無防備 → (重要) へのアクセスを禁止しておく

ポートフォワーディングの問題点(2)
・DMZ利用時の注意
 ・DMZから内部LANへのアクセスは禁止しておく
 


アドレス変換とセキュリティ
・NATの場合
 ・変換対象のノードは、 にあるのと同じ
  ・セキュリティ的には、
 
 

・NAPTの場合
 ・内部ノードは、外部から
  ・ある程度のセキュリティは、確保できる … 安心して大丈夫か?
  
  ①

 ・外へ出て行くパケットが盗聴されたら…
 
 ①

 ・ポート番号を偽装されたパケットは、転送されてしまう
 

 ・LAN内を宛先にしたパケットを、Gに送信する
  ・設定によっては、通常のルーティングが行われる
  
  ①  ②  ③

アドレス変換とセキュリティ(まとめ)
・NAT … セキュリティー的には、無防備
 ・通常、特別な理由がない限り使われない
・NAPT … その特性上、外部から内部は見えない
 ・ある程度のセキュリティーは確保できる
 ・but. 過信は禁物
  ・アドレス変換表にあるポート番号で偽装されたパケットを、区別できない
  ・内部のプライベートアドレス宛に送られると、ルーティングされるかもしれない
   ・最低限、内部を宛先として送られてきたパケットは、破棄するようにしておく
・セキュリティ対策には、 製品を使う
 ・アドレス変換には、必ず を併用する

NAPTの利用場面
・基本的な利用場面
 ・プライベートアドレスとグローバルアドレスの変換
  ・プライベートアドレスでインターネットを利用する
・プライベートアドレス同士を変換する
 ・組織内の部署や部屋ごとのLANをセキュリティー的に
 

・プロバイダーが を節約する

 ②  ③ ( )