Ethernet

【LLDP/CDP】のフレーム(TLV)フォーマット ~違いや互換性, メリット・デメリット~

LLDP / CDP の共通点と違い

LLDP と CDP は共に、『隣りの機器がどのような機器で、どのようなインタフェースに繋がっているか』を教え合うプロトコルです。LLDP = Link Layer Discovery Protocol, CDP = Cisco Discovery Protocol です。

LLDP は IEEE802.1AB で規格化されているものであり、色々なメーカ製品と情報交換が可能であるのに対し、CDP は Cisco 独自機能であり、Cisco 機器しか情報交換できません。LLDP と CDP に互換性はありません。

フレームフォーマットは共に TLV 形式がメインです。つまり、Type (データの種類)、Lentgh (データの長さ)、Value (データの値) という形式のデータが複数並びます。

データの種類としては主に『代表 MAC アドレス』や『接続インタフェースの名前』、『接続インタフェースの description』、『ホスト名』、『IP アドレス情報』、『Native VLAN (PVID)』といった基本的な情報です。

LLDP のメリットは、メーカに限定されず機能が使えることです。

一方、CDP のメリットは、正直ほぼありません。一部の機能では CDP と連携して使うことができます (ODR 等)ので、もしこういった機能を使いたい場合はメリットとなるかもしれません。

LLDP のフレームフォーマットと TLV

LLDP のフォーマットを以下に示します。

LLDP は "Ether Type = Ox88cc" となります。Wireshark でパケットキャプチャした際の例を以下に示します。

最初の TLV は Type=1 です。これは Chassis ID で、機器自体を一意に示す識別子です。ここでは Chassis ID Subtype = 4 となっており、これは 『Chassis ID として 代表 MAC アドレスを使う』という意味です。

次の TLV は Type=2 で、Port ID を意味します。同様に subtype があり、subtype=5 としてインタフェース名が Port ID として使われています。

次の TLV は Type=3 で、TTL ( Time To Live ) を意味します。これは、相手がどのくらいの時間、この情報を有効と見なすかを示します。

次の TLV は Type=4 で、Port Description を意味します。これは一般にポートに設定された description が表示されます。

次の TLV は Type=5 で、System Name を意味します。一般にはホスト名のことです。

次の TLV は Type=6 で、System Description を意味します。一般には OS のソフトウェア名やバージョン名などが入ります。

次の TLV は Type=7 で、Capabilities を意味します。その機器がどのような機能を持つか、そしてその中でもどのような機能が有効になっているか、を示します。具体的には以下の bit があります。

{ 端末 , docsis 機能 , 電話機能 , ルータ機能 , 無線機能 , スイッチ機能 , リピータ機能 , その他 }

L3 スイッチだったら、ルータ機能とスイッチ機能の bit が立ちます。

次の TLV は Type=8 で、Management Address を意味します。これは管理IPアドレスのことです。

次の TLV は Type=127 で、これは組織独自の拡張フィールドです。このケースでは『組織 = IEEE』となっており、subtype=1 が Port VLAN ID (PVID = native vlan) を意味します。

次の TVL も Type=127 で、同じく『組織 = IEEE』です。このように、同じ Type も複数列挙可能です。ここでは subtype=7 で、Link Aggregation が有効になっていることを示しています。

CDP のフレームフォーマットと TLV

CDP のフォーマットを以下に示します。

CDP で使われる Ethernet は一般的な DIX 仕様ではないフォーマットが使われます。つまり Type/Length のフィールドには Length(フレーム長)が入ります。そしてその次のフィールドは『LLC (Logical Link Control)』で、そのLLCの次に格納されるプロトコルを指定するのが "PID" で、ここでは CDP を意味する Ox2000 が入ります。

また、CDP ではヘッダとして Version と TTL, Checksum が付けられ、その後に TLV が並びます。

Wireshark でパケットキャプチャした際の例を以下に示します。

最初の TLV は Type=1 で、Device ID を意味します。ホスト名のことです。

次の TLV は Type=5 で、Software Version を意味します。

次の TLV は Type=6 で、Platform を意味します。

次の TLV は Type=2 で、Address を意味します。これは保有している IP アドレス全てを表示します。

次の TLV は Type=3 で、Port ID を意味します。

次の TLV は Type=4 で、Capabilities を意味します。LLDP と異なり、どの機能が有効になっているか、までは示しません。具体的には以下の bit があります。

{ ルータ機能 , Transparent Bridge 機能 , Token Ring Bridge 機能 , スイッチ機能 , 端末 , IGMP 機能 , リピータ機能 }

コメント

タイトルとURLをコピーしました