インターネットが IP アドレスを使ってどのように機能するのか、よくわかりません。
たとえば、私の家にはルーターがあります。このルーターで LAN ができます。また、インターネットに接続できます。私の質問は、ここでのインターネットとは正確には何なのかということです。私の
考えでは、インターネット サービスを提供する会社から提供された別の上位レベルのルーターがあり、私のルーターに IP アドレスを配布します。上位レベルのルーターの観点から見ると、私のルーターなどのすべてのルーターが、より大きな「LAN」を形成します。
そうであれば、サーバーがどのように機能するのかわかりません。たとえば、Google のサーバーには、IP アドレスがわかっているので誰でもログインできます。しかし、この IP アドレスを Google に提供するのは誰ですか? ルーターですか? このようなことを行うルーターがある場合、どうすればそれを認識できますか?
たとえば、会社 A のルーターが IP アドレスを Google に提供し、私は会社 B のルーターを使用してインターネットを閲覧しています。この場合、私の LAN と Google の LAN の 2 つの LAN があるようです。2 つの異なる LAN にある 2 台のマシンが通信するにはどうすればよいでしょうか?
答え1
実際の例で簡単に説明しましょう:
(Everything in this example is based on IPv4)
誰でも自宅やオフィス、会社などでLANを構築できます。そのLANは、RFC1918これにより、世界中のさまざまな場所で同じ IP アドレスを持つという競合を回避できます。
プライベートLANは、公共ルーターを介してインターネットに接続します。ルーターには通常プライベートIPはLANに接続され、公共IP接続ローカルISPルーターは翻訳サービスと呼ばれるNATあなたのプライベートIP接続公共インターネット。
ローカルISPは、公共IPアドレスは、地域インターネットレジストリ。アリン米国、カナダ、カリブ海地域のいくつかの地域、および南極大陸向け。熟したヨーロッパ、ロシア、中東、中央アジアなど
のローカルISPパブリックIPアドレス範囲を使用して、クライアントのルーターに割り当てたり、他のISP(通常は国際ISPに接続されているより大きなISP)との相互接続に使用したりします。相互接続の大きなメッシュ(ウェブ)があり、ルーティングプロトコル計算する最速ルータと他のルータ間のパス。
各ISPは2つ以上のDNSサーバーを所有しており、関係が
IP address - domain name
保存され、誰でも参照できるようになっている。これらのDNSサーバーは情報を更新している。からとへ他の高階層レベルの DNS サーバーにも適用されるため、変更は世界中のすべての DNS サーバーに複製されます。いつあなたLANから接続したいhttp://www.google.com、PC/タブレット/携帯電話はDNSサーバーにその名前に対応するIPアドレスを問い合わせます(この場合は216.58.210.164) ウェブブラウザがそのIPアドレスにリクエストを送信し、ローカルルータがNAT翻訳後、要求パッケージをISPルーターに送信し、ISPルーターはそれをさらに上位のISPルーターに送信し、パッケージが到着するまでこれを繰り返します。グーグル最速または最短の経路(ルーティングプロトコル)。
Googleはページ(HTML+CSS+画像+クッキー)をルーターに送信して応答します(この場合もパッケージは最速/最短のパスを経由します)。ルーターは逆の処理を行います。NAT翻訳して LAN 上に保存し、PC/タブレット/モバイルに配信します。
もちろん、技術的でより複雑なことがたくさん起こっていますが、これは基本的な説明として役立ちます。
IPはコネクションレスプロトコルなので、ルーターをGoogleに接続するからのパスとは異なる可能性がありますルーターにGoogleを接続それは、ルーティングプロトコルこれが IP /インターネットの素晴らしい点です。ファイル転送の途中で中間ルーターに障害が発生した場合、トラフィックは別のルーターを使用して再ルーティングされ、最終ユーザーはそれに気づきません。
Windowsの場合は、コマンドと書いてipconfig /all
あなたのIPアドレスが表示されます。プライベートルーターのIPアドレス、DNSサーバー使用しているものやその他の情報。
また、そこから書き込むtracert www.google.com
と、PC からの要求パッケージがルータからルータへ移動し、1 つの ISP から別の ISP へ移動して Google に到達する様子を確認できます。
世界中でインターネット上のサーバーとサービスの大幅な拡大により、IPv4アドレスの枯渇が発生しています。ISPはIPv6を実装する必要があります。IPv6は問題を解決し、IPv4アドレスの必要性を排除するためです。NAT翻訳により、LANの使用が可能になり、公開アドレス。
答え2
2 つの異なる LAN にある 2 台のマシンはどのようにして通信できるのでしょうか?
私見ですが、まず例外を忘れたほうが一般的なルールを理解しやすくなります。
まず、自宅のルーターによって作成された何百もの閉鎖されたLANは、一種の結果論これは、IPv4 アドレスの不足により普及しただけです。
自宅のルーターより上のレベルでは、「LAN」と「WAN」の間に厳密な区別はありません。インターネットは、電話や郵便のネットワークのような単一のグローバルネットワークと考えてください。ISPにはいくつかの「階層」がありますが、階層を十分上までたどると、単一の中央ハブISPをスポークとして、代わりにメッシュ下のグラフのように、相互接続されたネットワークです。
ISPが十分に大規模であれば、上位ネットワークへのリンクが複数ある可能性があり、同じエリア内の他のISPへの直接ルートも存在するでしょう。それらはすべてBGPプロトコルどの ISP 経由で何が到達可能かに関する情報を交換します。そのため、何らかの理由で短いパスが切断された場合、すべてが長いパスを経由することになります。(今まさに私の ISP と Wikipedia の間でそれが起こっているようです。うーん。)
実際、Google や Netflix などの一部の企業は、Tier 1 ネットワークにさえ複数のリンクを持つほど規模が大きく、残っている階層はほとんど無視されています。
しかし、この IP アドレスを Google に提供するのは誰でしょうか?
IPアドレス自体は階層的に割り当て、国際アナ大きなアドレス範囲を割り当てる地域レジストリそして、それらのレジストリは、ISP やその他の企業にさらに小さな範囲を割り当てます。
しかし、これらの課題は許可アドレスを使用するには、いいえ実際のルーターの設定方法とは関係ありません。代わりに、各ネットワークのオペレーターは、所有するアドレス範囲を使用するように独自のルーターを直接設定します。
(通常、サーバー彼ら自身信頼性を確保するために、各サーバーでアドレスを手動で設定します。ただし、これは必須ではありません。パーソナル コンピュータと同じように、サーバーが DHCP を使用してルーターからアドレスを取得する場所を見たことがあります。
つまり、IANA は Google にアドレスの使用許可を与え、世界中の他の ISP はアドレスが Google のネットワークにルーティングされるようにします。残りは Google のネットワーク オペレーター次第です。
以上を踏まえると、自宅のルーターとGoogleのウェブサーバーは、インターネットの平等なメンバーそれぞれにグローバル IP アドレスがあり、ルーティング テーブルに従うことでネット上の他の場所からアクセスできます。
コンピュータには非常に単純なルーティング テーブルがあり、同じサブネットの外部にあるすべてのものは「デフォルト ゲートウェイ」(ルーター) を経由して到達可能であるとだけ記述されています。
同様に、自宅のルーターでは、「LAN」IP アドレスは LAN ポートで直接アクセス可能であり、その他はすべて ISP のルーターに送信する必要があるとだけ表示されます。
職場では、このようなルーターが各建物に 1 台ずつ、合計 5 台設置されました。そのため、ルーティング テーブルには、基本的な「同じサブネット」と「その他すべて」のルーターに加えて、他のすべての建物のルーターへの直接パスも含まれています。
ISP には複数のルータがあり、そのうちのいくつかは顧客へのルートを持ち、いくつかは他の ISP へのリンクを認識します。たとえば、「外部」ルータには次のような情報があります。
- 36.56.xx は ISP 独自の「顧客」ルーター経由でアクセスできます。
- 212.xxx は NORDUnet の 109.105.98.126 ルーター経由でアクセスできます。
- 212.162.xxはまたGÉANT の 62.40.98.13 ルータ経由で到達可能。
- (等々)
- 最終的に、レベル3を通じてすべてに到達できます。
そして、「顧客」ルータは次のように言うことができます。
- 36.56.1.1 にはポート #3 経由でアクセスできます。
- 36.56.1.2 にはポート #4 経由でアクセスできます。
- (等々)
コンピュータが Google にパケットを送信するたびに、または Google がコンピュータにパケットを送信するたびに、各ルータは到達可能な範囲を確認し、パケットを次のルータに転送します。ターミナルでTRACERT
またはコマンドを使用して、完全なパスを確認することもできます。traceroute
これが基本です。
はい、ホームルーターには、ホームネットワーク全体を1つのIPアドレスで隠すための追加のトリック、つまりネットワークアドレス変換(NAT)も必要です。これはとても広く普及している: MITのような古い組織だけが、すべての人に1つずつ割り当てられるだけの十分なIPv4アドレスを持っている。他のほとんどのネットワークはNATで我慢しなければならない。(私の職場は64のアドレスブロックを所有しているが、数百のワークステーションがある。そして学生は携帯電話で WiFi を使用しているため、ほとんどの学生は NAT の背後にいます。
しかし、どれだけ普及しているにせよ、NAT は例外であり、古いものを機能させ続けるためのハックです (2100 年代に IPv6 が普及するまで)。ほとんどのサーバーには独自のグローバル IP アドレスがあり、直接アクセスできます。Google のネットワーク内にアクセスするのに魔法は必要ありません。
確かに、もし誰かとつながりたいならはあなたのような NAT の背後では、非常に面倒なことになる可能性があります。多くのゲームでは、この理由から「ポート転送」を構成するように求められ、ピアツーピア プログラムは、NAT を介して LAN 内部に到達するためにさまざまな「ホールパンチング」トリックに頼る必要があります。
そして、ISPが「キャリアグレードNAT」を使い始めると、状況はさらに悪化するだろう。
また、大規模なISPでは、ポリシールーティングや、ルートベースの転送が不要になった場合のMPLSなど、より複雑な内部構造を持つこともあります。あまりにも遅いですが、これらは基本IPの上に追加されただけなので、別途調査する必要があります。働いたISP で。