ネットワーキングにIPv4 | 6の代わりにMACアドレスを使用できなかったのはなぜですか?[閉まっている]


184

TCP / IPおよびその他の関連するプロトコルと技術について読んでいます。MACアドレスは、(合理的に:)一意であり、すべてのネットワークインターフェイスに割り当てられている一方で、大きな可能性のあるスペース(数百兆)があると説明されています。インターネットワーク通信にMACアドレスの代わりにIPv4またはIPv6アドレスが使用される歴史的および技術的な理由は何ですか?

基本的なものが足りないのですか、それともばかげた理由ですか(たとえば、レガシーテクノロジーの上に構築するなど)。


55
知識の修正:合理的に一意。同一のHW MACアドレスを持つカードが実際に確認されています-これはデバッグする「楽しい」ネットワークの問題です。
-Piskvor

9
個人的には、異なるマシン上の異なるネットワークカードに同じMACアドレスを実際に割り当てるバグのあるドライバーを目撃しました(ドライバーをインストールする前に一意のHWアドレスがありました)。まあ、それは痛かったです。
マッシモ

3
マッシモ、まったく同じものを見てきました。ドライバーが開発中にそれを行うことは珍しくなく、プログラマーは生産に移行するときにそのコンポーネントを有効にすることを忘れることがあります。@Felix、製造業者が時間の経過とともに世界中のさまざまな地域でMACを再利用することも一般的です。たとえば、2005年に米国で販売されたカードは、2013年に中国で販売されたものと同じMACを持つ場合があります。
ロバートカウチャー

30
MACアドレスでパケットをアドレス指定することは、社会保障番号で文字をアドレス指定するようなものです。
マイキー

14
特定のMACアドレスが現在どこにあるかをどのように知りますか?前もって、別のネットに移動するときにインターネット上のすべてのノードに通知する必要はありませんか?
トールビョールンラヴンアンデルセン

回答:


345

MACアドレスは一意の場合がありますが、それがどこにあるかを示す番号について特別なことはありません。MAC 00-00-00-00-00-00はから地球の反対側にあるかもしれません00-00-00-00-00-01

IPは、グループとしてコンピューターを論理的に区別するためにコンピューターのグループに階層的に課される任意の番号付けスキームです(サブネットとは)。これらのグループ間でのメッセージ送信は、ルーティングテーブルによって行われます。ルーティングテーブル自体は複数のレベルに分割されているため、すべてのサブネットを追跡する必要はありません。たとえば17.x.x.x、Appleネットワーク内にあります。そこから、Appleはその数千のサブネットのそれぞれがどこにあるのか、そしてどのようにそれらに到達するのかを知るでしょう(この情報を知る必要はありません。

また、これを別のシステムペアに関連付けるのは非常に簡単です。州発行のID番号を持っているのに、そのID番号が既にあなただけに固有である場合、なぜ住所が必要なのでしょうか?郵送先住所が必要なのは、それがあなたへの通信の一意の宛先がどこに行くべきかを記述する任意のシステムだからです。


23
これは素晴らしい答えです。コンピューターが同じサブネット上にあると判断すると、最終的にIP通信でMACアドレスが使用されることを付け加えました。ARPポイズニングが攻撃として機能するのはこのためです。デフォルトゲートウェイの場合と同じように、コンピューターは別のサブネット宛てのパケットを、デフォルトゲートウェイIPのARPルックアップによって返されたMACアドレスにアドレス指定します。レイヤー3 / IPアドレス指定は、主にルーターによって使用され、宛先が同じサブネット上にあるかどうかを判断するためにホストによってのみ使用されます。
ショーンC.

7
@ SeanC、MACアドレスは最終的に802.1ベースのラインプロトコル(イーサネット、WiFi、トークンリングなど)を介したIP通信で使用されます。ただし、PoSDHやIPoATMなどのATMプロトコル経由ではありません。
クリスS

25
また、ネットワークカード(またはコンピューター全体)を交換する必要がある場合、同じIPアドレスを保持できます。IPの抽象化がなければ、それがどれほど厄介なものになるか想像してみてください。
OrangeDog

3
@ChrisS私は、システム管理者として、単一のベンダーからカードのバッチを受け取り、カード全体のパレットに1つのMACアドレスしか持っていない友人がいます。ベンダーは、注文が工場から直接落とされたため、カードが小売店の流通に正しく混ざり合わず、重複があったと述べました。カードが小売流通に行く前に、それらは混ざり合ってduを広めることになっていた。そのため、特定のベンダーにとって、MACアドレスは一意ではなく、ベンダー間ではるかに異なります。

4
ベンダーファームウェアのバグなど、重複したMACアドレスの発生にはさまざまな歴史的な理由があります
マイクペニントン

73

ルーティングテーブルが非常に大きくなるためです。

IPアドレスは階層的に割り当てられるため、ルーターはアドレスプレフィックスによってルートをグループ化できます。現在、ネット上に存在する自律システムの数は、今日のハードウェアに適合するのに十分合理的です。

一方、ネットワーク全体でのMACアドレスの分散はランダムであり、トポロジとはまったく関係ありません。ルートのグループ化は不可能です。すべてのルーターは、トラフィックを中継するすべてのデバイスのルートを追跡する必要があります。これがレイヤー2スイッチの機能であり、特定のホスト数を超えて拡張することはできません。


これについて詳しく説明していただけますか?なぜ彼らは?なぜIPv *には当てはまらないのですか?
フェリックスサパレリ

2
MAC形式のアドレスを使用するルーターテーブルがIPv4 / 6形式と比較して「あり得ないほど大きい」という本質的な理由はありません。問題は、IPアドレスの割り当てが、WANルーティングを実行可能にする階層と結びついていることです。MACアドレスは、製造元によってイーサネットデバイスに割り当てられ(ソフトウェアで変更可能)、ハードウェアデバイスが移動するにつれて、WANルーティングテーブルに対するアドホックリビジョンを「非常に大きな」タスクにすることになります。
ハードマス

34

世界は(少なくとも歴史的に)イーサネットだけで動作するわけではありません。IP層は、その下のハードウェア層から独立しています。

PPPノードにはMacアドレスがありません。arcnet、トークンリング、fddi、hppiも同様です。これらの他の標準は現在ではそれほど重要ではないかもしれませんが、イーサネットは将来的に他の技術に置き換えられる可能性があり、IP層に対して透過的です。

新しいハードウェアプロトコルを発明し、それらをイーサネットと呼ぶ方法については長い議論がありますが、私は脱線します...


5
トークンリングにはMACアドレスがあります。
クリスS

PPPノードにv6アドレスがないため、ipv6に切り替えることができないということですか?(または、少なくとも5〜10年前にはありませんでした)。私の知る限り、今日のipv6の展開は決して停止していません。これはMACにも影響を与えません。
ドルス

6
@Dorus:あなたのコメントは意味がありません。IPはイーサネットやPPPなどの基礎となるプロトコルに基づいているため、PPPノードはIPv4アドレスとIPv6アドレスの両方を持つことができます。ただし、PPPノードにはMACアドレスがありません(PPP標準にはないため)。
sleske

3年後(そしてもう少し知識がある)、「新しいハードウェアプロトコルを発明し、それらをイーサネットと呼ぶ方法についての長い議論」を読みたいです。; P
フェリックス・サパレリ


30

IPの階層的なルーティングに加えて、MACアドレスとは別にすることで、同じIPアドレス(および論理ネットワークトポロジ)を維持しながら、ネットワークカードまたはコンピューター全体を変更できます。

この抽象化により、はるかに柔軟で保守可能なネットワーキングが可能になります。


22

見てみましょうOSIモデルhttp://en.wikipedia.org/wiki/OSI_model

これは、ルーティング、レイヤー3の概念、物理的なレイヤー2のメカニズムに基づく決定を行うことが意味をなさない理由を説明しています。

最新のネットワークは、エンドツーエンドのコミュニケーションを実現するために、さまざまなレイヤーに分割されています。ネットワークカード(MACアドレス[物理アドレス]で指定されているもの)は、その物理ネットワーク上のピアとの通信のみを担当する必要があります。

MACアドレスを使用して達成できる通信は、マシンと物理的に接触している他のデバイスに限定されます。たとえば、インターネットでは、各マシンに物理的に接続されていません。そのため、物理的に接続されていないマシンと通信する必要がある場合に、TCP / IP(レイヤー3、論理アドレス)メカニズムを使用します。


6
OSIモデルについて言及する場合は+1。
マッシモ

7

b0fhは正しいですが、MACアドレスは常に一意ではないためです。

たとえば、仮想化シナリオを参照してください。ここでは、複数のホストが同じMACアドレスを持つ仮想マシンを提供できます。


4

MACアドレスのルーティングテーブルには、MACアドレスがリストされたほぼすべてのデバイスが必要です。IPのインターネットへのルーティングは、単一のエントリ0.0.0.0/0です。ネットワーククラスの場合、10.0.0.0 / 8 172.16.0.0/16および192.168.0.0/24に分類されます。これらの多くは、172.16.0.0 / 12や192.168.0.0/16のように集約して、ルーティングテーブルのサイズをさらに削減できます。

ルートは、マスク内の1ビットの数と逆の順序で検索されます。これにより、192.168.0.0 / 16のルートと0.0.0.0/0のルート(デフォルトルート)がある場合、192.168.100.0 / 24へのルーティングが機能します。

編集:当初、IP範囲はいくつかのクラスに分割されていました。A、B、およびCが最も重要です。Aクラスはアドレス範囲の前半を構成し、B範囲は次の四半期、C範囲は範囲の次の8を構成しました。これらのクラスには、それぞれ8、16、および24ビットのマスクがありました。その後、これらのマスクの厳密な使用は廃止され、アドレス割り当てはさまざまなサイズで行われました。

割り当てのサイズは常に2の累乗であり、各割り当ての最低および最高アドレスは予約されています。各割り当てには、ルーターのアドレスも含まれます。多くの場合、これは最低または最高の非予約アドレスです。最小の実際の割り当ては/ 30アドレスです。

IPv6は、同じ形式の割り当てを使用します。/64は、インターネット上で表示可能な最小の割り当てです。通常、ISPにははるかに大きな割り当てが与えられます。これは、インターネットルーターが知る必要があるすべてです。予想される割り当ては、RFCで指定されています。ISPは、自身のサブネットをルーティングする方法と、どのインターコネクトルーターにルーティングするアドレスを知る必要があります。これは、各MACアドレスをルーティングする方法を知るよりもはるかに簡単です。


7
ネットワーキングにはクラスはもうありません。1994年以降はありません。= [
クリスS

@ChrisS IPv4 PTRルックアップは、クラスごとに行われますが、委任は可能です。集約はクラスの有無にかかわらず適用され、BおよびC集約はクラスレスネットワークの前でも適用されます。
BillThor

2
PTRルックアップはOctetによって行われ、クラスはありません。1520にRFC 1517を参照してください
クリス・S

2
@ChrisS私が働いている人々の中で、クラスはネットマスクA = 1、B = 2、およびC = 3のオクテットの数を参照するために使用されます。それらを履歴範囲に関連付けず、Aクラス10.0.0.0をBチャンクとCチャンクに分割します。本来の意味ではないにしても、クラスは伝統に従って生き続けます。
BillThor

2

彼らが伝えようとしている主な点は、MACアドレスがベンダーによって決定されるということだと思うので、インターフェースを製造する非常に多様なメーカーのためにローカルサブネットで順守できる一貫したアドレス指定スキームはありません。

MACアドレスは、宛先アドレスがローカルサブネット(192.168.0.xなど)にある場合に使用されます。トラフィックがローカルサブネットと一致しない場合、コンピューターはルーティングテーブルを参照します。通常、ルーティングテーブルは、ローカルサブネット(0.0.0.0)に一致しないトラフィックをローカルゲートウェイに送信するよう指示します。この時点で、MACアドレスへの所属は完全に削除されます。MACアドレスをグローバルに使用できる唯一の方法は、1つの巨大でフラットなサブネットを持つことです。これは完全に機能しません。


2

MACアドレスは、同じマシン上の異なるイーサネットアダプターで同じにすることができます。SUNには、マシンごとに1つの一意のMACアドレスがありました。そのため、SUNコンピューターのイーサネットカードには一意のMACアドレスがありませんでした。

したがって、マシンを2つの異なるネットワークに接続すると、両方のネットワークで同じMACアドレスが使用されました。


2

MACアドレスは、ISO / OSIモデルおよびTCP / IPモデルのリンク層(2n)のアドレスです。これは、ローカルネットワーク内のノードの接続にMACアドレスが使用されることを意味します(ポイントツーポイント)。IPアドレスは、インターネット(エンドツーエンド)内のネットワーク層(3番目)のアドレスです。

両方のアドレスは、そのレイヤーでのみ使用され、外部で使用されることを意図していません。


1

ターゲットIPアドレスのMACアドレスは、単一のローカルブロードキャストドメイン内でのパケット配信にのみ役立ちます。


1

ルーティングテーブルが大きくなるため、IPv4アドレスの代わりにMACアドレスを使用することの問題はルーティングであると人々は言いましたが、それはIPv4ルーターを想定しています。小さなルーティングテーブルを作成することもできます。興味がある場合は、フラットな名前空間ルーティングを探してください。その手法を説明している論文の1つは次のとおりです。http//www.cs.uiuc.edu/~caesar/papers/rofl.pdf


2
ROFLは、AS内のすべてのルーターがAS内のすべての単一ホストを追跡することを提案しています...そして、ホスト識別子に暗号化ハッシュを使用します...ただし、テーブルを解釈するには暗号化アルゴリズムが必要です。著者は気が狂っています。IPには欠点があるかもしれませんが、少なくとも基本設計には正気な前提はありません。
クリスS

ROFLでは、ファーストホップルーターのみが、AS内のすべてのノードではなく、接続されたノードのセットを保持する必要があります。セクション#2ではキャッシュについて説明していますが、それは最適化です。暗号は、ノードがルーターに参加している場合にのみ必要であり、ルーティングテーブルの解釈には必要ありません。ルーティングはDHT上で実行され、階層ルーティングよりもはるかに回復力があります。
ニコラクネゼビッチ

1

私の回想では、MACアドレスは実際にはイーサネットアドレスです。イーサネットアドレスは2つの部分に分かれています。ベンダー部分-イーサネットカードのベンダーを識別するものと、ベンダーによって割り当てられたアドレス部分です。それらを一意にするかどうかはベンダー次第です。

したがって、48ビットのMACアドレス空間は効率的に使用されず、前述のように階層的にも使用されません。

このアドレスは、ローカルのCSMAネットワークネットワーク上で一意のアドレスを持つように設計されています。

少なくとも、覚えている限りでは。

IPアドレスは、より一般的にスケーリングし、別の問題を解決するように設計されています。


MACアドレスは一意である必要があります-他の人が指摘したように常に発生するわけではありませんが、必須です。メーカーは複数のベンダーIDを取得できます。約400万のベンダーIDがあり(MAC48アドレス空間には、まもなく登場するMAC64アドレス空間もあります)、割り当てられているのは10分の1未満です。各ベンダーIDには1600万のデバイスIDがあり、大規模なベンダーでも使い果たされるには時間がかかります。
クリスS
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.