インターフェイス記述(API)
Apstraは、名前、速度、ポートモードなどのネットワークインターフェイスの主なパラメーターに加えて、物理インターフェイスと集合型論理インターフェイス(いわゆるポートチャネル)の説明も設定します。インターフェイスの記述は、次の条件が満たされている場合に自動的に生成されます。
- インターフェイスはピアに接続されています。
- インターフェイスは、リーフ、スパイン、または汎用システムに属しています。
- ピアインターフェイスは、このサーバー上の仮想ネットワークエンドポイントを持つリーフ、スパイン、または汎用システムに属しています。
生成された説明の形式は <facing_|to.><peer-device-label>[:peer-interface-name]です。例:
- facing_spine2:イーサネット1/2
- to.server1:eth0
- to.server2
名前のプレフィックスは、ピアがリーフ、スパイン、または外部ルーターのいずれであっても facing_ されます。プレフィックスは、ピアデバイスがL2またはL3サーバーの場合に to. されます。ピアインターフェイス名部分は、ピアデバイスがApstraによって制御されている場合にのみ存在します。
Apstra REST API - インターフェイスの説明
Apstra APIでは、自動生成されたインターフェイスの説明を変更できます。ただし、Apstra UIにはそのような機能はありません。
インターフェイスの説明には、コード33-126のASCII文字とスペースが含まれている場合がありますが、コマンド補完と解釈される「?」を除く。説明の長さは240文字に制限されており、これはサポートされているスイッチモデル全体で可能な限り長い長さです。
インターフェイスは、特定のプロパティセットを持つグラフノードとして内部に保存されます。説明はこれらのプロパティの1つです。説明を変更するには、汎用 API を使用してグラフ ノードを操作します。
API - インターフェイス設定の取得
インターフェイス設定を取得するには、 https://aos-server/api/blueprints/{blueprint-id}/nodes/{interface-node-id}にGETリクエストを送信します。
リクエスト:
{
"description": "facing_dkl-2-leaf:Ethernet1/2",
"mlag_id": null,
"tags": null,
"if_name": "swp2",
"label": null,
"port_channel_id": null,
"ipv4_addr": "203.0.113.10/31",
"mode": null,
"if_type": "ip",
"type": "interface",
"id": "interface-id-1",
"protocols": "ebgp"
}
API - インターフェイスの説明を作成または変更する
インターフェイスの説明を作成または変更するには、有効なJSONを使用してPATCHリクエストを https://aos-server/api/blueprints/{blueprint-id}/nodes/{interface-node-id} に送信します。JSON には、有効なデータを含む「description」フィールドが含まれている必要があります。
curl -X PATCH -H "AuthToken: EXAMPLE" \
-d '{"description": "New description I want!"}'
http://aos-server:8888/api/blueprints/id-1/nodes/interface-id-1
応答:
{
"description": "New description I want!",
"mlag_id": null,
"tags": null,
"if_name": null,
"label": null,
"port_channel_id": null,
"ipv4_addr": null,
"mode": null,
"if_type": "ip",
"type": "interface",
"id": "interface-id-1",
"protocols": "ebgp"
}
API - インターフェイスの説明を削除
カスタムインターフェイスの説明を削除して自動説明生成に戻るには、説明を空の値に設定します。
リクエスト:
curl -X PATCH -H "AuthToken: EXAMPLE" \
-d '{"description": ""}'
http://aos-server:8888/api/blueprints/id-1/nodes/interface-id-1
応答:
{
"description": "",
"mlag_id": null,
"tags": null,
"if_name": null,
"label": null,
"port_channel_id": null,
"ipv4_addr": null,
"mode": null,
"if_type": "ip",
"type": "interface",
"id": "interface-id-1",
"protocols": "ebgp"
}
後続の GET リクエストでは、説明が自動的に生成されたことが示されます。
リクエスト:
curl -H "AuthToken: EXAMPLE" \
http://aos-server:8888/api/blueprints/id-1/nodes/interface-id-1
応答:
{
"description": "facing_dkl-2-leaf:Ethernet1/2",
"mlag_id": null,
"tags": null,
"if_name": "swp2",
"label": null,
"port_channel_id": null,
"ipv4_addr": "203.0.113.10/31",
"mode": null,
"if_type": "ip",
"type": "interface",
"id": "interface-id-1",
"protocols": "ebgp"
}