私はほとんどのデバイスがDHCPであるネットワーク上にいます。デバイスAとDHCPサーバーの間にいくつかのスイッチがある場合、それらが何であるかをどのように確認できますか?
tracerouteは、デバイスAとDHCPサーバー間のスイッチの数に関係なく、1ホップしか与えません。
それらがCiscoスイッチ(高い確率)であり、CDPがオンになっている(かなり高い確率)場合は、ネットワークのCDPトラフィックをスニッフィングできます。
CDPは、レイヤー2トポロジの決定に役立つリンクレイヤープロトコルです。 (まさにあなたが探しているもの)
プロトコルの詳細: http://en.wikipedia.org/wiki/Cisco_Discovery_Protocol
CDPはシスコ独自のものですが、他のベンダーからの同様のものと、LLDPと呼ばれる公式標準があります。
http://en.wikipedia.org/wiki/Link_Layer_Discovery_Protocol
ほとんどのLinuxホストでは、デコードされたCDPフレームを受信した場合にそれをスニッフィングして報告する「cdpr」というパッケージをインストールできます。
上記の方法では、エンドポイントデバイスが接続されているスイッチを知ることができますが、途中で中間スイッチのホップが欠落します。
CDPまたはLLDPフレームが表示されない場合は、スパニングツリーのアドレス指定を確認することで、接続しているスイッチングトポロジについて少し推測できます。
幸運を祈ります。
Macアドレスをトレースするためのスイッチにアクセスできない場合(つまり、デバイスAがスイッチ1のポート10にパッチされていることがわかっている場合は、デバイスBのMacを検索し、接続されているポートまでトレースします)を見つける方法はありません。 2つのデバイス間のスイッチの数を調べます。
これを行う唯一の方法は、スイッチ自体にアクセスすることです。アクセスできるのがエンドホストだけの場合、トポロジ全体に関する情報を取得することはできません。
ネットワーク管理者の場合は、物理トポロジをできるだけ早く手動で文書化することをお勧めします。開始に役立つオープンソースツールやベンダーツールがあるかもしれませんが、ネットワークトポロジは、定期的に発見するものではなく、計画的に追跡および変更するものである必要があります。
トポロジを知りたいネットワークのユーザーの場合、最善のオプションは、ある種のセルフサービスポータルまたはAPIを介してこの情報を利用できるようにすることについて管理者に相談することです。
私の答えは現在のトピックに対して正確ではないことは知っていますが、誰かが似たようなものをグーグルで検索してくれることを願っています。
したがって、ボックスがあり、アクセス権があり、ピアがあると仮定します。あなたはすでにこのピアのIPアドレスを知っています(それを決定する方法についてはここでは説明しません)。
それで全部です。アクセスできるボックスとピアのIPアドレス。あなたはあなたと仲間の間にスイッチがあることを知る必要があります。
Arpリクエストパケットを作成します。
20:17:09.761940 ff:ff:ff:ff:ff:ff > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 10.200.200.101 tell 10.200.200.221, length 28
アイデアは、ソースMacとしてff:ff:ff:ff:ff:ffを使用することです。途中にスイッチがない場合は、回答が届きます。
20:17:09.762234 08:00:27:7b:b0:d7 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Reply 10.200.200.101 is-at 08:00:27:7b:b0:d7, length 28
スイッチは、ブロードキャストMACアドレスでのarp応答を許可しません。したがって、回答が得られなかった場合は、途中でスイッチがあります。
Tracerouteは、ルーターでのみホップを提供します。スイッチはルーティングを行わないため、tracerouteからは見えません。切り替えを「確認」したい理由は何ですか?