デバイスプロファイルとは
デバイスプロファイルは、サポートされているハードウェアデバイスの機能を定義します。一部の機能は NOS バージョン間で動作が異なるため、機能は NOS バージョンごとに表されます。デフォルトでは、バージョンはサポートされているすべてのバージョンと一致します。追加のハードウェアモデルが認定されると、 認定デバイスのリストに追加されます。
デバイスプロファイル(デバイスのベンダー固有の詳細)を論理デバイス(デバイスの物理的な詳細の抽象化)に関連付けて、 インターフェイスマップを作成します。ブループリントを構築する際に、これらのインターフェイス マップをトポロジー内のデバイスに割り当てます。
デバイスプロファイルは、モノリシックまたはモジュラーのいずれかです。次のセクションでは、デバイスプロファイルパラメータについて説明します。デバイスプロファイルの詳細については、「 Apstra UIを使用したデバイスプロファイルの追加」を参照してください。
モノリシックデバイスプロファイル
概要
概要セクション | の説明 |
---|---|
種類 | 一枚岩の |
物理デバイス | イエスかノーか答えてください |
名前 | デバイスプロファイルの名前。64文字以下。 |
参照設計機能 | データセンター/Freeform/Freeform |
シャーシプロファイル | モジュラー デバイス プロファイルの場合のみ |
セレクタ
[セレクタ(Selector)] セクションには、以下で説明するように、ハードウェア デバイスをデバイス プロファイルに一致させるためのデバイス固有の情報が含まれています。
セレクタセクション |
形容 |
---|---|
生産者 |
ドロップダウンリストから選択 |
モデル |
デバイスプロファイルを特定のハードウェアに適用できるかどうかを決定します。ドロップダウンリストから選択するか、正規表現(regex)として入力します。 |
OSファミリ |
設定の生成方法、テレメトリコマンドのレンダリング方法、デバイスへの設定の導入方法を定義します。ドロップダウンリストから選択します。 |
バージョン |
デバイスプロファイルを特定のハードウェアに適用できるかどうかを決定します。ドロップダウンリストから選択するか、正規表現として入力します。 |
資格
このセクションで定義したハードウェアおよびソフトウェア機能をApstra環境の他の部分で活用して、生成された設定を適応させたり、互換性のない状況を回避したりできます。ECMP を除き、ハードウェアの機能によって設定、レンダリング、導入が変更されます。機能には、次の詳細が含まれます。
機能セクション |
形容 |
---|---|
CPU(cpu:文字列) |
デバイスの CPU アーキテクチャについて説明します。例: "x86" |
ユーザーランド (ビット) (userland:integer) |
デバイスがサポートするユーザーランド(アプリケーションバイナリ/カーネル)のタイプ。たとえば、「32」や「64」などです。 |
RAM (GB) (ram:整数) |
デバイスのメモリ容量。例: "16" |
ECMP 制限 (ecmp_limit:integer) |
等コスト マルチパス ルートの最大数。たとえば、"64" です。このフィールドは、デバイスのBGP設定(ecmp max-paths)を変更します。 |
フォームファクター (form_factor:string) |
デバイス上のラックユニット(RU)の数。例: "1RU"、"2RU"、"6RU"、"7RU"、"11RU"、"13RU" |
ASIC(asic:文字列) |
スイッチ チップセット ASIC。たとえば、"T2"、"T2(3)"、"T2(6)"、"Arad(3)"、"Alta"、"TH"、"Spectrum"、"XPliant XP80"、"ASE2"、"Jericho" などです。テレメトリ、設定レンダリング、VXLANルーティングセマンティクスの支援に使用 |
LXC (lxc_support: boolean) |
デバイスが LXC コンテナをサポートしている場合に選択します。 |
ONIE (onie: boolean) |
デバイスがONIEをサポートしている場合に選択します。 |
COP: コントロールプレーンポリシングが有効な場合(COPP)、指定されたNX-OSバージョンに対して厳密なCoPPプロファイル設定がレンダリングされ、次の設定レンダリングが行われます。
terminal dont-ask copp profile strict
このターミナルdon't-ask設定は、NX-OSに確認を待たせたくないため、CoPPプロファイルの厳密な設定を有効にする場合にのみ必要です。
switch(config)# copp profile strict This operation can cause disruption of control traffic. Proceed (y/n)? [no] ^C switch(config)# switch(config)# terminal dont-ask switch(config)# copp profile strict switch(config)#
CoPP は、Cisco 3172PQ NXOS を除き、デフォルトで有効になっています。複数のバージョンを指定できます。
[ブレークアウト(Breakout )]:ブレークアウトを有効にして、指定したモジュールのポートを低速の分割ポートにブレークアウトできることを示します。
Apstraソフトウェアは、まずブレークアウト対応ポートすべてのブレイクアウトを解除し、次にインテントに応じて適切なブレイクアウトコマンドを適用します。これは、ブレークアウト対応ポートを備えたモジュールにグローバル否定コマンド no interface breakout module<module_number>
を常に正常に適用できることを前提としています。(これは、ブレークアウトされていないポートに適用するとべき等です。ただし、NX-OSの将来のバージョンでは、またはブレークアウト対応ポートに挿入されたケーブル/トランシーバの特定の組み合わせで、この仮定が崩れる可能性があることを認識しています。
次の例は、True に設定されたモジュール (1) の否定コマンドです。
no interface breakout module 1 !
negation コマンドはモジュールごとに常に適用可能なため、各モジュールは個別に指定されます。これには次のような利点があります。
- モジュラーシステムでは、すべてのラインカードにブレークアウト対応ポートがあるわけではありません。
- 非モジュラ システムでは、ブレークアウト対応ポートがモジュール 1 にあるとは限りません。
ブレークアウトは、ポートをブレークアウトできないモジュールを搭載したデバイス3172PQ NXOS、9372TX NXOS、C9372PX NXOS、C9396PX NXOS、NXOSvを除き、デフォルトで有効になっています。
歴史的背景:NX-OSの特定のバージョンでは、POAPステージはブレークアウト可能なポートにブレークアウト設定を適用します。7.0(3)I4(1) POAP で導入された POAP の動作は、どのブレークアウト マップ(たとえば、10gx4、50gx2、25gx4、または 10gx2)が DHCP サーバに接続されたリンクを起動するかを決定します。ブレークアウトがどのポートでもサポートされていない場合、POAP は動的ブレークアウト プロセスをスキップします。ブレークアウト ループが完了すると、POAP は通常どおり DHCP ディスカバリ フェーズに進みます。Apstraは、POAP段階でレンダリングされた可能性のあるブレークアウト設定を元に戻し、negationコマンドを適用することでポートがデフォルトの速度に戻されるようにします。
シーケンス番号のサポート - 自律システム(AS)パスに適用できます。デバイスがシーケンス番号をサポートしている場合に有効にします。Apstraシーケンスをエントリーリストに追加して、以下のように再シーケンスして設定を生成します。
ip as-path access-list MyASN seq 5 permit ^$ ip as-path access-list Rtr seq 5 permit ^3 ip as-path access-list Srvr seq 15 permit _103$
番号5と15は、ASシーケンスをサポートするデバイスに適用されるシーケンス番号です。
シーケンス番号のサポートは、すべてのシスコ デバイス プロファイルに対してデフォルトで有効になっています(シーケンス番号をサポートしていない Cisco 3172PQ NXOS を除く)。シーケンス番号をサポートしていないプラットフォームの場合、この機能を無効にすると、ASシーケンス番号がデバイスモデルディクショナリから削除され、何かが再シーケンスされた場合の追加と否定を回避できます。このシナリオでは、エントリを順序付けできないため、これらのプラットフォームで何もレンダリングする必要はありません。
Apstra GUIでは利用できないその他のサポート機能には、「vxlan」、「bfd」、「vrf_limit」、「vtep_limit」、「floodlist_limit」、「max_l2_mtu」、「max_l3-mtu」などがあります。これらは、次の形式を使用してバックエンドに含めることができます。
キー : 値 :: 機能 : feature_properties 例: 32 vtep_limit: 32
ポート
ポートセクションでは、使用可能なポートの種類、その機能、およびそれらの編成方法を定義します。
すべてのポートには、サポートされている速度変換のコレクションが含まれています。各トランスフォーメーションは、ブレークアウト機能(1-40GBeポートから4-10GBeポートへのブレークアウトなど)を表すため、インターフェイスの集合が含まれます。
例:ポート 1 が QSFP28 100->4x10、100->1x40 ブレークアウト対応ポートである場合、ポート 1 には 3 つの変換の集合(4x10、1x40、1x100 ブレークアウト用にそれぞれ 1 つ)があります。4x10 を表すコレクション内の変換要素には 4 つのインターフェイスのコレクションがあり、1x40 と 1x100 には 1 つのインターフェイスのコレクションがあります。
ポートパラメータには、次の詳細が含まれます。
ポートセクション |
形容 |
---|---|
ポートインデックス(port_id:整数) |
デバイスプロファイル内のポートのコレクション内で一意のポートを示します。 |
行インデックス (row_id: 整数) |
ポートパネルの上から下への寸法を表します。デバイスのパネルのどこにポートが配置されているかを示します。例えば、2 つの行と多くの列を持つパネルでは、行インデックスは "1" または "2" です。 |
列インデックス (column_id: 整数) |
ポート パネルの左から右への寸法を表します。デバイスのパネルのどこにポートが配置されているかを示します。例えば、32 個のポートと 2 つの行を持つパネルでは、列索引は「1」から「16」の範囲にあります。 |
パネルインデックス(panel_id:整数) |
デバイス仕様のポートの物理レイアウトから、ポートが属するパネルを示します |
スロット ID (slot_id: 整数) |
ポートが属するモジュールを表します。モジュラースイッチには複数のスロットがあります。固定機能ネットワーク機能機器では、スロットIDは通常「0」です。 |
障害ドメイン (failure_domain_id: 整数) |
複数のパネルが同じハードウェアコンポーネントに依存しているかどうかを示します。ケーブル計画を作成する際に使用し、2 つのアップリンクが同じ障害ドメインに接続されないようにします。 |
コネクタタイプ(connector_type:文字列) |
ポート トランシーバ タイプ。特定のコネクタタイプが特定の速度で実行できることを考えると、ポートの速度能力はコネクタタイプに直接関係しています。たとえば、「sfp」、「sfp28」、「qsfp」、「qsfp28」などです。 |
変換 (transformations: list) |
ポートのブレイクアウトの可能性があります。すべてのエントリは、サポートされている特定の速度です。各変換には、インターフェイスのコレクションがあります。 |
インターフェイス数(interfaces:list) |
ポートのブレークアウト機能に依存します。特定のブレークアウト速度を表すトランスフォーメーションの場合、インターフェイスには、デバイスが構成される予定のインターフェイス名とインターフェイス設定に関する情報が含まれます。「設定」情報は、デバイス上でインターフェイスを正しく構成するために重要です。 |
デバイスプロファイルのセレクターフィールドに入力されたOS情報に基づいて、Apstra GUIに該当する設定フィールドが表示されます。フィールドはベンダーOSによって異なります(以下の例を参照)。デバイスプロファイルが作成または編集されると、以下に示すベンダー固有のスキーマから「設定」が検証されます。
eos_port_setting = Dict({ 'interface': Dict({ 'speed': Enum([ '', '1000full', '10000full', '25gfull', '40gfull', '50gfull', '100gfull', ])}), 'global': Dict({ 'port_group': Integer(), 'select': String() }) }) nxos_port_setting = Dict({ 'interface': Dict({ 'speed': Enum([ '', '1000', '10000', '25000', '40000', '50000', '100000', ])}), 'global': Dict({ "port_index": Integer(), "speed": String(), "module_index": Integer() }) }) junos_port_setting = Dict({ 'interface': Dict({ 'speed': Enum([ '', 'disabled', '1g', '10g', '25g', '40g', '50g', '100g' ])}), 'global': Dict({ 'speed': Enum([ '', '1g', '10g', '25g', '40g', '50g', '100g' ]), "port_index": Optional(Integer()), "fpc": Optional(Integer()), "pic": Optional(Integer()) }) }) sonic_port_setting = Dict({ 'interface': Dict({ "command": Optional(String()), "speed": String(), "lane_map": Optional(String()) }) }) })
Apstraは、必ずしも上記のすべての情報をモデリングに使用するわけではありません。収集および使用のために、他のApstra APIオーケストレーションツールで利用できます。
モジュラー デバイス プロファイル
概要
種類 |
モジュラー |
名前 |
デバイスプロファイルの名前。64文字以下。 |
シャーシプロファイル | DPに関連付けるシャーシプロファイル |
Apstra GUIのデバイスプロファイル
Apstra GUIの左側のナビゲーションメニューから、[ デバイス]>[デバイスプロファイル]に移動し て、デバイスプロファイルのテーブルビューに移動します。
Apstraデバイスプロファイルと設計要素の相互関係を確認するには、 Show relationship (Apstraバージョン5.0.0の新機能)をクリックします。これは、Apstra環境を初めて使用する場合に役立ちます。
多くのデバイスプロファイルは、あらかじめ定義されています。デバイスプロファイルを検索するには、[ 検索 ]ボタン(虫眼鏡)をクリックし、条件を入力します。
デバイスプロファイル名をクリックすると、その詳細に移動します。
デバイスプロファイルを作成、編集、削除できます。