「NAT超え」の設定をする際に、UPnPを有効にしてください、UPnPを無効にしてください、と真逆のことを指示されることがあります。UPnPとは何なのでしょうか。この記事ではUPnPの仕組みと利用目的、なぜUPnPは危ないと言われるのかについて、わかりやすく解説しています。また、特にUPnPが問題となるゲーム機において、無効にするとどうなるのかについても解説しています。
UPnPのメリット・デメリットと無効にするべき理由
UPnPの仕組みと、セキュリティ上のリスクについて解説します。
UPnPとは
「UPnP(Universal Plug and Play)」とは、機器をコンピューターネットワークに接続するだけで、自動的に使えるようにするための、通信プロトコル(規格)です。
例えばUSBは、PCに接続するだけで自動的に使えるようになっており、「PnP(Plug and Play)」と言われています。
UPnPは、PnPをネットワークに拡張した概念となります。ただし技術的な関係はありません。
UPnPの仕組み
UPnPは、以下の6つのステップがあります。
1. アドレス取得(Addressing)
デバイスがネットワークに接続されると、まずIPアドレスの取得を試みます。
多くの場合は、ルーター内蔵のDHCP(Dynamic Host Configuration Protocol)サーバーが、IPアドレスが割り当てます。
DHCPサーバーが見つからない場合は、Auto-IPによって、リンクローカルアドレスを自分自身に割り当てます。マイクロソフトでは「APIPA(Automatic Private IP Addressing)」と呼んでいます。
通常であれば、以下のいずれかの範囲のIPアドレスとなります。
- 10.0.0.0 ~ 10.255.255.255
- 172.16.0.0 ~ 172.31.255.255
- 192.168.0.0 ~ 192.168.255.255
- 169.254.0.0 ~ 169.254.255.255 (リンクローカルアドレス)
2. 発見(Discovery)
IPアドレスが所得できたら、次はそのネットワーク内のUPnP対応デバイスを検出します。このプロトコルを「SSDP(Simple Service Discovery Protocol)」と言います。
ネットワークに接続したデバイスは、マルチキャストで「M-SEARCHメッセージ」を送信します。
M-SEARCHメッセージを受信したUPnP対応デバイスは、応答として「NOTIFYメッセージ」をマルチキャストで送信します。
NOTIFYメッセージは、「M-SEARCHメッセージを受信した時」だけでなく、「自身がネットワークに接続した時」「一定間隔」でも送信されているので、それだけでも機能すると言えますが、デバイスを迅速に発見するために、M-SEARCHと併用されています。
3. 説明(Description)
UPnP対応デバイスは、デバイス内に、そのデバイスの基本情報が書かれたXMLファイルを保持しています。
IPアドレスが取得できたら、ファイルの場所をURLにし、NOTIFYメッセージと一緒に送信します。
他のデバイスは、HTTPリクエストを送ることで、それを見ることができます。
以下のような情報が含まれています。
- デバイス名
- 製造者
- モデル名
- UUID
- アイコン
- サービスリスト
- アクションリスト
- コントロールURL
4. 制御(Control)
他のデバイスは、上記のコントロールURLを利用することで、そのデバイスを操作することができます。
これは「SOAP(Simple Object Access Protocol)」と呼ばれ、XML形式のファイルをHTTP POSTすることでおこなわれます。
5. 通知(Event notification)
また、UPnP対応デバイスを「購読(SUBSCRIBE)」することで、そのデバイスの状態が変化したときに、通知を受け取ることができます。
例えば、ネットワークカメラが動きを検出した時に、録画を開始し、アラートを送信する、などが可能になります。
6. 管理(Presentation)
上記の機能は、主にUPnPデバイス同士で使用されるものです。
人間にとって分かりやすいように、管理用のウェブページが用意されることがあります。
UPnPは危ないと言われる理由
UPnPはとても便利ですが、セキュリティリスクがあるため、利用すべきではないという意見も多くあります。その理由を解説します。
自動ポートフォワーディング
UPnP対応ルーターは、デバイスの要求に応じて、ポートを自動的に開放することがあります。
これにより、外部からの不正アクセスに利用される可能性があります。
認証機能がない
UPnPは、接続するだけで使えることを目的としているため、認証機能を持っていません。
そのため、悪意のあるユーザーやデバイスが、容易に不正操作をおこなうことができます。
踏み台にされる
UPnPデバイスは、そのネットワーク内で相互に信頼しあうことが前提となっています。
そのため、1台のデバイスに侵入されると、そのデバイスを介して他のデバイスにも脅威が及ぶ可能性があります。
外部からの制御
一部の古いデバイスは、インターネット(WAN)側からのリクエストを処理するように、誤って設定されていることがあります。
これにより攻撃者は、容易にネットワーク内に侵入することができます。
脆弱性の放置
UPnP対応デバイスは、一般的なパソコンやネットワーク機器だけでなく、TV、カメラ、プリンター、ゲーム機、オーディオ機器、照明など、多岐に渡ります。
これらの中には、ベンダーのサポートが切れていたり、セキュリティパッチが提供されていてもユーザーが対応していなかったりと、脆弱性が放置されているものが多くあります。
攻撃者にとっては、格好の的となります。
ゲーム機と、UPnPを無効にするデメリット
ゲーム業界でもUPnPは無効にした方がいいという声が多いです。その理由と、無効にしたときの影響について解説します。
ゲーム機はUPnPに対応している?
主要な家庭用ゲーム機である、Nintendo Swtch、Playstation、XboxについてUPnPの対応状況を調べたところ、XboxはUPnPを利用していることを明記していますが、SwitchとPSについては確認ができませんでした。
Nintendo Switch
Nintendo SwitchはUPnPを使用していないと思われます。
ネットワーク機器のメーカーページに、SwitchはUPnPを利用していると書かれているのですが、Nintendoのサイトでは見つかりませんでした。
Nintendo Switch Gaming Console UPnP on Palo Alto Networks Device
ちなみに、Nintendoのサポートページには、ポートフォワーディングについて結構無茶なことが書かれています。(個人的な見解としては、ネットワークエンジニアではなく、サポート担当者が場当たり的な対応を書いたと思われます。気持ちは分かりますが……)
【Switch】オンラインゲームをおこなうとき、ルーターのどのポートを開放すればよいですか?
How to Set Up a Router's Port Forwarding for a Nintendo Switch Console
PlayStation
PS4、PS5では、UPnPを使用していないと思われます。
ゲームメーカーのUBISOFTのページには、UPnPを有効にしてください書かれているのですが、SONYのサイトでは見つかりませんでした。
PlayStation 5の接続に関するトラブルシューティング
PS3とPS VitaはUPnPを使用していたようです。
Xbox
Xboxでは、UPnPを利用して、UDP 3074のポートマッピングを要求していると書かれています。
PCゲームの場合
家庭用ゲーム機ではなく、Windows PCの場合はどうなのかという点について、個人的な意見を述べたいと思います。
例えば『マインクラフト』などのゲームでサーバーを立てる場合、ルーターに対してポートフォワーディング(ポート開放)の設定が必要となります。
しかしルーターの設定はよく分からない。
そういう時のために、UPnPを利用した「ポートフォワーディング自動設定アプリ」というものがあり、これを使えば簡単にポートフォワーディングの設定が完了します。
ただ個人的には、ルーターの設定を直接変更する難易度と、そんなに違いはないのではないかと思います。
ルーターの設定を変更する権限がないという状況は考えられます。
しかしそれであればルーターの管理者に依頼すればいいだけです。管理者が断る理由もありませんし、UPnPで勝手に設定変更される方がよっぽど困ります。
ですから、「ポートフォワーディング自動設定アプリ」を利用するより、素直にルーターの設定を変更するにはどうすればいいのかを調べた方がよいのではないかと思います。
UPnPを無効にした方がいい理由
むしろゲーム業界全体としては、UPnPは無効にしたほうがいいという声が多いようです。
これは前半に解説したセキュリティ的な問題ではなく、実際にゲームが遊べなくなることがあるためです。
接続するだけで自動設定してくれるはずのUPnPが、なぜ邪魔になるのでしょうか。
おそらくですが、「UPnPで設定したはずなのに期待した通りに動かない」という状況が発生するからです。
そしてその主な理由は「二重NAT」と「IPv6」です。
二重NAT
「二重NAT(二重ルーター)」とは、同一ネットワーク上にNAT機能を持つ機器が複数台ある状態です。
よくあるパターンとしては、ISPから提供された「ホームゲートウェイ」に、自分で購入した「Wi-Fiルーター」を接続するというものです。
これによって、1台はUPnPで自動設定されたけれども、もう1台では設定されていないという状況が発生します。
下記の記事もご参照ください。
NATタイプとは? 変更するにはどうしたらいいの?
ゲーム機がオンライン接続できない場合、「NAT超えに失敗しました」「NATタイプをご確認ください」などのメッセージが表示されることがあります。そもそもNATとは何でしょうか。この記事では、NATの基本 ...
IPv6
現在のインターネットは、IPv4とIPv6が混在している状態です。
その混在した状況でもなんとか通信するために、いろいろな方式が存在しますが、ISPによって方式が異なり統一されていません。
その方式によってはUPnPが正しく機能しないことがあるようです。
IPv6でVPN接続できない原因と対策
2024/8/25 NAT超え
IPv4からIPv6に変更したところ、VPN接続できなくなったというのはよくあることです。これには様々な要因が関係しており、原因を特定することはなかなか難しいです。この記事では、そもそもなぜ接続できな ...
UPnPを無効にするとどうなるの?
UPnPを無効にすると、自動設定が無効になるので、手動設定が必要となります。
特にプリンター、ネットワークカメラ、テレビなどの設定の手間が増えると思われます。
しかし、世の中の全てのデバイスがUPnPに対応している訳ではありませんし、セキュリティ上の観点から、UPnPは無効にした方がいいという風潮も強いため、別の設定手段は用意されています。ちょっと面倒になるだけです。
ゲームとしては、UPnPを無効にしても、あまり困ることはないと思います。「ポートフォワーディング自動設定アプリ」が使えなくなるくらいで、全体的にはむしろ通信トラブルが減ると思われます。
現在、セキュリティを強化したUPnPや、IPv6に対応したUPnPも開発されており、一部製品は既に発売されていますが、まだ普及には至っていません。
IPv6の普及とともに、状況も変わっていくと思われます。