このページの目次
デバイスプロファイルの概要
デバイス プロファイルは、サポートされているハードウェア デバイスの機能を定義します。一部の機能の動作は NOS バージョン間で異なるため、機能は NOS バージョンごとに表されます。既定では、バージョンはサポートされているすべてのバージョンと一致します。追加のハードウェアモデルが認定されると、 認定されたデバイスのリストに追加されます。
デバイスプロファイルは、 インターフェイスマップを作成するために論理デバイス(物理デバイスの抽象化)に関連付けられます。
次のセクションでは、デバイス プロファイル パラメーターについて説明します。デバイスプロファイルの詳細については、 Apstra UIを使用したデバイスプロファイルの追加 を参照してください。
概要
概要セクション | の説明 |
---|---|
名前 | デバイスプロファイルの名前。64 文字以下。 |
スロット数 | デバイス上のスロットまたはモジュールの数。モジュラースイッチには複数のスロットがあります。 |
ID から開始 |
セレクタ
[セレクター] セクションには、以下で説明するように、ハードウェア デバイスをデバイス プロファイルと照合するためのデバイス固有の情報が含まれています。
セレクターセクション | の説明 |
---|---|
生産者 | ドロップダウン リストから選択 |
モデル | デバイス プロファイルを特定のハードウェアに適用できるかどうかを判断します。ドロップダウン リストから選択するか、正規表現 (regex) として入力します。 |
OSファミリ | 構成の生成方法、テレメトリ コマンドのレンダリング方法、デバイスへの構成の展開方法を定義します。ドロップダウン リストから選択します。 |
バージョン | デバイス プロファイルを特定のハードウェアに適用できるかどうかを判断します。ドロップダウン リストから選択するか、正規表現として入力します。 |
資格
このセクションで定義したハードウェアおよびソフトウェアの機能をApstra環境の他の部分で活用して、生成された構成を調整したり、互換性のない状況を回避したりできます。ECMP を除き、ハードウェア機能は構成レンダリングまたは導入を変更します。機能には、次の詳細が含まれます。
機能セクション | の説明 |
---|---|
CPU (cpu:文字列) | デバイスの CPU アーキテクチャについて説明します。例: "x86" |
ユーザランド (ビット) (ユーザランド:整数) | デバイスがサポートするユーザーランド(アプリケーションバイナリ/カーネル)のタイプ。たとえば、"32" や "64" などです。 |
RAM (GB) (RAM:整数) | デバイス上のメモリの量。例: "16" |
ECMP 制限 (ecmp_limit:整数) | 等コストマルチパスルートの最大数。たとえば、"64" などです。このフィールドは、デバイスの BGP 設定(ecmp max-paths)を変更します。 |
フォーム ファクター (form_factor:文字列) | デバイス上のラックユニット(RU)の数。例: "1RU"、"2RU"、"6RU"、"7RU"、"11RU"、"13RU" |
ASIC(asic:string) | スイッチ チップセット ASIC。例: "T2", "T2(3)", "T2(6)", "Arad(3)", "Alta", "TH", "Spectrum", "XPliant XP80", "ASE2", "Jericho".テレメトリ、コンフィグレーションレンダリング、VXLANルーティングのセマンティクスを支援するために使用 |
LXC (lxc_support: ブール値) | デバイスが LXC コンテナをサポートしている場合に選択します。 |
オニー(オニー:ブール値) | デバイスがONIEをサポートしている場合に選択します。 |
サポートされる機能(シスコのみ)
COPP :コントロールプレーンポリシングが有効になっている場合(COPP)、指定されたNX-OSバージョンに対して厳密なCoPPプロファイル設定がレンダリングされ、次の設定レンダリングが行われます。
terminal dont-ask copp profile strict
この端末の don't-ask config は、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)#
Cisco 3172PQ NXOS を除き、CoPP はデフォルトで有効になっています。複数のバージョンを指定できます。
ブレークアウト - ブレークアウトを有効にして、指定されたモジュールのポートを低速スプリットポートにブレークアウトできることを示します。
Apstraソフトウェアは、まずブレークアウト対応のすべてのポートをアンブレークアウトし、インテントに従って適切なブレークアウトコマンドを適用します。これは、グローバル否定コマンド no interface breakout module<module_number>
が、ブレークアウト対応ポートを持つモジュールに常に正常に適用できるという前提に基づいています。(これは、ブレークアウトされていないポートに適用するとべき等です)。ただし、この仮定は、NX-OSの将来のバージョン、またはブレークアウト対応ポートに挿入されたケーブル/トランシーバの特定の組み合わせで破られる可能性があることを認識しています。
次の例は、True に設定されているモジュール (1) の否定コマンド用です。
no interface breakout module 1 !
否定コマンドは常にモジュールごとに適用可能なため、各モジュールは個別に指定されます。これの利点は次のとおりです。
- モジュラー型システムでは、すべてのラインカードにブレークアウト対応ポートがあるわけではありません。
- 非モジュラー システムでは、ブレークアウト対応ポートが常にモジュール 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段階でレンダリングされた可能性のあるブレークアウト設定をすべて元に戻します。否定コマンドを適用することで、ポートがデフォルトの速度に戻されるようにします。
シーケンス番号のサポート - 自律システム(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" などです。 |
変換 (変換: リスト) | ポートの可能なブレークアウト。すべてのエントリは、サポートされている特定の速度です。各変換には、インターフェイスのコレクションがあります。 |
インターフェイス数(インターフェイス:リスト) | ポートのブレークアウト機能に依存します。特定のブレークアウト速度を表す変換の場合、インターフェイスには、デバイスの構成に使用するインターフェイス名とインターフェイス設定に関する情報が含まれます。「設定」情報は、デバイスでインターフェイスを正しく構成するために不可欠です。 |
デバイスプロファイルのセレクターフィールドに入力された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オーケストレーションツールで収集および使用するために利用できます。
デバイスプロファイルの表示
Apstra GUIの左側のナビゲーションメニューから、 デバイス>デバイスプロファイル に移動し、デバイスプロファイルテーブルビューに移動します。デバイス プロファイルを作成、複製、編集、および削除できます。