ネットワーク配置を説明する抽象的な言語?


8

ネットワーク構成言語について、ベンダーに依存しない標準/仕様は多少ありますか?たとえば、ネットワークと仮想マシンを持つVPCはXMLまたはJSONファイルになるでしょう。

何かのようなもの、

<deployment>
<vpc name="Test">
<appliances>
  <vm id="1" />
</appliances>
</vpc>
</deployment>

いいえ、そうではありません。問題は、すべてのベンダーがすべてをサポートしているわけではなく、すべてが異なる方法でサポートしていることです。これは長い間目標でしたが、非常に難しいことが判明しました。いずれにせよ、VPCとVMはここではトピックから外れています。
Ron Maupin

ネットワークを文書化しますか、それともネットワーク構成を自動化するデータソースとして使用しますか?
JFL

@JFL理想的には両方
J. Doe

回答:


10

ここではYANGが答えです。YANGを定義するRFC8345から引用するには:

このドキュメントでは、ネットワーク/サービストポロジとインベントリの抽象(汎用、または基本)YANGデータモデルを定義します。データモデルは、他のより具体的なトポロジおよびインベントリデータモデルのテクノロジ固有の詳細で拡張される基本モデルとして機能します。

NETCONFのようなプロトコルは、ネットワーク構成の表現にYANGを使用できます。


4

HashicorpのTerraformには、ベンダーに依存しない(ただし、不可知論ではない)構成言語があります。AWS VPCは次のようになります。

resource "aws_vpc" "Test" {
  cidr_block       = "10.0.0.0/16"
  instance_tenancy = "dedicated"

  tags = {
    Name = "Test"
  }
}

3

Ansibleは、ネットワークを(一部として)コードとして構築するために使用できます。YAML構文を使用し、JSONを読み取ることができます。

主要ベンダーの機器には既存のansibleロールがあり、独自のロールを構築できます。

しかし、既存の役割は常に最新であり、執筆し、維持することは、時間がかかる場合があります。


3

特にAWS VPCの場合、CloudFormationを使用して「構成」ファイルを生成できます。これを使用して、VPCとすべての関連コンポーネントを再作成できます。JSON形式だと思います。

一般的なネットワークでは、そのようなことはありません。それを行う方法を理解すれば、快適に引退することができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.