外部からはピコーンなのに内部からはショボーンです


基本

  1. 接続相手を特定するのに、IPアドレスが使われる。
    ホスト名(ドメイン名)を指定した場合は、まずIPアドレスに変換される。(名前解決、DNS)
  2. あるIPアドレスを持つコンピュータへの道筋は、
    行く先々でルーティングテーブルを参照して決める。(ルーティング)
  3. このルーティングの特別な形として、あるポート番号に接続があった時にだけ、
    特定のIPアドレスに繋げるようにする方法がある。(NAPT、IPマスカレード)

一般的な構成

[イソターネット] ---- [ルータ] ---- [HUB] ---- [鯖やらPCやら]
WAN側 グローバルIP | LAN側 プライベートIP

外部の人がアクセスする時の状況

  1. ホスト名(ドメイン名)をブラウザのアドレス欄にぶち込む。
  2. その人のDNSを使ってルータのWAN側IPアドレスに変換される。
  3. ルータまでは正しいルーティングになっている筈。
  4. ポート80へのアクセスなのでNAPTが機能し、鯖に接続される
  5. 鯖の返事が同じ経路を使って外部の人の所に戻る。

LAN内のPCからアクセスする時の状況

ホスト名をぶち込むと、まず名前解決しようとする。

  1. 名前解決の結果がルータのIPだとルータに接続しに行く。
    この時のルータの挙動は様々で、ルータの設定画面を出したり、
    接続破棄される場合もある。鯖に流してくれる事もある。
  2. 名前解決の結果が鯖のIP(プライベートIP)であれば鯖に接続でき、
    結果も受け取ることができる。

i.,ii.の名前解決がどうなるかは、そのPCの名前解決の設定による。
特に設定しなければ、DNSの返答がルータのIPアドレスになり、i.となる。
名前解決の1つとしてhostsファイルを使うと、ホスト名から鯖のプライベートIPに変換され、ii.となる。

おまけ

LAN内からホスト名でアクセスできない、って時にレスされるのが次のようなもの。

  1. プライベートIPで見てみ。
    名前解決をすっ飛ばして、ii.になるので表示されるはず。
  2. 翻訳サイトにホスト名を突っ込んでみ。
    PC - ルータ - 翻訳サイト に接続され、翻訳サイトの中の人が鯖にアクセスしようとする。
    外部からの接続の場合と同じで、鯖から翻訳サイトにデータが返信されて、それがPCに戻ってくるはず。
  1. (接続するPCの)hostsファイルを書いてみ。
    winなら%windir%\system32\drivers\etc\hosts(c:\windows\system32\drivers\etc\hosts)あたり、Mac,Linux,*BSDなら/etc/hostsあたりに、ホスト名とプライベートIPの対応を書くことで、ii.になる。 ただし,この設定の意味は結局はプライベートIPの中身であるので、やってることはプライベートIPアドレスを見てるに過ぎない。 hosts ファイルの構造  

    # Copyright (c) 1993-1999 Microsoft Corp.

    #

    # This is a sample HOSTS file used by Microsoft TCP/IP for Windows.

    #

    # This file contains the mappings of IP addresses to host names. Each

    # entry should be kept on an individual line. The IP address should

    # be placed in the first column followed by the corresponding host name.

    # The IP address and the host name should be separated by at least one

    # space.

    #

    # Additionally, comments (such as these) may be inserted on individual

    # lines or following the machine name denoted by a '#' symbol.

    #

    # For example:

    #

    # 102.54.94.97 rhino.acme.com # source server

    # 38.25.63.10 x.acme.com # x client host

127.0.0.1 localhost

  1. 内部用DNSたてれ。
    LAN内から鯖のIPアドレスを聞かれた場合にプライベートIPを返すよう(内部用)DNSを設定しておくと、ii.になる。

MENU

FrontPage
質問について
過去ログ
簡単FAQ

最新の20件

2012-07-05 2007-06-03 2007-03-16 2006-09-22 2006-08-17 2006-02-04
  • 外部からはピコーンなのに内部からはショボーンです
2005-04-24 2005-04-14 2005-04-12



Counter: 9288 today: 1 yesterday: 0