なぜ各インターフェイスにIPアドレスを与える必要があるのですか?各デバイスに1つを与えるだけでは十分ではありませんか?
なぜ各インターフェイスにIPアドレスを与える必要があるのですか?各デバイスに1つを与えるだけでは十分ではありませんか?
回答:
番号。
とはいえ、簡単な例を見てみましょう。
3つのインターフェイスを持つコンピューターがあります:(eth0
有線イーサネット)、wlan0
(wifi)、およびvboxnet0
(virtualbox)。インターフェースの1つは内部ネットワークに接続され、1つはインターネットに接続され、最後の1つは仮想コンピューターのネットワークに接続されます。たとえば、10.1.2.3というアドレスが1つだけあり、それらのネットワークの1つで到達可能な多数のパケットを192.168.1.2に送信するとします。どこに送信すればよいでしょうか。どこにでも送信することはできません。そのような動作は、すべてのネットワークを短時間であふれさせます。
しかし、eth0インターフェースに192.168.1.3があり、wlan0に10.1.2.3があり、vboxnet0に172.0.0.1がある場合、デフォルトのルーティングテーブルは「eth0を送信する」と言うでしょう。(これは明らかに、より複雑なルーティングルールではるかに複雑になる可能性があります)。
そして逆に、プライベートネットワークに対して開かれているインターフェイス上でのみサービスを実行したい場合があります。そのため、リクエストが別のインターフェイスに届くと、まったく処理されません。
ケース1:ルーター
理論的にはこれが可能です。
ただし、通常、IPアドレスが特定のネットワークマスク(10.0.0.0/28など)と「一致する」場合、IPパケットは宛先に「直接」送信されます。それ以外の場合、パケットはルーターを介して送信されます。
これの意味は:
2つのネットワークのいずれかで、あるコンピューターから別のコンピューターに送信されるパケットは、ルーターを通過しません。
これは、各コンピューターのIPアドレスが、接続先のネットワークのネットワークマスクと一致することを意味します。
ルーターに送信されるパケット(ルーターによってルーティングされるパケットも含まれます!)は、コンピューターから2番目のルーターを経由してルーターに送信されません。
つまり、ルーターのIPアドレスは両方のネットワークのネットワークマスクと一致する必要があります。
ただし、1つのネットワークの1つのコンピューターから他のネットワークのコンピューターに送信されるIPパケットは、ルーターを介して送信されます。
これは、1つのネットワーク内のコンピューターのIPアドレスが他のネットワークのネットワークマスクと一致してはならないことを意味します。
1つのIPアドレスが両方のネットワークマスクに一致する方法でIPアドレスと2つのネットワークマスクを選択することはほとんど不可能ですが、多くのIPアドレスは1つのネットワークマスクにのみ一致します。
ケース2:異なるプライベートネットワーク
コンピューターが相互にデータを交換できない2つのプライベートネットワークに接続されている場合があります。
この場合、コンピューターは両方のネットワークで同じIPアドレスを持つ場合があります。
IPv4の場合、OSは2つのネットワークのネットワークマスクを使用してそれらを区別するため、ほとんどのOSはこれをサポートしません。ネットワークには異なるネットワークマスクが必要です...
IPv6の場合(「リンクローカル」アドレスを使用)、コンピューターは 2つの異なるネットワークで同じ(リンクローカル)IPアドレスを持つことができます。したがって、2つのネットワークカードは同じIPアドレスを持つことができます。
私は、なぜ各インターフェイスにIPアドレスを与える必要があるのか疑問に思っていました。各デバイスに十分ではありませんか?
あなたの仮定に挑戦することから始めましょう。なぜこれが機械の振る舞いではないと言うのですか?192.168.1 / 24をeth1に、192.168.2.1 / 24をeth2に割り当てたとします。192.168.1.0/24 out eth1および192.168.2.0/24 out eth2のルートをインストールし、そのルートに沿って送信されるパケットの優先ソースIPアドレスを決定する以外に、IPアドレスを割り当てるインターフェイスはどれくらい重要ですか?本当に何が変わるのですか?マシンのインターフェイスに割り当てられたすべてのIPアドレスがマシンに属しているかのように、マシンはどのような意味で動作しませんか?
両方のアプローチが使用されます。最も一般的なアプローチは、実際にはこれら2つのアプローチのハイブリッドです。
「デバイスにIPアドレスを与える」という極端な例では、すべてのインターフェイスが1つのIPアドレスがブリッジに割り当てられたフィルタリングブリッジに接続されているかのように動作するデバイスを想像できます。
「各インターフェイスにIPアドレスを与える」極端な例では、各インターフェイスが個別のマシンのように振る舞うデバイスを想像できます。(デバイスが現在どのように機能するか、または1つのインターフェースに割り当てられたIPアドレスに接続しているが、パケットが到着して別のインターフェースに送信される人について考える場合は、こちらを参照してください。)
実際には、ほとんどのマシンはその中間のどこかで動作します。すべてのIPアドレスがマシンに所有されているかのように動作します。特定のデバイスへのIPの割り当ては、OSにそのインターフェースからデフォルトルートをインストールし、ソースIPアドレスが存在しないインターフェースから送信されるパケットにデフォルトのソースIPアドレスを設定するように指示する以上のことはしません。強制された。
それ以外の場合、すべてのIPアドレスがマシンに属しているかのように動作します。パケットの処理方法は、受信したインターフェイスにあまり依存しません。別のインターフェイスで受信した1つのインターフェイスに送信元IPアドレスが割り当てられたパケットは、ルーチンです。アドレスが割り当てられているインターフェイスは、パケットが送信されるインターフェイスに直接影響しません。ルーティングテーブルはそれを決定します。
IPアドレスを持つデバイスがネットワーク内に存在します。
ルーターは、ネットワーク間のトラフィックを渡すことを主な目的とするデバイスです。
ルーターが2つのネットワーク間でパケットを渡すには、両方のネットワーク内に存在する必要があります。
ルーターには、各ネットワーク内に「アーム」があります。または、それをインターフェイスと呼びます。また、ネットワーク内にインターフェイスが存在する方法は、ネットワーク内でIPアドレスを割り当てることです。
ルータを設定する場合従って、各インタフェースは、そのルータが属するネットワークを識別するためにIPアドレスを受信内に。
免責事項:上記のリンクは私のブログです。私のブログは収益化されていません。私はあなたからそれを読んで利益を得ません。私はあなた(そして他の読者)の利益のためだけにリンクを提供しています。
一般的なケースでは、接続するローカルネットワークごとに1つのIPが必要です。これがTCP / IPの定義方法です。特定のローカルネットワーク上の各ホストには IPアドレスがあり、次のことが可能です。
複数のデバイスが接続されたローカルネットワーク(イーサネット、Wi-Fiを含むほとんどの802.xローカルネットワーク)がある限り、TCP / IPの動作を根本的に変更しない限り、それを回避することは非常に困難です。
しかし、実際にはそれを回避することは可能ですが、それは非常に具体的です。
ポイントツーポイントリンク(スイッチまたはハブのない2つのデバイス間のポイントツーポイントイーサネット、DSLリンク、SONET / SDHリンク、フレームリレーまたはATM VCなど)のみを含むネットワークを考えます。
通常の規則では、各リンクに/ 30を使用するため、各端のデバイスにはそのリンクのIPアドレスが割り当てられます。
ただし、「IPアンナンバード」を使用して、それらのリンクにIPアドレスを関連付けることはできません。ここで、デバイスのループバックインターフェイスにIPを割り当て(実際には任意のインターフェイスですが、ループバックがこの目的で最も簡単です)、動的ルーティングプロトコル(IS-IS、OSPF、EIGRP ...)を使用します。このルーティングプロトコルは、さまざまな番号なしリンクを介してそのIPアドレスにトラフィックをルーティングする方法をアドバタイズします。
IPアドレスにはルーティング情報が含まれます。IPアドレスは、割り当てられたプレフィックス長に基づいて、ネットワーク番号とホスト番号の 2つのコンポーネントに分割されます(元々はネットワークマスクとして表されていましたが、これは依然としてネットワークスタックで内部的に実装される方法です)。
ルーティングが適切に機能するには、特定のネットワークに接続されているすべてのデバイスに同じネットワーク番号のアドレスが必要です。送信者は、自分のネットワーク番号を受信者のアドレスと比較することにより、受信者が同じネットワーク上にあるか異なるネットワーク上にあるかを判断します。同じネットワーク内にいる場合、直接送信します。それ以外の場合、メッセージを宛先に近づけることを仕事とするルーターに送信します。
そのため、デバイスが複数のネットワークに接続されている場合、そのネットワーク上のデバイスからアクセスできるように、それらのネットワークのそれぞれにアドレスが必要です。
ただし、特定のネットワークインターフェイスにアドレスを特別に割り当てる必要はありません。デバイスは、所有するすべてのIPのリストを1つのテーブルに保持するだけで済みます。ただし、インターフェイスには、接続されているネットワークに関する情報が必要です。IPとネットワークマスクを各インターフェイスに割り当てることにより、この情報を1か所に配置し、設計を簡素化します。IPのリストと、インターフェイスが接続されているネットワークのリストとの一貫性を保つために、追加のコードは必要ありません。
標準的なケースでは1つのIPで十分ですが、他の回答で強調されているように、そうでない場合が多くあります。
他の回答では、ルーターの場合について既に言及しています。1つは仮想マシンの場合であるvirtualboxに言及しています。1つの物理デバイス上で複数の仮想デバイスを実行している場合があります。別のケースはVLANです。実際には、単一のネットワークカードに、異なるIPアドレスを持つ複数の異なる仮想LANに接続している場合があります。また、TCPポート80で複数のWebサーバーを実行したい場合など、何らかの理由で複数のIPを備えたインターフェースを使用することもできます。このような構成はサーバーでは珍しくありません。 、ただし、いくつかのIPアドレスが設定されます。