Bicep の CIDR 関数
クラスレス ドメイン間ルーティング (CIDR) は、IP アドレスの割り当てと、インターネット プロトコル (IP) パケットのルーティングの方法です。 この記事では、CIDR を操作するための Bicep 関数について説明します。
parseCidr
parseCidr(network)
CIDR 表記の IP アドレス範囲を解析して、アドレス範囲のさまざまなプロパティを取得します。
名前空間: sys。
パラメーター
パラメーター | 必須 | タイプ | 説明 |
---|---|---|---|
ネットワーク | はい | string | 変換する IP アドレス範囲を含む CIDR 表記の文字列。 |
戻り値
アドレス範囲のさまざまなプロパティを含むオブジェクト。
例
次の例では、IPv4 の CIDR 文字列を解析します。
output v4info object = parseCidr('10.144.0.0/20')
前の例では、次のオブジェクトが返されます。
{
"network":"10.144.0.0",
"netmask":"255.255.240.0",
"broadcast":"10.144.15.255",
"firstUsable":"10.144.0.1",
"lastUsable":"10.144.15.254",
"cidr":20
}
次の例では、IPv6 の CIDR 文字列を解析します。
output v6info object = parseCidr('fdad:3236:5555::/48')
前の例では、次のオブジェクトが返されます。
{
"network":"fdad:3236:5555::",
"netmask":"ffff:ffff:ffff::",
"firstUsable":"fdad:3236:5555::",
"lastUsable":"fdad:3236:5555:ffff:ffff:ffff:ffff:ffff",
"cidr":48
}
cidrSubnet
cidrSubnet(network, newCIDR, subnetIndex)
指定された CIDR 表記の IP アドレス範囲を、新しい CIDR 値を持つサブネットに分割し、指定されたインデックスを持つサブネットの IP アドレス範囲を返します。
名前空間: sys。
パラメーター
パラメーター | 必須 | タイプ | 説明 |
---|---|---|---|
ネットワーク | はい | string | 変換する CIDR 表記の IP アドレス範囲を含む文字列。 |
newCIDR | はい | INT | サブネットに使用する CIDR を表す整数。 この値は、network パラメーターの CIDR 値以上である必要があります。 |
subnetIndex | はい | INT | 取得する目的のサブネット IP アドレス範囲のインデックス。 |
戻り値
指定したインデックスを持つサブネットの IP アドレス範囲の文字列。
例
次の例では、指定した /20 から最初の 5 つの /24 サブネット範囲を計算します。
output v4subnets array = [for i in range(0, 5): cidrSubnet('10.144.0.0/20', 24, i)]
前の例では、次の配列が返されます。
[
"10.144.0.0/24",
"10.144.1.0/24",
"10.144.2.0/24",
"10.144.3.0/24",
"10.144.4.0/24"
]
次の例では、指定した /48 から最初の 5 つの /52 サブネット範囲を計算します。
output v6subnets array = [for i in range(0, 5): cidrSubnet('fdad:3236:5555::/48', 52, i)]
前の例では、次の配列が返されます。
[
"fdad:3236:5555::/52"
"fdad:3236:5555:1000::/52"
"fdad:3236:5555:2000::/52"
"fdad:3236:5555:3000::/52"
"fdad:3236:5555:4000::/52"
]
cidrHost
cidrHost(network, hostIndex)
指定された CIDR 表記の IP アドレス範囲で、指定されたインデックスを持つホストの使用可能な IP アドレスを計算します。 たとえば、192.168.1.0/24
の場合、予約済みの IP アドレスがあります。192.168.1.0
はネットワーク識別子アドレスとして機能するのに対して、192.168.1.255
はブロードキャスト アドレスとして機能します。 ホストに割り当てることができるのは 192.168.1.1
から 192.168.1.254
までの範囲の IP アドレスのみであり、これを "使用可能な" IP アドレスと呼びます。 そのため、関数に hostIndex として 0
を渡すと、192.168.1.1
が返されます。
Azure 内では、各サブネットで追加の IP アドレスが予約されています。これには、最初の 4 つの IP アドレスと最後の IP アドレスという合計で 5 つの予約済み IP アドレスが含まれます。 たとえば、IP アドレス範囲 192.168.1.0/24
の場合、次のアドレスが予約されています。
192.168.1.0
: ネットワーク アドレス192.168.1.1
: 既定のゲートウェイ用に Azure によって予約されています192.168.1.2
、192.168.1.3
: Azure DNS IP を VNet 空間にマッピングするために Azure によって予約されています192.168.1.255
: ネットワーク ブロードキャスト アドレス
名前空間: sys。
パラメーター
パラメーター | 必須 | タイプ | 説明 |
---|---|---|---|
ネットワーク | はい | string | 変換する IP ネットワークを含む文字列。 指定された文字列は、正しいネットワーク形式である必要があります。 |
hostIndex | はい | INT | インデックスによって、返されるホスト IP アドレスが決まりきます。 値 0 を使用した場合、Azure 以外のネットワークで使用できる最初の IP アドレスが提供されます。 ただし、3 を使用した場合、Azure サブネットで使用できる最初の IP アドレスが提供されます。 |
戻り値
IP アドレスの文字列。
例
次の例では、Azure 以外のネットワーク上で指定した /24 から最初の 5 つの使用可能なホスト IP アドレスを計算します。
output v4hosts array = [for i in range(0, 5): cidrHost('10.144.3.0/24', i)]
前の例では、次の配列が返されます。
[
"10.144.3.1"
"10.144.3.2"
"10.144.3.3"
"10.144.3.4"
"10.144.3.5"
]
次の例では、Azure 以外のネットワーク上で指定した /52 から最初の 5 つの使用可能なホスト IP アドレスを計算します。
output v6hosts array = [for i in range(0, 5): cidrHost('fdad:3236:5555:3000::/52', i)]
前の例では、次の配列が返されます。
[
"fdad:3236:5555:3000::1"
"fdad:3236:5555:3000::2"
"fdad:3236:5555:3000::3"
"fdad:3236:5555:3000::4"
"fdad:3236:5555:3000::5"
]
次のステップ
- Bicep ファイルのセクションの説明は、Bicep ファイルの構造と構文に関する記事をご覧ください。