自宅サーバーを構築したとき、当然ながらルーターの内側、つまり自宅LAN上にサーバーがぶら下がることになります。
なので、このサーバーを外部に公開するためにはルーターで静的NAT設定を行い、外部からのアクセスをサーバーに誘導するようにします。
これは当然、どんなルータでも設定できます。
しかしながら、この自宅サーバーに、サーバーと同じLAN上のクライアントPCからアクセスすると、問題が発生することが「多々」あります。
それは、例えば、自宅サーバーに独自ドメインを設定しホームページを開設したとします。
このホームページにLAN内のパソコンからドメイン名でアクセスすると、苦労して作ったホームページではなく、ルータの設定画面が開いたり、素っ気ないエラー画面が表示されたりします。
その理由は、そのルーターがヘアピンNAT(NATループバック)機能を持っていないからなんですねー。これに気づくのにずいぶんと時間がかかったよ・・・
ヘアピンNAT、NATループバック、IPループバックなどといいます。どうやら正式な呼び方がないみたい。
LAN内のパソコンでドメイン名でサーバーにアクセスしようとすると、ドメイン名とIPアドレスをひもづけるため一旦ルーターの外、つまりインターネット上に出ていってDNSにIPアドレスを聞きに行きます。
そして、DNSに「このドメインはお前のIPじゃねーか」と言われ再びルータに返ってくる。
で、この時、ヘアピンNATがあれば「なんだーあたちのとこだったのかー。おかえりー」と言って入れてくれます。
しかし、その機能がない場合、「ふええ?何このパケット?!そんなの入れちゃらめぇぇぇぇぇ!」と混乱するようです。
ドメイン名を名前解決するため一旦ルーターの外に出ても、再びLAN内に戻ってくることができる。
ドメイン名を名前解決するため一旦ルーターの外に出るが、この時ルーターのWAN側グローバルIPが付く。
で、戻ってきたときに自分が自分にアクセスしてる形になり混乱する。