IoTデバイスを外部インターネットに公開するときにポート転送を回避するにはどうすればよいですか?


15

私は質問にいくつかの良い答えを受けた私はのIoTデバイスのための私自身の個人的な雲を作成する必要がありますか?そこから私が理解したことの1つは、ハブまたはゲートウェイを外部インターネットに「公開」する必要があるということです。そのための提案されたソリューションはポート転送です。

これを別の質問として作成したのは、すべての回答に対するコメントだけで適切にフォローアップするのが難しく、誰かが迷子になる可能性があるためです。また、この情報は、同様の質問がある人にとって有用かもしれません。

ルーターの構成に移動してポート転送を構成する必要があるという考えが嫌いです。これは、IoTインフラストラクチャの一部であるにもかかわらず、「私の」デバイスではないデバイスを構成する必要があるためです。既存のホームネットワークの混乱をできるだけ少なくする必要があります。また、特定のルーターの管理者パスワードがわからない場合があり、取得するのが本当に困難でした。

おそらくLinuxを実行するより強力なIoT HUBを持っていることを意味しているとしても、それがどうなるかはわかりません。その「代替」方法でそのポート転送構成を回避できる場合は、もう少し複雑なHUBを使用してもかまいません。

チームビューアーのようなアプリケーションがポートフォワーディングを構成する必要がないことを考える方法があると確信しています。

質問は、ポートフォワーディングを必要としない世界中のどこからでもアクセスできるように、IoT組み込みデバイスを外部インターネットに「公開」する方法を知っている人はいますか?

回答:


10

ルーターをポートフォワードできない場合は、ホールパンチを使用する必要があります。

ホールパンチは、一方または両方がファイアウォールまたはネットワークアドレス変換(NAT)を使用するルーターの背後にある2つのパーティ間で直接接続を確立するためのコンピューターネットワーキングの手法です。穴を開けるために、各クライアントは、各クライアントの外部および内部アドレスとポート情報を一時的に保存する無制限のサードパーティサーバーに接続します。サーバーは各クライアントの情報を他のクライアントに中継し、その情報を使用して各クライアントが直接接続を確立しようとします。有効なポート番号を使用した接続の結果として、制限的なファイアウォールまたはルーターは、両側で着信パケットを受け入れて転送します。

ルーターのNATは、ネットワーク外のクライアントがネットワークのデバイスの開いているポートに接続できないことを意味しますが、ネットワークのデバイスが「ブローカー」に接続することを制限しません。少しの間接性を使用すると、実際にポートを開かずに2つのデバイス間の直接接続を確立できます。これは、SkypeやHamachiのようなサービスの基本です。

もちろん、これには接続を調整するために外部サーバーが必要であり、おそらくホールパンチを実行していたサーバーを信頼する必要があります。

Bryan Ford、Pyda Srisuresh、Dan Kegelによるネットワークアドレストランスレータを介したピアツーピア通信は、ホールパンチのメカニズムとその信頼性に関する詳細についての興味深い読み物です。


素晴らしい!しかし、1つの質問は、そのサードパーティのサーバーまたは「ブローカー」が私の家の中にもあるのでしょうか?そして、例えば組み込みLinuxボードになりますか?それ以外の場合、このアプローチでは、IoT展開に外部のサードパーティ要素を使用することについてさらに大きな問題が発生します。組み込みLinuxボードがこれにならない場合、それは何でしょうか?
m4l490n

3
@ m4l490n:何らかの方法でネットワークの外部にある必要があります。私はそれがクラウドサーバーのどこかかもしれない想像、または場合は、Linuxボードを使用することができ、そのポートが転送されました。UDPホールパンチは、インターネット上のどこかに公的にアクセス可能なサーバー/デバイスがある場合にのみ機能します。理想的ではありませんが、接続するためにインターネット上で何かが公開されている必要があるという事実を回避することはできません。あなたのホームネットワークに組み込まれたLinuxボード何の利点も提供しないと思います。あなただけ前方ポートに持ってその代わりに、あなたのIoTデバイスの。
Aurora0001

1
優秀な!あなたの答えの直接的な意図ではなく、私の質問の本来の意図ではありませんでしたが、IoTインフラストラクチャにおけるクラウドサーバーの役割をようやく理解しました!
m4l490n

私が理解している場合、ルータの状態が変更されるポート転送とは異なり、穴は一種の仮想です。リンクの両端はサーバーとのみ通信していますか?一般的なネットワークは多対多なので、これはIoTの典型的なモデルになると思います。
ショーンフーリハネ

7

外部接続からの不要なトラフィックを処理するためのデバイスのリソースが少ないIoTの世界では、もちろんポート転送やルーターのファイアウォールの問題を処理する必要があるため、多くのIoTバックエンドソリューションで見ることができる次のアプローチにつながりました:

デバイスは、未承諾のネットワーク情報を受け入れません。すべての接続とルートは、発信専用の方法でデバイスによって確立されます。そのため、デバイスはアウトバウンド接続を開くため、ファイアウォール/ルーターの調整は不要であり、必要な限りチャネルを開いたままにします。

素晴らしい記事のIoT世界でコミュニケーションの問題と解決策について。


MQTTの場合、デバイスはクライアント(パブリッシャーまたはサブスクライバー、またはその両方)であり、ブローカー(サーバー)への接続を開始します。
ギャンビットサポート

「デバイスの送信接続からの不要なトラフィックを処理するためのリソースが少ない」???? それはまったく意味がありません。 アウトバウンド接続は、ネットワーク内でのみ開始できます。
クリスストラットン

@ChrisStratton、NATが使用されている場合、ポート転送を使用して、アウトバウンド接続をデバイスに直接送信できます。また、独自のIPを持つことができ、インターネットから直接アクセスできます。
シャシャル

「アウトバウンド」という言葉の意味を誤解していて、実際に「インバウンド」という意味で誤って使用しているようです。また、アウトバウンド接続は、クラウドサーバーに到達するIoTデバイスです。インバウンド接続とは、ネットワーク内のデバイスに到達しようとするホームネットワークの外(通りを歩いているときに電話など)のことです。
クリスストラットン

@ChrisStratton、あなたは正しいです、発信を書いたとき、私は外部からのトラフィックを意味しました。これは基本的にセンサーの「着信」接続です。私は私の答えは、おかげで編集した
shachar

3

ポートノッキングをお試しください。引き続きポートを転送する必要がありますが、pingの秘密の組み合わせ(選択)を送信した後にのみポートが開きます。その後、pingの別の秘密のコンボでポートを閉じることができます。OpenWrtを備えたwifiルーターなどの組み込みLinuxで実行できます。


3

IoTデバイスがパブリックインターネットから到達できるようにすることはお勧めできませんが、IPv6を使用してネイティブにこれを実現できます。

ISPおよびローカルネットワークがIPv6用に構成されており、IoTデバイスがそれをサポートしている場合、インターネット上のどこからでもルーティング可能なIPv6アドレスを自動的に取得できます(IPv6ではNATおよびポート転送の必要がなくなります)。ステートフルファイアウォール(ルーター)が各デバイスへのトラフィックを許可するように構成されていることを確認する必要があります。いくつかは、デフォルトでこれを許可します(安全ではありません)。


2

自宅でVPNサーバーをセットアップし、どこからでも接続します。これは、あらゆる種類のIoTデバイスをオープンインターネットに公開するよりもはるかに安全だと思います。


それはある種のゲートウェイではありませんか?
ヘルマー

え?VPNは、デバイスとネットワーク間のポイントツーポイント(通常は暗号化された)接続です。接続デバイスをネットワークの一部であるかのように動作させます。あなたはそれをゲートウェイと考えることができると思います...しかしそれはサービスです。
モーリス

もちろん、そのサービスはまだホームルーターを通過する必要があります。通常は、ポートフォワーディングまたはノンストップアウトバウンド接続を介して行われます。
ヘルマー

ええ、VPNが実行されているポートを引き続きポート転送する必要があります。ただし、個々のデバイスを公開するよりも安全です(達成しようとしているものによっては、利便性が低い可能性があります)
モーリス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.