DCBXを理解する
DCBX(Data Center Bridging Capability Exchange Protocol)は、LLDP(Link Layer Data Protocol)の拡張です。インターフェイスでLLDPを無効にすると、そのインターフェイスはDCBXを実行できません。LLDPが無効になっているインターフェイスでDCBXを有効にしようとすると、設定コミット操作は失敗します。DCB(データセンターブリッジング)デバイスは、DCBXを使用して、直接接続されたピアと設定情報を交換します。
DCBXの基本
DCBXの機能:
-
ピアのDCB機能をご確認ください。
-
DCB 機能の設定ミスやピア間の不一致を検出します。
-
ピアでDCB機能を設定します。
DCBXオペレーションは、プライ オリティベースのフロー制御 (PFC)、FCoEやiSCSIなどのレイヤー2およびレイヤー4アプリケーション、ETS向けに設定できます。DCBXは、インターフェイスごとに有効または無効になります。
デフォルトでは、PFCおよびETSの場合、DCBXは各インターフェイスの接続ピアと自動的に管理状態と設定をネゴシエートします。アプリケーションのDCBXネゴシエーションを有効にするには、アプリケーションを設定し、アプリケーションマップ内のIEEE 802.1pコードポイントにマッピングし、アプリケーションマップをインターフェイスに適用する必要があります。
Junos DCBXは、DSCPベースのPFC設定をサポートしていません。Junos DCBXは、IEEEベースのPFCのみをサポートします。
FCoEアプリケーションをアプリケーションマップに含める必要があるのは、インターフェイスがFCoE以外の他のアプリケーションのタイプ、長さ、および値(TLV)を交換できるようにする場合のみです。インターフェイスがアドバタイズするアプリケーションが FCoE のみである場合は、アプリケーション マップを使用する必要はありません。ETSの場合、DCBXは、スイッチから設定を学習するように設定されている場合、スイッチ設定をピアにプッシュします(IEEE DCBXモードのインターフェイスでETS推奨事項TLVの送信を無効にした場合を除く)。
PFC、ETS、またはインターフェイスにマッピングされたすべてのアプリケーションのデフォルト動作を上書きするには、自動ネゴシエーションをオフにしてインターフェイスにその機能を強制的に有効または無効にすることができます。また、インターフェイスに適用するアプリケーション マップからそれらのアプリケーションを除外するか、インターフェイスからアプリケーション マップを削除することで、インターフェイス上のアプリケーションの DCBX 自動ネゴシエイションを無効にすることもできます。
インターフェイスにマッピングされたアプリケーションの自動ネゴシエーションのデフォルトの動作は次のとおりです。
-
接続されたピアデバイスもDCBXをサポートしている場合、DCBXはインターフェイスで有効になります。
-
接続されたピアデバイスがDCBXをサポートしていない場合、DCBXはインターフェイスで無効になります。
機能のネゴシエーション中に、ピアが他のピアからPFC設定を学習することを「喜んで」と設定されている場合、スイッチはPFC設定を接続ピアにプッシュできます。ジュニパーネットワークススイッチは、セルフ自動プロビジョニングをサポートしておらず、自動ネゴシエーション中にピアの設定に合わせて設定を変更することはありません。(ジュニパースイッチは、ピアからPFC設定を学習する「意思」はありません。)
DCBXを有効にしたポートが、タイプ、長さ、値(TLV)エントリーの交換を開始すると、そのポート上のオプションのLLDP TLVはネイバーにアドバタイズされないため、スイッチは、DCBXをサポートする幅広い種類のCNA(統合型ネットワークアダプタ)やレイヤー2スイッチと相互運用できるようになります。
DCBXモードとサポート
このセクションでは、DCBXのサポートについて説明します。
DCBXモード(バージョン)
最も一般的な2つのDCBXモードがサポートされています。
-
IEEE DCBX - TLV が異なればサブタイプも異なります(たとえば、ETS 設定 TLV のサブタイプは 9 です)。IEEE DCBX組織固有識別子(OUI)は0x0080c2です。
-
DCBXバージョン1.01—DCBXのCEE(統合型拡張イーサネット)バージョン。サブタイプは 2、OUI は 0x001b21 です。
IEEE DCBX と DCBX バージョン 1.01 は、主にフレーム形式が異なります。DCBXバージョン1.01では、サブTLVとして送信されるすべてのDCBX属性情報を含む1つのTLVを使用します。IEEE DCBXは、各DCB属性に固有のTLVを使用します。
Junosは、CEE以前(DCB以前)のDCBXバージョンをサポートしていません。サポートされていない古いバージョンのDCBXは、サブタイプが1で、OUIが0x001b21です。スイッチは、CEE以前のDCBX TLVを含むLLDPフレームをドロップします。
表1は 、IEEE DCBXとDCBXバージョン1.01の違いを、showコマンド出力を含めてまとめたものです。
|
特徴 |
IEEE DCBX |
DCBXバージョン1.01 |
|---|---|---|
|
OUI |
0x0080c2 |
0x001b21 |
|
フレームフォーマット |
各 DCBX 属性に対して個別の一意の TLV を送信します。例えば、IEEE DCBXは、ETS、PFC、および各アプリケーションに個別のTLVを使用します。設定と推奨事項の情報は、異なるTLVで送信されます |
サブTLVに整理されたすべてのDCBX属性情報を含むTLVを1つ送信します。「willing」ビットは、インターフェイスが接続されたピアに合わせて設定を変更できるかどうかを決定します。 |
|
ピアによる対称/非対称構成 |
非対称または対称 |
対称のみ |
|
|
|
|
以下のDCBXモードを使用するようにインターフェイスを設定できます。
-
IEEE DCBX—インターフェイスは、接続ピアの設定に関係なく IEEE DCBX を使用します。
-
DCBXバージョン1.01—インターフェイスは、接続ピアの設定に関係なくDCBXバージョン1.01を使用します。
-
自動ネゴシエーション—インターフェイスは接続されたピアと自動的にネゴシエートし、ピアが使用するDCBXバージョンを決定します。自動ネゴシエーションは、デフォルトのDCBXモードです。
インターフェイスにDCBXモードを設定すると、PDUがインターフェイスに設定されたDCBXバージョンと一致しない場合、インターフェイスは接続ピアから受信したDCBXプロトコルデータユニット(PDU)を無視します。例えば、IEEE DCBXを使用するようインターフェイスを設定し、接続されたピアがDCBXバージョン1.01 LLDP PDUを送信した場合、インターフェイスはバージョン1.01 PDUを無視します。DCBXバージョン1.01を使用するようにインターフェイスを設定し、ピアがIEEE DCBX LLDP PDUを送信した場合、インターフェイスはIEEE DCBX PDUを無視します。
IEEE DCBXモードを使用するインターフェイスでは、 show dcbx neighbors interface interface-name 操作コマンドの出力にアプリケーション、PFC、またはETSの操作状態は含まれません。
自動ネゴシエーション
自動ネゴシエーションは、デフォルトのDCBXモードです。各インターフェイスは、接続されたピアと自動的にネゴシエートして、両方のインターフェイスがDCBX情報の交換に使用するDCBXバージョンを決定します。
インターフェイスがピアインターフェイスに接続すると、インターフェイスはピアにIEEE DCBX TLVをアドバタイズします。インターフェイスがピアから1つのIEEE DCBX PDUを受信した場合、インターフェイスはDCBXモードをIEEE DCBXとして設定します。インターフェイスがピアから3つのDCBXバージョン1.01 TLVを受信した場合、インターフェイスはDCBXバージョン1.01をDCBXモードとして設定します。
リンクがフラップするか、LLDPプロセスが再起動すると、インターフェイスは自動ネゴシエーションプロセスを再開します。インターフェイスは、最後に受信したDCBX通信モードを使用しません。
DCBXモードのCNAサポート
CNAベンダーごとに、サポートするDCBXのバージョンと機能も異なります。スイッチインターフェイスで使用するDCBX設定は、ネットワーク内のCNAがサポートするDCBX機能によって異なります。
DCBX のインターフェイス サポート
DCBXは、速度が10G/40G/100Gのxe-/ae-/et-インターフェイスや、メンバーインターフェイスがすべて10G/40G/100GイーサネットインターフェイスであるLAG(リンクアグリゲーショングループ)インターフェイスで設定できます。
DCBX属性タイプ
DCBXには、3つの属性タイプがあります。
-
情報—これらの属性はLLDPを使用して交換されますが、DCBXの状態や動作には影響しません。ピアにのみ情報を伝達します。例えば、アプリケーション優先度TLVは情報TLVです。
-
非対称—これらのタイプの属性の値は、接続されたピアインターフェイスで同じである必要はありません。ピアは、各ピアインターフェイスで属性値が異なる場合、非対称属性を交換します。ピアインターフェイスの設定は一致する場合と異なる場合があります。例えば、ETS設定と推奨事項のTLVは非対称TLVです。
-
対称—意図は、これらのタイプの属性の値を、接続された両方のピアインターフェイスで同じにすることです。ピアインターフェイスは対称的な属性を交換し、それらの属性の対称的なDCBX設定を確保します。例えば、PFC設定TLVは対称TLVです。
以下のセクションでは、非対称および対称DCBX属性について説明します。
非対称属性
DCBXは、接続されたピアインターフェイス間で非対称属性を渡して、それらの属性(機能)に関するパラメーター情報を通信します。結果として得られる属性の設定はピアごとに異なる場合があるため、1つのインターフェイスに設定されたパラメータが、接続されたピアインターフェイスのパラメータと一致しない可能性があります。
非対称属性TLVには2種類あります。
-
設定 TLV—設定 TLV は、現在の動作状態と「意志」ビットの状態を伝達します。「willing」ビットは、インターフェイスがピア インターフェイスからの設定を受け入れて使用する意思があるかどうかを伝えます。インターフェイスが「意志」がある場合、インターフェイスはピアインターフェイスから受け取った設定を使用します。(ピアインターフェイス設定は、「意思のある」インターフェイスの設定を上書きできます。)インターフェイスが「意思がない」場合、インターフェイス上の設定をピアインターフェイスの設定によって上書きすることはできません。
-
推奨事項 TLV—推奨事項 TLV は、接続されたピア インターフェイスが使用すべきパラメーターをインターフェイスが推奨します。インターフェイスが勧告 TLV を送信するときに、接続されたピアが「意思がある」場合、接続されたピアは勧告 TLV のパラメーターに一致するように設定を変更します。
対称属性
DCBXは、接続されたピアインターフェイス間で対称的な属性を渡して、それらの属性(機能)に関するパラメーター情報を通信します。目的は、両方のインターフェイスが同じ設定を使用するようにすることです。その目的は、1つのインターフェイスで設定されたパラメーターが、接続されたピアインターフェイスのパラメーターと一致するようにすることです。
対称属性 TLV には、設定 TLV という 1 つのタイプがあります。非対称属性と同様に、対称属性の設定TLVは、現在の動作状態と「意志する」ビットの状態を伝えます。「意欲的」インターフェイスは、属性のピアインターフェイスパラメーター値を使用します。(ピアの属性設定は、「willing」インターフェイスの設定よりも優先されます。
DCBXアプリケーションプロトコルTLV交換
DCBXは、FCoEなどのレイヤー2アプリケーションおよびiSCSIなどのレイヤー4アプリケーション向けに、スイッチの機能をアドバタイズします。
アプリケーションプロトコルTLV交換
すべてのアプリケーションについて、DCBXはアプリケーションの状態とIEEE 802.1pコードポイントを、アプリケーションがマッピングされているインターフェイス上でアドバタイズします。アプリケーションがインターフェイスにマッピングされていない場合、そのインターフェイスはアプリケーションのTLVをアドバタイズしません。DCBXがインターフェイス上でアドバタイズしたいアプリケーションがFCoEのみの場合、FCoEアプリケーションプロトコルTLV交換には例外があります。
FCoEアプリケーションプロトコルTLV交換
FCoEアプリケーションのプロトコルTLV交換は、インターフェイスがアドバタイズするアプリケーションがFCoEのみであるか、またはインターフェイスでFCoE TLVに加えて他のアプリケーションTLVを交換するようにするかどうかによって異なります。
DCBXにアドバタイズしたいアプリケーションがFCoEのみの場合、DCBXはデフォルトでFCoEアプリケーションプロトコルTLVを交換します。
-
FCoEトラフィック(CoS設定によってFCoE転送クラスにマッピングされたトラフィック)を伝送します。
-
FCoE優先度でPFCが有効になっている混雑通知プロファイルを持っている(IEEE 802.1pコードポイント)
-
アプリケーションマップがない
FCoEのCoS設定がインターフェイスにマッピングされていない場合、そのインターフェイスはFCoEアプリケーションプロトコルTLVを交換しません。
DCBXでインターフェイス上のFCoEおよびその他のアプリケーションをアドバタイズする場合は、アプリケーションマップでFCoEを含むすべてのアプリケーションを指定し、アプリケーションマップを目的のインターフェイスに適用する必要があります。
アプリケーション マップがインターフェイスに適用されている場合、FCoE アプリケーションはアプリケーション マップで明示的に設定されている必要があります。さもなければ、インターフェイスは FCoE TLV を交換しません。
DCBXがFCoEアプリケーションをアドバタイズする際には、FCoEの状態とIEEE 802.1pコードポイントをアドバタイズします。スイッチインターフェイスに接続されたピアデバイスがFCoEをサポートしていない場合、DCBXは自動ネゴシエーションを使用してインターフェイスを「FCoEダウン」としてマークし、そのインターフェイスでFCoEは無効になります。
アプリケーションプロトコルTLV交換の無効化
インターフェイス上のすべてのアプリケーションのDCBXアプリケーションプロトコル交換を無効にするには、 set protocols dcbx interface interface-name applications no-auto-negotiation コマンドを発行します。
インターフェイス上のアプリケーションに対するDCBXアプリケーションプロトコル交換を無効にするには、インターフェイスからアプリケーションマップを削除するか、アプリケーションマップから特定のアプリケーションを削除します。ただし、アプリケーション マップからアプリケーションを削除すると、そのアプリケーション マップを使用するインターフェイスでアプリケーション プロトコルが交換されなくなります。
DCBXとPFC
スイッチインターフェイスでPFCを有効にすると、DCBXは自動ネゴシエーションを使用してPFC機能の動作状態を制御します。
インターフェイスに接続されたピアデバイスがPFCをサポートしており、スイッチと互換性を持ってプロビジョニングされている場合、DCBXはPFCの動作状態を有効に設定します。インターフェイスに接続されたピアデバイスがPFCをサポートしていない場合、またはスイッチと互換性のあるプロビジョニングがされていない場合、DCBXは動作状態を無効に設定します。(PFCは対称でなければなりません。)
ピアがスイッチからPFC設定を学習する「意思がある」とアドバタイズした場合、DCBXはスイッチのPFC設定をピアにプッシュし、ピアの管理状態をチェックしません。
自動ネゴシエーションを無効にすることで、インターフェイスごとに PFC 動作状態の DCBX 制御を手動で上書きできます。PFCを設定したインターフェイスで自動ネゴシエーションを無効にすると、ピア設定に関係なく、そのインターフェイスでPFCが有効になります。インターフェイスでPFCを無効にするには、そのインターフェイスでPFCを設定しないでください。インターフェイスで自動ネゴシエーションを無効にするには、[protocols dcbx interface interface-name]階層レベルでpriority-flow-controlpriority-flow-control no-auto-negotiationを設定します。次に例を示します。
protocols {
dcbx {
interface {
xe-0/0/1 {
priority-flow-control no-auto-negotiation;
}
}
}
}
DCBXとETS
このセクションでは、以下について説明します。
デフォルトのDCBX ETSアドバタイズメント
インターフェイスでETSを設定しない場合、スイッチは、すべての優先度(出力キューを表す転送クラス)を含むデフォルトの優先度グループを自動的に作成し、その優先度グループにポート出力帯域幅の100%を割り当てます。デフォルトの優先度グループは透過的です。これは設定には表示されず、DCBXアドバタイズに使用されます。DCBXは、デフォルトの優先度グループ、その優先度、割り当てられた帯域幅をアドバタイズします。
インターフェイスでETSを設定すると、DCBXは以下をアドバタイズします。
-
インターフェイス上の各優先度グループ
-
各優先度グループの優先度
-
各優先度グループと優先度の帯域幅プロパティ
明示的に設定された優先度グループ(転送クラス セット)に属さないインターフェイス上の優先度は、自動生成されたデフォルトの優先度グループに割り当てられ、帯域幅は受信されません。インターフェイスでETSを設定する場合、トラフィックを転送するインターフェイス上のすべての転送クラス(優先度)は、転送クラスセット(優先度グループ)に属している必要があります。
ETSアドバタイズとピア設定
DCBXは、スイッチのETS(階層スケジューリング)動作状態を制御しません。接続されたピアが「willing」に設定されている場合、ETS推奨TLVが有効になっている(デフォルトでは有効になっている)場合、DCBXはスイッチのETS設定をスイッチのピアにプッシュします。ピアがETSをサポートしていない場合、またはスイッチで一貫してプロビジョニングされていない場合、DCBXはスイッチ上のETS動作状態を変更しません。ETS の動作状態は、スイッチの階層スケジューリング設定にのみ基づき、有効または無効のままで、デフォルトで有効になっています。
ETSが設定されると、DCBXは優先度グループ、優先度グループ内の優先度、および優先度グループと優先度の帯域幅設定をアドバタイズします。優先度グループに属さない優先度(本質的には転送クラスまたはキュー)は、スケジューリング プロパティを持たず、帯域幅を受け取る必要もありません。
自動ネゴシエーションを無効にすることで、DCBXがETS状態をインターフェイスごとにピアにアドバタイズするかどうかを手動で上書きできます。これは、スイッチまたはピアの ETS 状態には影響しませんが、スイッチが推奨事項 TLV または設定 TLV を接続されたピアに送信できなくなります。インターフェイスでETSを無効にするには、インターフェイスで優先度グループ(転送クラスセット)を設定しないでください。
ETS勧告TLV
ETS 勧告 TLV は、スイッチが接続されたピア インターフェイスで使用したい ETS 設定を伝達します。ピア インターフェイスが「意志」であれば、ETS 勧告 TLV の設定に一致するように設定を変更します。デフォルトでは、スイッチ インターフェイスは ETS 推奨 TLV をピアに送信します。通信される設定は、インターフェイス上で階層スケジューリングを構成することで定義されたegress ETS設定です。
スイッチ インターフェイスで使用するのと同じ ETS 設定を接続ピアで使用し、ETS 推奨 TLV は有効のままにしておくことをお勧めします。ただし、DCBXモードとしてIEEE DCBXを使用するインターフェイスで、スイッチインターフェイスと接続ピアの間に非対称設定が必要な場合は、[edit protocols dcbx interface interface-name enhanced-transmission-selection]階層レベルにno-recommendation-tlvステートメントを含めることでETS推奨TLVを無効にできます。
ETS推奨事項TLVを無効にできるのは、インターフェイス上のDCBXモードがIEEE DCBXの場合のみです。インターフェイス上の DCBX モードが DCBX バージョン 1.01 の場合、ETS 推奨事項 TLV を無効にしても効果はありません。(IEEE DCBXは個別のアプリケーション属性TLVを使用しますが、DCBXバージョン1.01では、すべてのアプリケーション属性を同じTLVに送信し、サブTLVを使用して情報を分離します)。
ETS 推奨 TLV を無効にしても、スイッチは接続されたピアに ETS 設定 TLV を送信します。その結果、接続されたピアにはスイッチDCBX ETS設定が通知されますが、ピアが「喜んで」であっても、ピアはスイッチの設定に合わせて設定を変更することはありません。これは非対称設定です。2つのインターフェイスでETS属性のパラメータ値を異なるものにすることができます。
例えば、スイッチインターフェイスに接続されたCNAに、スイッチETS設定とは異なる帯域幅割り当てを設定する場合、ETS推奨TLVを無効にして、CNAを目的の帯域幅に設定できます。スイッチインターフェイスとCNAは設定パラメータを交換しますが、CNAはスイッチのインターフェイス設定に合わせて設定を変更しません。