人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

グローバルIPで範囲が異なるノード間の通信について

ローカルネットワークで、10.0.0.0/24と10.0.1.0/24というネットワーク間で通信を行うためには10.0.0.0/16という両方を含む上位のセグメントを作ればお互いに通信できる、ということは理解しているのですが、グローバル空間で通信を行うインターネットでは完全に異なるセグメント間で通信が行われるわけですよね。そこで質問です。

1)
プロバイダAとプロバイダBが直接繋がっているとして、Aの100.100.100.0/24とBの101.101.101.0/24という二つのネットワーク間で通信を行う場合、これらの境界にあるプロバイダAとBを結ぶノード同士はどのようなIP設定になっているのでしょうか?

2)
上の質問とあえて分離して質問しますが、AS番号を持つ組織に対してグローバルIPが割り当てられるのでしょうか?(そうだとすれば、異なるグローバルIP間はBGPを使う、といった理解で納得できます)それとも、AS番号を持たない組織が(AS番号を持つ上位の組織から与えられた以外の)グローバルIPを取得する、ということはあり得るのでしょうか?

●質問者: quesit
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● JULY
●150ポイント ベストアンサー

ローカルネットワークで、10.0.0.0/24と10.0.1.0/24というネットワーク間で通信を行うためには10.0.0.0/16という両方を含む上位のセグメントを作ればお互いに通信できる、ということは理解しているのですが

そうする事もできますが、普通はしません。もし、10.0.0.0/24 と 10.0.1.0/24 の間で通信したければ、その2つのネットワークにつながっているルータを用意します。

このときの「ルータ」は、製品としての「ルータ」よりは、ネットワーク層で中継する役割を持つ物、という意味での「ルータ」で、L3 スイッチや、NIC を複数もって中継処理を行うサーバも含みます。

ルーター - Wikipedia

一番、シンプルな構成であれば、NIC を2つ持つルータで、

と IP アドレスを設定します。

ルータの 10.0.0.1 の NIC と同じネットワークに PC があって、そのアドレスが 10.0.0.2 だったとします。また、ルータの 10.0.1.1 と同じネットワークに 10.0.1.2 のアドレスを持つサーバがあったとします。

この時、PC に「デフォルトゲートウェイは 10.0.0.1」という設定が、サーバに「デフォルトゲートウェイは 10.0.1.1」という設定があれば、通信が成立します。

PC がサーバへパケットを送出する時の手順は以下のようになります。

  1. 送出先のアドレス(10.0.1.2)が、PC 自身のネットワーク(10.0.0.0/24)の範囲内かどうかを確認する。
  2. 10.0.1.2 は 10.0.0.0/24 の範囲外なので、デフォルトゲートウェイへ、宛先アドレスが 10.0.1.2 のパケットを送出する。
  3. 受け取ったルータは、自分自身宛のアドレスか(10.0.0.1 or 10.0.1.1)を確認する。
  4. 自分宛でなかった場合、自分のつながっているネットワークに含まれるか(10.0.0.0/24 or 10.0.1.0/24)を確認する。
  5. 10.0.1.2 は 10.0.1.0/24 の範囲内なので、10.0.1.1/24 のアドレスが設定されている NIC から受け取ったパケットを送出する。

いろいろ端折っている(例えば、どうやって 10.0.1.2 宛のパケットをルータへ向けて送出するか、といった辺り)ので、不正確なところがありますが、ここで重要なのは、どこにも「10.0.0.0/16」というネットワークは登場しません。

さらに言うと、サーバ側のネットワーク(10.0.1.0/24)を 192.168.1.0/24 に変えても成り立ちます。なので、まず「上位のセグメント」なる物がネットワーク間の通信に不要である事を理解して下さい。

で、ここでは1対1のネットワークなので、ルータが持つルーティングテーブルが、自身が直接つながっているネットワークのみルーティングする形になりますが、ルータ自身が直接つながっていないネットワークに対して、例えば「172.30.0.0/16 へは 10.0.1.253 のルータへ転送する」といった情報を持つ事があります。このルーティング情報を手で設定するのではなく、ルータ間でやりとりをするためのプロトコルがあり、BGP はその一つです。

ここまで、プライベートなネットワークイメージして書きましたが、基本はインターネットでも全く変わりません。複雑さは桁違いですが、ルーティングの基本は変わりません。

そういった、インターネットならではの特徴に関して、下記の本が参考になるかもしれません。

インターネットのカタチ―もろさが織り成す粘り強い世界―

インターネットのカタチ―もろさが織り成す粘り強い世界―


JULYさんのコメント
あっ、質問の意図がちがっていたかな? 上位のセグメント云々は、ルーティングテーブルの作り方の話かな? 10.0.0.0/24 と 10.0.1.0/24 のネットワークを繋いでいるルータ(仮に R1)があり、さらに 192.168.1.0/24 のネットワークにつながっているルータ(仮に R2)があって、R1 と R2 が 172.30.1.0/24 のネットワークでつながっていて、R1 172.30.1.1、R2 が 172.31.1.2 のアドレスを持っている、というケースで R2 のルーティングテーブルを考えます。 R2 のルーティングテーブルは -192.168.1.0/24 と 172.31.1.0/24 は直接つながっている -10.0.0.0/24 は 172.31.1.1 へ転送 -10.0.1.0/24 は 172.31.1.1 へ転送 となるのを、最後の2つを -10.0.0.0/16 は 172.31.1.1 へ転送 と集約できる、という事はあります。 もちろんこの場合、例えば、10.0.123.0/24 といった、10.0.0.0/16 に含まれるアドレスがすべて、R1 につながっているか、もしくは、R1 が転送先を知っている必要があります。 これはあくまで、ルーティングテーブル上で「集約」できる、という話であって、先に書いたように「10.0.0.0/24 の転送先は?」と個別であっても構いません。 ただ、ISP でのルータでは、ルーティングテーブルが巨大になる問題があるので、できるだけ集約したい、という事はあります。IPv4 でのグローバルアドレスの割り当てが、当初、地域性に配慮されていなかったので、IPv6 では最初から地域性を考慮した割り当て方針を持っていて、例えば「北米なら、このアドレスブロック」といった事があるらしいです。

quesitさんのコメント
回答ありがとうございます(質問の意図通りなので大丈夫です)。となると、はじめの例で行きますとプロバイダ間の接続という場合にはプロバイダAの100.100.100.0/24と、プロバイダBの101.101.101.0/24と両方のIP(NIC)を持つルータを一つ(以上)用意してこの間を結ぶ、ということでしょうか。ネットワークアドレスが集約できないネットワーク間には特殊な方法が必要で、それがBGPだといった誤解をしておりました。ということは、AS番号を持っていない組織が独立してグローバルIPを持っていても大丈夫そうですが、そういう理解でよいのでしょうか。もしお時間がございましたら、2)に関してももお付き合いいただけますと幸いです。

JULYさんのコメント
>> はじめの例で行きますとプロバイダ間の接続という場合にはプロバイダAの100.100.100.0/24と、プロバイダBの101.101.101.0/24と両方のIP(NIC)を持つルータを一つ(以上)用意してこの間を結ぶ、ということでしょうか。 << ISP 間をつないでいる IP ネットワークがあれば、そのネットワークセグメントはグローバルアドレスである必要はありません。私のコメントの方で登場する 172.31.1.0/24 が該当しますが、172.31.1.0/24 の存在は R1 と R2 だけが知っていればよく、それぞれのネットワーク上に存在する PC 等からは見えなくても構いません。 ISP 同士の接続の実態は知りませんが、データセンターでこのような構成になっているケースはありました。データセンターに設置する自分たちサーバにグローバルアドレスを直接設定し、自分たちのサーバとデータセンター側の間に設置するルータで、外側(データセンターの設備側)はプライベートアドレスを設定し、内側にグローバルアドレス、という構成になります。 あと、ネットワーク間をつなぐためのセグメントを設けずに通信するものもあります。「10.0.0.0/16 は 172.31.1.1 へ転送」という代わりに、「このインタフェースへ転送」という設定のしかたになります。俗に「Unnumberd」と言われるタイプで、一般企業が固定 IP で ISP と契約した場合に、このタイプになることが多いです。 >> ネットワークアドレスが集約できないネットワーク間には特殊な方法が必要で、それがBGPだといった誤解をしておりました。 << 先に書いたとおり、BGP はあくまでもルーティング情報をルータ同士で交換するためのプロトコルで、交換した情報にしたがってルータが自身のルーティングテーブルを更新します。 ただ、個々のルータレベルのルーティング情報を世界中で交換したら収集つかなくなるので、ISP の外と内でルーティングプロトコルを使い分け、外に対してはもっぱら BGP が使われています。BGP の場合、AS という単位で情報交換ができるので、ISP 同士で効率よく情報交換ができます。 >> AS番号を持っていない組織が独立してグローバルIPを持っていても大丈夫そうですが、そういう理解でよいのでしょうか。 << 大手 ISP のように、たくさんのネットワークと接続点を持っている場合は、当然、BGP で経路情報のやりとりをする必要があるので、事実上、AS 番号を持つことになりますが、一般企業や小規模な ISP など、接続点を一つしか持たないケースでは、AS 番号を持つ必要はありません。 例えば、ISP-A という ISP と固定 IP 接続の契約をして、グローバルアドレスの割り当てを8個受けている、というような場合、その8個のアドレスに対するルーティング情報は、ISP-A の内部ルーティングの情報としては持っています。 しかし、その8個のアドレスを含む、ISP-1 が持つアドレスブロックは、BGP で世界中の ISP に BGP に広告されています。 なので、グローバルアドレスの割当があるから、必ず AS 番号を持っている、とは限りません。 ただ、それは、最終的なアドレスの割当を受けているところが BGP でアドレスを広告する代わりに、上位となる ISP が広告している、ということになるので、もし、インターネット上の BGP で広告されているアドレスブロックに、そのグローバルアドレスが見つからなければ、ISP を超えた通信はできない状態になると思います。 2)に関して、ちょっと想像になりますが、インターネットのグローバルアドレスを管理している ICANN、及び、その下部組織で各地域の割り当てを担当する組織から直接、IP の割り当てを受けるような場合は、割り当てを受ける組織が AS 番号を持っているだろう、ということはあると思います。そもそも、ICANN とその地域組織からグローバルアドレスの割り当てを受けるのは、大規模な通信事業者に限られるのが実態なので、AS 番号以前に、満たすべき条件がいろいろあると思います。

quesitさんのコメント
二度にもわたり詳細なコメントで丁寧に教えていただきましてありがとうございます。内部でグローバルというのはよく見かけますが、ネットワーク同士をつなぐのにプライベートと逆転するケースは一般的なイメージと違ってて面白いですね。色々お教えいただきましたので、何度か読み直して完全に理解できるように努力したいと思います。ありがとうございました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ