ヘアピンNATとは??

スマートフォンで外から家電を操作する場合、当社では通常VPNかポート転送を使った方法を採用しています。もしも後者を採用した時、そのルーターがヘアピンNATに対応していたら、プログラマーにもユーザーにも便利です。今回はそのヘアピンNATについてご説明致します。

アプリはIPアドレスを頼りに”ホームオートメーションコントローラー”に接続

あなたはスマートフォンからホームオートメーションコントローラーを介して家電を操作しているとします。そのアプリには必ずと言ってもいいほど、コントローラーのIPアドレスが指定されています。
(Bluetoothを使って直接家電にアクセスする場合は除きます)

条件1.家の中限定で利用の場合

家の中だけで操作する場合、プログラマーはこのIPアドレス(プライベートIP)をアプリに仕掛けておきます。これでアプリを起動したらコントローラーにたどり着くので、それを介して家電をコントロールできます。

ヘアピンNAT1

条件2.外から操作する場合

しかし外から操作するとなると、プライベートIPアドレスではたどり着けません。そのため2つの下準備が必要です。

1.アプリ側にWAN側のIPアドレス(グローバルIP)を仕込む
2.ルーターにポート転送の設定。

ヘアピンNAT2

実は外からの操作は作り手・使い手どちらも面倒

上の2つでお気づきの方もいるかも知れません。

  • プログラマー・・・外用と中用、両方を作成しないといけない。
  • ユーザー・・・家の中と外出先で、操作アプリの切り替えが必要。

まずプログラマーにとって、導入後のちょっとした変更でも外用・中用の両方を変更しないといけません。
ユーザーは操作する場所に応じてプログラムの変更が必要になります。更にWiFiの電波が微妙な所だと、「押しても動かない」ということが起こります。実は外からの操作というのは技術的なことよりも、運用面で面倒なことが多いのです。

ヘアピンNAT対応ルーターを採用すれば「外側のみ管理」でOK

条件3.「WANはLANを兼ねる」のがヘアピンNAT対応ルーター

この問題を解決してくれるのが「ヘアピンNAT対応ルーター」です。
まず外からの操作の時は、は上の“条件2”の図と同じく、ポート転送によって指定のコントローラーに誘導してくれます。
さらに家の中で操作したとき、接続先が自分のWAN側と分かったら中(LAN側)に返してくれます。
この場合においては、「大は小を兼ねる」と同じで「WANはLANを兼ねる」と言ってもいいでしょう。

ヘアピンNAT3

これでプログラマーは外用だけに専念すればいいです。またユーザーも切り替えなくていいので、どちらにとっても好都合です。

条件4.もしもルーターがヘアピンNATに対応していないと永遠に接続できない

逆にヘアピンNATに対応していないルーターだとどうでしょう。自身のWAN側のIPアドレスを指定すると、中に返してくれません。

Siwthch

まとめ

残念ながらメーカースペックに「ヘアピンに対応-非対応」の記載は無い

「だったらヘアピンNAT対応のもの選べばいいだけ!」と思った人も多いと思います。
ところがメーカースペックには、ヘアピンNAT対応ルーターかどうかの記載は通常ありません。
↓こちらのサイトにリストがあります。サイト主の方も当社も保証外なのでご理解下さい。
http://natloopback.web.fc2.com/list.html

アプリLinked Playerは自動切換え機能がついている!!

Linked PlayerアプリLinked Playerは以下の機能がアドオンを使って追加することができます。

「特定のSSID接続中は、特定のプライベートIPアドレスに接続。しかしそれと切断(他のSSID接続中も含む)の時は、WAN側のIPアドレスに接続する」

これによってヘアピンNAT非対応のルーターでも、外用、中用別々に作成することなく1つのGUIで管理できます。もちろん外からのアクセスは通常固定IPでなければ、DDNSなどのサービスを使うのが一般的です。


以下の動画をご覧下さい。ルーターはヘアピンNAT非対応です。私は何も切りかえることなく、LAN(WiFi)からとWAN(ドコモのキャリア回線)の両方を使って照明をコントロールしています。
フリッカー凄いですが、あしからず・・・。