
通常、特別なことをしなくても利用できますよね
… 不思議に思いませんか?
インターネットは、グローバルアドレス

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

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

①
② ③ ④ ⑤
この仕組みを、 ( )という
この仕組みで何か問題はないか?

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をセキュリティー的に

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

① ② ③ ( )