フリーフォーム設計
青写真
フリーフォームリファレンスデザインで新しいネットワークを作成する場合は、まずブループリントを作成します。他のリファレンスデザインと同様に、ブループリントにはApstraが管理する運用ネットワークに関連するすべての要素が含まれています。ブループリントの構造とフリーフォームでの使用方法には、主な違いがいくつかあります。データセンターのリファレンスデザインには、論理デバイス、インターフェイスマップ、ラック、テンプレートなどの設計および構築要素が必要です。フリーフォーム設計では、設定の詳細とデバイスリンクがブループリントに直接作成されるため、これらの手順は不要です。新しいブループリントを作成する場合は、に示すようにフリーフォームリファレンスデザインを選択するだけです。
トポロジ
新しいフリーフォームブループリントを作成した後、ネットワークトポロジーの設計を開始できます。DCリファレンスアーキテクチャと同様に、すべての設計作業は[Staged Blueprint]タブから行われます。フリーフォームの[Staged Topology Editor]領域では、要素とやり取りしてネットワークの設計とアーキテクチャを作成します。トポロジー エディターはフリーフォームの新機能で、カスタマイズされたネットワーク設計をインタラクティブな方法で作成できます。ネットワークデバイスを選択し、それらの間のリンクを定義することで、それらを相互に接続することができます。以下に示すように、これらのデバイスは内部または外部のデバイスです。
トポロジ エディタにアクセスするには、[トポロジ]ビューで[編集]ボタンをクリックします。
内部デバイスはApstra管理下にあります。デバイス機能をモデル化し、エージェントを使用してデバイスと通信するデバイスプロファイルにマッピングする必要があります。外部デバイスはApstra管理傘下に直接はありませんが、トポロジービューでモデル化して、内部デバイス(リンクや速度など)とやり取りすることができます。外部デバイスは、デバイスエージェントやモデルを使用しません。デバイス間にリンクを作成したり、単一または複数のリンクを作成したり、集約されたリンクを作成することもできます。トポロジーとやり取りして、デバイスとリンクのデザイン レイアウトの再配置、リンクの追加、色やタグの編集を行うことができます。システムのギア アイコンを選択すると、作成、読み取り、更新、および削除(CRUD)操作を実行できます。個々のオブジェクトとオブジェクトの両方に対して一括で CRUD 操作を実行するオプションがあります。
色
色を使用して、迅速な視覚的なグループ化とApstraデバイス間の区別を作成できます。たとえば、ファイアウォールに接続するデバイスは赤色にし、IP 転送を実行するデバイスはオレンジ色にできます。
タグ
Apstraでは タグが強力な機能ですタグは、Apstraが管理するリソースにメタデータを割り当てる方法です。これらのタグは、Apstraリソース(現在のデバイスとリンク)を識別、整理、検索、フィルタリングするのに役立ちます。タグは、目的、所有者、環境、またはその他の基準によってリソースを分類するのにも役立ちます。タグはメタデータであるため、視覚的なラベル付けに使用されるだけでなく、Apstraグラフデータベース内のノードのプロパティとしても適用されます。このノードプロパティ(デバイスプロパティ)は、コンフィグ生成のダイナミック変数と、ApstraのライブクエリテクノロジーとApstraインテントベース分析を介したApstraリアルタイム分析についてJinjaで参照できます。
たとえば、タグの「ファイアウォール」を使用して、特定の説明をレンダリングできます。
{% if has_tag(interface.link.neighbor_system.id, 'firewall') %} description "this is a firewall facing interface"; {% endif %}
Jinjaサポートセクションでタグにアクセスし、使用する方法の詳細な例を参照してください。
システムの作成
[トポロジー]ビューまたは[システム]ビューからシステムを作成できます。
-
段階的>トポロジ>トポロジ エディターから
下のメニューの最初の2つのアイコンを使用して、内部システムまたは外部システムのいずれかを作成します。新しいシステムが [Topology ]ビューに表示されます。内部システムを作成する前に、デバイスプロファイルをブループリントカタログにインポートし、内部システムの作成時に割り当てます。
-
段階的>システムから
この方法では、新しいシステムが[トポロジ]ビューに自動的に追加されます。既存の管理対象デバイスから新しいシステムを作成するか、特定のデバイスプロファイルを持つ新しいシステムを作成し、機器の準備が整い、Apstraが管理するデバイスの一部になると、後で管理対象デバイスを割り当てることができます。
リンクの作成
リンクは、オブジェクトまたはデバイスを一緒に接続するために使用されます。リンクは、単一リンクまたはアグリゲート リンクにできます。これらのリンクには、トポロジ エディターの [gear] アイコンを使用してパラメーターを割り当てることができます。リンクには IP アドレスとタグを割り当てることができます。
デバイス プロファイル
デバイス プロファイルは、サポートされるハードウェア デバイスの機能を定義します。一部の機能は NOS バージョンで動作が異なっており、NOS バージョンごとに機能を表現できます。
フリーフォームの初期バージョンでは、ジュニパーネットワークスのデバイスプロファイルのみがサポートされています。
デバイス プロファイルを構築する前に、ブループリントにデバイス プロファイルをインポートする必要があります。その後、ブループリントのトポロジ エディターでこれらのデバイスを使用できます。
設定テンプレート
フリーフォーム内のネットワーク要素の設計は任意であるため、デバイス設定はフリーフォームリファレンスデザインによって自動的にレンダリングされません。完全に定義するには、設定が残されます。Apstra 4.1.1以降では、デバイスの設定を駆動するフリーフォーム専用に設定テンプレートの概念を紹介します。構成テンプレートは、使用事例や自動化のレベルに応じて、非常にシンプルで静的で、非常に複雑でプログラム可能です。設定テンプレートは、オプションでデバイスコンテキストとプロパティセットと対話できるJinja2テンプレート言語の使用をサポートしています。
ネスト設定テンプレート(構成可能)
設定テンプレートがジンジャテンプレートをサポートしているため、強力なネスト機能がサポートされているため、別の設定テンプレートのリストから構成テンプレートのセクションを含めることができます。設定テンプレートのネストには、主に2つのメリットがあります。1つ目は、ネストを使用すると、さまざまなサービスや構成セクションなどを共通のコンポーネントに分離し、専用の構成テンプレートを作成できることです。
たとえば、ほとんどのジュニパー デバイスに対して、バナー、ログイン、NTP などのベース システム スタンザ設定があるとします。各デバイステンプレートに同じ設定をコピーして貼り付ける代わりに、ベースシステム設定用の専用の設定テンプレートを作成できます。次に、別のテンプレート内からそのテンプレートを参照するだけです。
各システムには1つの設定テンプレートしか割り当てないため、2つ目のメリットは、ネストされた設定テンプレートのすべてのエンティティが自動的に継承されるということです。
図として、以下の設定テンプレート junos_configuration.jinja
は、 など junos_system.jinja
、複数のネストされた設定テンプレートを持つ単一の設定テンプレートです。
ネストされた junos_system.jinja
テンプレートは、システム ホスト名のレンダリングに使用されます。
レンダリング順序
設定は設定テンプレートの順にレンダリングされます。
プロパティセット
プロパティセットは、設定テンプレートとIBAプローブで使用するためにブループリントカタログにインポートするキーと値のペアのコレクションです。プロパティセットの使用はオプションですが、構成テンプレートを完全にパラメータ化して、変更されていない部分を実際の変数と分離できる貴重な機能を提供します。別の方法として、プロパティセットを使用すると、設定を任意の柔軟な方法でレンダリングするために使用されるデバイスモデルを豊かにすることができます。
たとえば、企業内のすべてのデバイスでの NTP の設定は一貫している可能性がありますが、地域ごとに異なる時間ソースや層があります。NTP 構成テンプレートは、これらのエリアごとに異なる変数を使用して構築できます。この場合、このプロパティを「ntp」という名前で使用できます。
正しい構文を使用することが重要です。キー値では大文字と小文字が区別されます。
設定テンプレートは、NTP サーバーに使用する実際の IP アドレスの代わりに、 を使用して構築 {{ntp}}
されます。同じ設定テンプレートがすべてのブループリントにインポートされますが、東部地域で実行されているブループリントには「EAST」プロパティセットがインポートされ、西地域で実行されているブループリントは「WEST」プロパティセットがインポートされます。プロパティ セットは、デフォルトではブループリント全体、またはコンテキストではグローバルです。
フリーフォームは、デバイスに特別に割り当てることができるプロパティ セットもサポートしています。これにより、特定のプロパティセットを設定して割り当て、指定したデバイスでのみ使用できます。プロパティセットはグラフの一部です。その値はIBAプローブで使用できます。
上記の例は、デバイス コンテキスト(左)またはグラフ(右)を介してプロパティ セットにアクセスできることを示しています。
プロパティ セットのデータ構造
フリーフォームプロパティセットは、さまざまなユースケースを実現するために使用できる高度なデータ構造をサポートしています。フリーフォーム プロパティ セットは、次のような一般的な Python データ 型のいずれかをサポートします。
-
配列(項目のリスト)
-
ブール値: True または False
-
Int:1、2、3 など
-
フロート:1.2、3.65 など
-
String: "Hello World"
-
辞書:{"asn":65432、"lo0":"1.2.3.4/32"}
上記の例は、コンフィグテンプレート内のさまざまなデータタイプを示しています。
プロパティ セットは、グローバルに参照することも、ブループリント内のシステムに割り当てることもできます。以下のスクリーンショットは、ネストされた辞書(辞書)データ構造を使用して構築されたプロパティセットを示しています。
次のように、キーを使用し、必要に応じてキーを使用して辞書を再帰的に処理できます。
-
esxRedTrunk は、インターフェイス記述として使用するリンク タグ名です。
-
99、100、101 は、割り当てられる VLAN ID/トランク メンバー & irb.<value>
-
サブネット/説明/ゲートウェイを使用して、有意義な構成を導き出します。
導入モード(導入/準備/ドレイン)
システムの導入モードはフリーフォームで設定できます(データセンターのブループリントと同じです)。
ただし、フリーフォームでは、システムが各モードのときにレンダリングされる設定を定義します。
Deploy モードを使用すると、ルーティング プロトコル セッションをレンダリングするか、特定のルート マップをデバイスにレンダリングするかを示すなど、さまざまな設定を条件付きでレンダリングできます。たとえば、デバイスが「ドレイン」に設定されている場合、動的ルーティングプロトコルを削除する設定を生成する特定のジンジャが含まれます。
システムの展開モードは、デバイスコンテキストでユーザーに公開され、設定テンプレートでJinja変数として参照できます。
隣接システムの導入モードも利用可能です。
システムに割り当てられた設定テンプレートから参照されていない場合、システムの展開モードを変更しても、レンダリングされた設定には影響しません。
Jinja設定テンプレートでこれを実現する方法の例は次のとおりです。
{% if deploy_mode in ['deploy', 'drain'] %} {% include 'protocols.jinja' %} {% include 'policy_options.jinja' %} {% endif %}
この例では、指定されたノードが「deploy」または「ドレイン」状態にある場合、 と policy_options.jinja
の両方protocols.jinja
がアクティブになります。個々のニーズに合わせて動作を変更できます。