it-swarm-ja.com

インターネットからIPデバイスにアクセスする方法

インターネットからWindowsIOTデバイスにアクセスしたい。デバイスをイーサネット経由で任意のネットワークに接続したい。ネットワークはインターネットに接続されています。静的IPがなく、デバイスが接続されているネットワークについて何も知りません。

そのため、新しいイーサネット接続を検出するアプリケーションをそのデバイスで実行できると思いました。そのアプリケーションは、実際のIPアドレスとネットワークに関する情報を特定のエンドポイントに送信する可能性があります。これらの情報を使用して、Windows IoTデバイスに接続できると思いましたか?

ネットワークから何も知らなくても、「外部」からデバイスに自動的にアクセスすることさえ可能ですか?

編集:

デバイスをイーサネットにプラグインし、ファイアウォールで許可されている場合、デバイスが指定されたデータをAzure EventHubなどのクラウドサービスに送信するようにします。イベントを受信し、クラウド内の新しいデバイスを認識した後、デバイスにもメッセージを送信したいと思います。しかし、DNSやVPNは使いたくないし、Azure IoT Hubも使いたくない。なぜなら、クラウドプロバイダーを変更できるようにしたいからだ。

1
CPA

内部ネットワークに関する情報がなくても、外部ネットワークからIPネットワーク内のデバイスに接続する(つまり、ルーターの境界を越える)には、IoTデバイスから制御可能なサーバーへの接続を開始する必要があります。外部ネットワーク(インターネットなど)。内部ネットワークファイアウォールがデバイスにそれを許可している場合(通常は許可されています)、コンピューターから外部サーバーに接続する必要があり、そのサーバーは通信をデバイスにルーティングできる必要があります。たとえば、これがTeamViewerの動作方法です。

内部ネットワークファイアウォールがデバイスの外部サーバーへの接続を禁止している場合、あなたはあなたが望むことをすることができません。

インターネットに接続するために特定のゲートウェイ(プロキシサーバーなど)を経由する必要がある場合は、それに必要な正確な資格情報を持っている必要があります。そうでない場合、デバイスは内部ネットワークに制限されたままになります。

さまざまなダイナミックDNSネームサーバーアプリを使用して静的な名前を提供できるため、既知のアドレスに接続できます。ウィキで詳細を参照してください: https://en.wikipedia.org/wiki/Dynamic_DNS

これは、「何も知らない」ネットワークへの接続を取得するのに役立ちません。そこでUPNPが登場します。UPNPを使用して、ルーターに自動的にマッピングする特定のポートを作成できるため、既知のポートは常にルーター内のIPデバイスにルーティングされます。詳細はこちら: https://en.wikipedia.org/wiki/Universal_Plug_and_Play#NAT_traversal

2つを組み合わせる場合は、

a)接続する固定アドレスを持っているb)デバイスにルーティングされるアドレスの固定ポート

残念ながら、ネームサーバーの更新はすぐには行われないため、たとえばGoogleネームサーバー新しい動的アドレスが伝播するまでに少し時間がかかります。一部のダイナミックDNSプロバイダーには、これを回避するための独自のネームサーバーがあります。そのようにすると、当然、すべてのネットワークトラフィックがそれらにさらされるため、データマイニングに関するTOSを確認することが適切です。

0
Barleyman