なぜNATループバックは明治的に設定を別個投入しないといけないのか

結論

ルータが、ポート開放(静的マスカレード)の設定を参照せずに、自分自身にアクセスさせてしまうから。


詳細

NATループバックという事象について説明する。これが問題になるのは、例えばニンテンドースイッチでスプラトゥーンの対戦をする場合や、LAN内にあるサーバをグローバルIPで公開しているなどの誤家庭の場合である。

図1に示すように、例えばLAN内で102号室のコンピュータ(192.168.100.21)を静的マスカレードによって、203.0.113.1 : 8888 などとしてインターネットに向けて公開しているとする。

図1.ヘアピンNATの動作(YAMAHA HPから引用

このとき、仮に101号室のコンピュータ(192.168.100.11)から、203.0.113.1 : 8888に向けてアクセスをしても、102号室のパソコンには到達しない。パケットはルータで止まってしまう。

ローカルにあるコンピュータから、203.0.113.1へとアクセスすると、ルータは静的マスカレードの設定は参照せず、自身の8888ポートを確認してそこから応答しようとする。本来であれば8888ポートが102号室のコンピュータ(192.168.100.21)にリダイレクトされていることを認識しないといけないのだが、そのような挙動はしない。

これはルータが静的マスカレードの設定までちゃんと見に行けば問題ないのだが、WAN側のインターフェースを通してLAN内から再びLAN内へアクセスするという仕様は全部の機器にIPアドレスが振られていた時代に作られたインターネットの仕組みでは想定されていなかった。

このため、NATループバックについては、人間がルータへ明示的に、接続設定とは別個にconfigを投入しないといけないといけないのである。


おまけ

ちなみに、ループバックアドレスという仕組みはインターフェースがリンクダウンしている場合でも、自分のIPアドレスに対して通信できるように作られたもの。

こちらが本来の目的であるので、機能の名前的にはNATループバックと近いような気がするが、ヘアピンNATができないことの解決のために作られたものではないらしい。


参考文献

ヘアピンNAT機能がないルータだとなぜLAN内から、グローバルIP経由のルートでLAN内のサーバにアクセスできないのか|Yahoo! 知恵袋
【図解】ループバックアドレスの仕組みとメリット,使い方,ループバックインタフェースとの違い|SEの道標
パケットとフレームは何が違う?|日経XTECH

作成者: rarafy

2013年くらいからUnityを触っているかもしれません。 特に書くこともありませんが、趣味は部屋の掃除です。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です