web-dev-qa-db-ja.com

パケットのルーティングでMACアドレスはどのように使用されますか?

最近、パケットがイーサネットフレーム内にカプセル化されていることがわかりました。パケットはIPアドレスを使用し、フレームはMACアドレスを使用します。

ルーティング用のイーサネットフレームでIPアドレスが使用されないのはなぜですか?基本的なWebサイトにアクセスしようとすると、コンピューターはDNSにアクセスして、ユーザーが入力したドメイン名に関連するIPアドレスを見つけます。コンピュータはどのようにして正しいMACアドレスを見つけますか?

本当に、MACアドレスはインターネットトラフィックのルーティングにどのように使用されますか?

ありがとう

14
BenAdamson

IPパケットは常にイーサネットフレームにカプセル化されるわけではありません。 ISDNなどの他の物理メディアもあります。パケットがルーティングされるとき、IPアドレスを使用してネクストホップが決定され、物理アドレスはネクストホップとして機能するインターフェイスを物理的に識別するために使用されます。前者(ネクストホップを決定する)のみが通常ルーティングと呼ばれます。

2番目の部分に答えるために、MACアドレスはIPv4のARP(アドレス解決プロトコル)とIPv6のND6(近隣探索)を介して検出されます。

更新:IPヘッダーの宛先IPアドレスが最終宛先です。ルーティングのプロセス(各ホップで)では、ネクストホップのIPアドレスを取得して(最終的に)ルーティングテーブルから最終的な宛先に到達します(これはデフォルトゲートウェイのIPアドレスである場合があります)。パケットをネクストホップに送信するには、そのMACアドレスが必要です。中間リンクをホッピングしている間、IPヘッダーのIPアドレスは変更されず、MACアドレスのみが変更されます。

13
jman

少し遅れましたが、ここに私の答えがあります:) ...データを送信するには、MACアドレスとIPアドレスの2つのアドレスが必要です。基本的に、送信側ホストはMACアドレスに対してARPを実行します。これは、ローカルホストがIPアドレスを持っているホストのMACアドレスを認識していないか、デフォルトゲートウェイのMACアドレスに対してARPを実行する場合に発生します(まだわからない場合) IPアドレスが別のサブネット/ネットワークにあるかどうかを確認します。 MACアドレスを取得すると、IPパケットはL2フレームにカプセル化され、メディアに送信されます。 IPパケットが別のサブネット/ネットワーク上のホスト向けである場合、それはデフォルトゲートウェイに送信され、このルーターはL2フレームのカプセル化を解除(削除して破棄)し、IPアドレスをチェックして転送します。ルータがこれを行うには、メディア経由で送信するためにMACアドレスが必要です。ルーティングテーブルでネクストホップを検索し、元のホストから送信されたのと同じ送信元および宛先IPアドレスでIPパケットをカプセル化します新しいL2フレーム。今回は、送信元アドレスのMACアドレスはルーターの転送インターフェースのMACアドレスであり、ネクストホップの受信インターフェースは宛先MACアドレスになります。これはホップからホップへと続き、MACアドレスが変更されるたびに最終ホストに到達しますが、元のIPアドレスは同じままです。

3
caspe_ghost

ここが重要なポイントです。インターネットトラフィックよりも多くの種類のパケットが存在する可能性があります。 [〜#〜] ipx [〜#〜] を使用できますが、これはルーティング不可能です。クライアントはどのようにしてお互いを識別しますか? MACアドレスによって。

ルーティング!=アドレス指定。これは、実際にMACが機能する場所です。

ルーティングするために、OSIモデル レイヤーを追加 を使用して、次のゲートウェイへのパスを検出できます。この層はルーティングを担当しますが、MACアドレスについては何も知りません。

補足として、ハードウェアレベルでは、MACアドレスはスイッチで使用されますが、ルーティングには使用されません。から スタッフの仕組み

スイッチは、データの最初のパケットをNode Aから取得します。MACアドレスを読み取り、セグメントAのルックアップテーブルに保存します。スイッチはここでNodeパケットがアドレス指定されるときはいつでも、このプロセスは学習と呼ばれます。

このようにして、スイッチはトラフィックが正しいポートにのみ出力されることを確認できます。これは、ネットワークの輻輳を減らすほどルーティングを達成するものではありません。そのMACアドレスを宛先とするブロードキャストとトラフィックのみがポートから送信されます。

2
Lynn Crumbling

最近私は同じことを考えていて、この質問に出くわしました。これがこの質問に対する私の答えです。パケットを正しい宛先に正しく送信するには、実際にはMACアドレスが必要です。これは、パケットがVLAN経由で送信される必要がある場合に特に当てはまります。 VLAN複数の物理インターフェースを介して接続されている複数のスイッチ/ルートがある可能性があります。ただし、IPルーティングはこれらの物理インターフェースを認識しません。論理接続のみを認識しています。たとえば、ルート10.10.10.0/24はVE/VIF0.10(logical VLAN interface)および/またはネクストホップネイバーが20.20.20.1を介して到達可能です。VLAN 10.次に、どのインターフェースパケットが送信されますか?これは、ARPが図の中で出てくるところです。ARPは、ネクストホップIPアドレスに関連付けられたMACアドレスを検出するのに役立ちます。スイッチ/ルーターがネクストホップMACを学習すると、それとともに学習しますそのMACに到達可能な物理インターフェース。したがって、パケットのルーティング中に、まず宛先IPに対応するMACが検索され、次にそのMACに関連付けられた物理インターフェースが検索されます。最後に、その物理インターフェースを介してパケットが送信されます。対応するMACその宛先IPへの宛先MACとして使用されます。これがない場合、ルーティングされたパケットは常に発信VLANでフラッディングされます。

お役に立てれば。

ありがとう。

0
NeilB

回答:MACアドレスは、パケットのルーティングプロセスでは使用されません。

  • セグメント->トランスポート層(TCPポート)
  • パケット->ネットワーク層(IPアドレス)
  • フレーム->データリンク層(MACアドレス)
  • ビット->物理層(電気/光信号)

独自のパケット/セグメントアクセスを作成 http://wirefloss.com/wireit/

2つのモデル(TCP/IPおよびISO/OSI)があります http://www.techexams.net/technotes/ccna/osimodel.shtml

詳細:アプリにはいくつかのデータがあります。これは、前述のレイヤーによってカプセル化されます。カプセル化とは、フィールドを含むヘッダーが各レイヤーに追加されることを意味します。データがローカルネットワークを離れることがない場合、MACアドレスは同じになります。データをネットワークの外部に配信する必要がある場合、フレームヘッダーはルーターによって取り除かれ、ルーターフィールドによって置き換えられます。

0
Marek H