ヘアピン NAT

突然ですが以下のような一般的な構成の時です。

ブロードバンドルーター
192.168.1.1
公開サーバー
192.168.1.2
パソコン
192.168.1.128

んで、サーバーを公開するために、ブロードバンドルーターで DNAT をかけています。

このとき、インターネット側からは、グローバル IP Address でアクセスすれば、DNAT されてサーバーに接続できます。ですが、LAN 内からは難しい。(LAN 内からは DNAT が効かないので、ブロードバンドルーターがパケットを受け取って無反応になる)

単純な解決法だと、LAN 内のパソコンからは 192.168.1.2 でアクセスさせて、LAN 外のパソコンからはグローバル IP Address でアクセスさせる方法があります。

ただし、この問題は結構問題がありまして。

  • 社内でも社外でも使うパソコンの場合、どちらかしかアクセスできない。
  • http://192.168.1.2/documents/readme などとリンクを張られてしまうと、社外からアクセスできない。

なんですね。

これ、結構調べるの大変でした。理屈は分かっているんですが、呼び名がよくわからないので、検索できなくてですね。

そこで、ともちゃさんにお聞きしたところ、あっさり答えてくださいまして。ヘアピン NAT と言うのだそうです。ありがとうございます。

実は、自宅の方はサーバー兼ルーターなので、この問題が発生したことはありませんでした。会社の方もヘアピン NAT 対応のブロードバンドルーターでしたので、問題はありませんでした。

ただ、このブロードバンドルーターはヘアピン NAT で、送信元も宛先も両方とも IP Address を書き変えてしまうため、LAN 内からのサーバーへのアクセスのログはすべて 192.168.1.1 となってしまう困った現象もありました。

そこで、頭をひねってこの問題をひとまず解決しました。

その後、会社のブロードバンドルーターが壊れてしまい、実験用の IX2015 を交換して利用するようにしました。ところがこの IX2015 はヘアピン NAT に対応していない! でも、問題は解決しているので、環形ないね! になるはずだったんですが…。

Mac OS X な人から、アクセスできなくなったと猛烈な抗議が…。

というわけで詳しく調べることにした次第です。

解決方法はたくさんあります。それらをメモしておきます。

  • パソコンの host ファイルを書き変えてもらう方法 (執筆中)
  • DNS での対応 (執筆中)
  • パソコンのルーティングテーブルを変更する方法 (執筆中)
  • デフォルトゲートウェイをサーバーにする方法 (執筆中)
  • ブロードバンドルーターの LAN 側のインターフェイスに DNAT をしかける方法 (執筆中)

あたりになると思います。後から個別に日記のエントリとして登録する予定でおります。

コメントを追加

Filtered HTML

  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 使用できるHTMLタグ: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <img>
  • 次のタグを使用してソースコード構文をハイライトすることができます。: <code>, <blockcode>, <c>, <cpp>, <drupal5>, <drupal6>, <java>, <javascript>, <php>, <python>, <ruby> The supported tag styles are: <foo>, [foo].
  • 行と段落は自動的に折り返されます。

Plain text

  • HTMLタグは利用できません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 行と段落は自動的に折り返されます。
CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
イメージ CAPTCHA
Enter the characters shown in the image.