フリーフォームの概要と設計
フリーフォームリファレンスデザインの概要
フリーフォームのリファレンスデザインは、すべてのデバイス設定の作成と検証はネットワーク設計者が行うという点で、他のリファレンスデザインとは異なります。導入シナリオに適したあらゆる機能、プロトコル、アーキテクチャを利用できます。デバイスとリンクはトポロジーエディターでモデル化され、グラフデータベースにリファレンスデザインを表すオブジェクトが作成されます。他のリファレンスデザインと同様に、Freeformは引き続き、コンテキストグラフ、インテントベース分析(IBA)、構成検証、ネットワークオペレーティングシステム(NOS)管理、Time Voyager、その他多数のApstraソフトウェア機能を活用しています。ただし、より高度なリファレンスデザインと比較すると、IBA機能の奥行きを減らすことは、設計の柔軟性を高めるためのトレードオフです。
Freeformは、さまざまな設計および構築要素とビューで構成されており、それぞれが特定のネットワーク設計の側面を管理します。それらの機能と使用法については、次のセクションで説明します。
青写真
Freeformのリファレンスデザインで新しいネットワークを作成する場合は、まずブループリントを作成します。他のリファレンスデザインと同様に、ブループリントにはApstraが管理する運用ネットワークに関連するすべての要素が含まれていますが、Freeformでのブループリントの構造や使用方法にはいくつかの重要な違いがあります。
データセンターのリファレンスデザインには、論理デバイス、インターフェイスマップ、ラック、テンプレートなどの設計要素と構築要素が必要です。フリーフォーム設計では、コンフィギュレーションの詳細とデバイスリンクをブループリントに直接作成するため、これらの手順は不要です。新しいブループリントを作成するときは、次に示すようにフリーフォームのリファレンスデザインを選択するだけです。
ブループリントのインポート/エクスポート
FreeformブループリントをApstraとの間でインポートおよびエクスポートすることができます。これにより、Apstraインスタンス間でのブループリントの移行を簡素化できます。この機能は、フリーフォームリファレンスデザインの「カタログ」を作成するためにも利用できます。エンジニアは、このカタログを使用して、ブループリントから情報を取得し、それを多くのApstra実装の標準化された設計として実装することで、ネットワーク設計を標準化できます。これらの実装は、複数の地理的な場所にある組織で使用される設計のテンプレートまたはモデルとして機能し、カスタムネットワーク設計を大規模に迅速かつ均一に展開できます。この機能のもう一つの使用例は、さまざまなネットワーク設計やシステムのテストや評価です。インポート/エクスポートされたブループリントのさまざまな側面を、完全なデプロイのコミットメントなしで調べます。これらの可能性はすべてApstra Freeformにあります。
ブループリントをエクスポートするには、次の簡単なワークフローに従います。
次に、以下に示すように、エクスポートするブループリントの要素を選択できます。すべてのトグルが "オフ" の場合、トポロジ エディターの内容 (次のセクションで説明します) のみがエクスポートされます。
エクスポートが完了すると、ブループリントは使用できるように JSON 形式で保存されます。
ブループリントのインポートも同様です。新しいブループリントを作成してインポート ダイアログをクリックし、インポートするブループリントを選択するだけです。
トポロジ
新しいフリーフォームブループリントを作成したら、ネットワークトポロジーの設計を開始できます。DC リファレンス アーキテクチャと同様に、すべての設計作業は [ステージングされたブループリント] タブから行います。フリーフォームのステージトポロジーエディターエリアでは、要素を操作して、ネットワーク設計とアーキテクチャを作成します。トポロジーエディターはFreeformの新機能で、オーダーメイドのネットワークデザインをインタラクティブな方法で作成することができます。ネットワーク デバイスを選択し、それらの間のリンクを定義することで対話形式で接続できます。これらのデバイスは、内部または外部にすることができます。
内部デバイスはApstraによって管理され、デバイス機能をモデル化し、エージェントを使用してデバイスと対話するデバイスプロファイルにマッピングする必要があります。外部デバイスはApstraの管理下にあるわけではありませんが、内部デバイスとのやり取りをシミュレートするために、トポロジービューでモデル化することができます。たとえば、インターフェイスのリンクや速度をシミュレートできます。外部デバイスは、デバイスエージェントまたはモデルを使用しません。
デバイス間には、単一、複数、または集約されたリンクを作成できます。トポロジーを操作して、設計レイアウトの再配置、リンクの追加、デバイスやリンクの色やタグの編集を行うことができます。作成、読み取り、更新、および削除 (CRUD) 操作を実行するには、システムの歯車アイコンを選択します。個々のオブジェクトとオブジェクトの両方に対して一括で CRUD 操作を実行するオプションがあります。
色
色を使って、Apstraデバイスを視覚的にすばやく区別することができます。たとえば、ファイアウォールに接続しているデバイスを赤で表示し、IP転送のみを実行しているデバイスをオレンジ色にすることができます。
タグ
Apstraでは、タグは強力な機能です。タグは、Apstraが管理するリソースにメタデータを割り当てるための手段です。これらのタグは、Apstraリソースの識別、整理、検索、フィルタリングに役立ちます。タグは、目的、所有者、環境、またはその他の基準でリソースを分類するのにも役立ちます。タグはメタデータであるため、視覚的なラベル付けに使用されるだけでなく、Apstraグラフデータベース内のノードのプロパティとしても適用されます。このノードプロパティ、またはデバイスプロパティは、Jinjaで構成生成の動的変数や、ApstraのライブクエリテクノロジーとApstraインテントベース分析を介したリアルタイム分析のために参照できるようになります。
たとえば、タグ `firewall`
を使用して特定の説明を出力できます。
{% if has_tag(interface.link.neighbor_system.id, 'firewall') %} description "this is a firewall facing interface"; {% endif %}
タグにアクセスして使用する方法のその他の例については、「 デバイス コンテキストの値へのアクセス 」および「 Jinja サポート 」セクションを参照してください。
システムの作成
新しいシステムを作成するには、次の 2 つの方法があります。
1. 「ステージング された> トポロジ > トポロジエディタ」に移動します。
下部のメニューの最初の2つのアイコンを使用して、内部システムまたは外部システムを作成します。新しいシステムがトポロジ ビューに表示されます。内部システムを作成するときに、オプションで、使用するデバイス プロファイルを指定し、システム ID を割り当てることができます。デバイス プロファイルを作成してブループリントにインポートする方法については、「デバイス プロファイル」セクションを参照してください。
2. [ステージング > システム] に移動します。
この方法では、トポロジ ビューに新しいシステムが自動的に追加されます。
既存の管理対象デバイスから新しいシステムを作成するか、特定のデバイスプロファイルで新しいシステムを作成して、機器の準備が整い、Apstra管理対象デバイスの一部になったら、後で管理対象デバイスを割り当てるかを選択できます。
リンクの作成
リンクを使用して、オブジェクトまたはデバイスを接続できます。リンクは、単一リンクまたは集合リンクです。これらのリンクには、トポロジ エディターの [歯車] アイコンを使用してパラメーターを割り当てることができます。リンクには、IP アドレスとタグを割り当てることができます。
リンク アグリゲーション(LAG)
リンクは、リンクアグリゲーション(LAG)にすることができます。LAG 編集領域にアクセスするには、[ トポロジ] ビューを選択し、デバイスを選択して、[ LAG の管理 ] アイコンを選択します。
リンク アグリゲーション ユーザー インターフェイスの表示を次に示します。
集計を形成する 2 つのリンクを選択します。[ 集計] をクリックすると、変更が表示されます。
[変更の適用] をクリックして、トポロジ エディターを新しい LAG で更新します。集約リンクは太く、青色で表示されます。
リンク&LAG管理は、リンク設定のさまざまな順列を管理する潜在的に複雑なプロセスを簡素化します。
デバイスプロファイル
デバイス プロファイルは、サポートされているハードウェア デバイスの機能を定義します。一部の機能の動作は、NOS バージョン間で異なります。特定の機能は、NOSのバージョンによって動作が異なる場合があります。
Freeformの初期バージョンでは、ジュニパーネットワークスデバイスのデバイスプロファイルのみがサポートされています。
ブループリントを作成する前に、デバイス プロファイルをブループリントにインポートする必要があります。その後、ブループリントのトポロジー エディターでこれらのデバイスを使用できます。
CLI コマンドを実行する
ユーザーは、統計情報の表示などの機能や、デバイスのステータスやインターフェイスの状態を確認するために、CLIを介してネットワーク内のデバイスと直接対話することができます。Apstra FreeformはCLIアクセスを簡素化します。ネットワークを構成する可能性のあるデバイスの範囲を考えると、この機能はカスタムフリーフォームトポロジーでこれまで以上に便利です。CLI コマンド機能にアクセスするには、デバイスに移動すると、次のダイアログが表示されます。
「 CLI コマンドを実行」 フィールドをクリックします。CLI コマンドの CLI フィールドが表示されます。コマンドの一部を入力すると、CLI 構造内で使用可能なすべての関連コマンドを含むプロンプトが表示されます。
現在サポートされているのは show コマンドのみです。
Tab キーを使用して、コマンドを次の階層レベルにオートコンプリートします。
以下に、CLI コマンドの出力例を示します。出力を表示するために、ターミナルセッションを開いてデバイスにSSH接続する必要はありません。この例のテキスト出力とは別に、XML または JSON の出力形式を選択することもできます。
構成テンプレート
Freeformのネットワーク要素のデザインは任意であるため、デバイス設定はFreeformリファレンスデザインによって自動的にレンダリングされません。デバイスの構成を完全に制御できます。
Apstra 4.1.1以降、デバイスの設定を推進するために、Freeform専用の構成テンプレートという概念を導入しました。設定テンプレートは、使い慣れたユースケースと自動化のレベルに応じて、非常にシンプルで静的なものから非常に複雑でプログラム的なものまであります。構成テンプレートは、必要に応じてデバイス コンテキストおよびプロパティ セットと対話できる Jinja2 テンプレート言語の使用をサポートしています。
ネスト(コンポーザブル)設定テンプレート
構成テンプレートは Jinja テンプレートをサポートしているため、別の構成テンプレート内のリストから構成テンプレートのセクションを含めることができる強力な入れ子機能がサポートされています。構成テンプレートを入れ子にすることには、主に 2 つの利点があります。1つ目は、ネストを使用すると、さまざまなサービスや構成セクションなどを共通のコンポーネントに分割し、それら専用の構成テンプレートを作成できることです。
例えば、ほとんどのジュニパーデバイスで、バナー、ログイン、NTPなどの基本システムスタンザ設定があるとします。各デバイステンプレートに同じ設定をコピーして貼り付ける代わりに、基本システム設定専用の設定テンプレートを作成することができます。次に、別のテンプレート内からそのテンプレートを参照するだけです。
2 つ目の利点は、1 つの構成テンプレートをデバイスにリンクするだけで済むことです。そのデバイスは、リンクされたテンプレートのすべての構成設定を自動的に継承します。
たとえば、次の構成テンプレート である は、 junos_configuration.jinja
junos_system.jinja
junos_interfaces.jinja
や などの複数のネストされた構成テンプレートを持つ単一の構成テンプレートです。テンプレートをjunos_configuration_jinja
デバイスにbond-street
リンクするだけで、ネストされたすべての構成テンプレートが適用されます。
次の画像では、 junos_system.jinja
は親テンプレートのシステムホスト名(bond-street
)のみをレンダリングします。
レンダリング順序
Apstraは、構成テンプレートの順序に従って構成をレンダリングします。
プロパティ セット
プロパティ セットは、コンフィギュレーション テンプレートと IBA プローブで使用するためにブループリント カタログにインポートするキーと値のペアのコレクションです。プロパティ セットの使用はオプションですが、構成テンプレートの永続的な設定を実際の変数から分離することで、構成テンプレートを完全にパラメーター化できる貴重な機能を提供します。つまり、プロパティ セットを使用すると、構成を任意かつ柔軟にレンダリングするために使用されるデバイス モデルをより細かく制御できます。
たとえば、企業内のすべてのデバイスでの NTP の設定は一貫していても、地域ごとにタイム ソースや階層が異なります。地理的な場所ごとに異なる変数を使用して、NTP 設定テンプレートを作成できます。たとえば、"ntp" という名前のプロパティを使用できます。
正しい構文を使用することが重要であり、キー値では大文字と小文字が区別されることに注意してください。
この場合、NTPサーバーのIPアドレスの代わりに{{ntp}}を使用して構成テンプレートを作成できます。このコンフィグ テンプレートはすべてのブループリントにインポートされますが、East リージョンで実行されているブループリントには "EAST" プロパティ セットがインポートされ、West リージョンで実行されているブループリントには "WEST" プロパティ セットがインポートされています。プロパティ セットは、既定でグローバルにスコープが設定されます。
Freeformは、特定のデバイスに割り当てられるプロパティセットもサポートしています。これにより、特定のプロパティ セットを作成し、特定のデバイスに割り当てることができます。Apstraは、プロパティセットをグラフデータベースに保存し、その値をIBAプローブで使用できます。
次の例は、[デバイス コンテキスト] タブまたはグラフ ビジュアライザーを使用してプロパティ セットにアクセスできることを示しています。
プロパティ セット内のデータ構造
Freeform プロパティ セットは、さまざまなユース ケースを満たすために使用できる高度なデータ構造をサポートします。フリーフォームプロパティセットは、次のような一般的なPythonデータ型をすべてサポートしています。
- 配列 (項目のリスト)
- ブール値: 真または偽
- 整数: 1, 2, 3 など
- 浮動小数点数: 1.2、3.65 など
- 文字列: "Hello World"
- 辞書: {"asn": 65432, "lo0": "1.2.3.4/32"}
プロパティ セットは、グローバルに参照することも、ブループリントのシステムに割り当てることもできます。
上記の例では、キーを使用して辞書を再帰し、必要に応じてキーを値として使用できます。
- esxRedTrunkは、インターフェイス記述として使用されるリンク タグ名です
- 99、100、101は、割り当てられるVLAN ID/トランクメンバー&irb.<値>です
- サブネット/説明/ゲートウェイは、意味のある構成を導き出すためにも使用されます