CIDR-Funktionen für ARM-Vorlagen
Dieser Artikel beschreibt die Funktionen für das Arbeiten mit CIDR in Ihrer Azure Resource Manager-Vorlage (ARM-Vorlage).
Tipp
Wir empfehlen Bicep, weil es dieselben Funktionen wie ARM-Vorlagen bietet und die Syntax einfacher zu verwenden ist. Weitere Informationen finden Sie unter cidr-Funktionen.
parseCidr
parseCidr(network)
Parst einen IP-Adressbereich in CIDR-Notation, um verschiedene Eigenschaften des Adressbereichs abzurufen.
Verwenden Sie in Bicep die Funktion parseCidr.
Parameter
Parameter | Erforderlich | Type | BESCHREIBUNG |
---|---|---|---|
network | Ja | Zeichenfolge | Zeichenfolge in CIDR-Notation, die einen zu konvertierenden IP-Adressbereich enthält. |
Rückgabewert
Ein Objekt, das verschiedene Eigenschaften des Adressbereichs enthält.
Beispiele
Im folgenden Beispiel wird eine IPv4-CIDR-Zeichenfolge geparst:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"v4info": {
"type": "object",
"value": "[parseCidr('10.144.0.0/20')]"
}
}
}
Im vorherigen Beispiel wird das folgende Objekt zurückgegeben:
{
"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
}
Im folgenden Beispiel wird eine IPv6-CIDR-Zeichenfolge geparst:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"v6info": {
"type": "object",
"value": "[parseCidr('fdad:3236:5555::/48')]"
}
}
}
Im vorherigen Beispiel wird das folgende Objekt zurückgegeben:
{
"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)
Teilt den angegebenen IP-Adressbereich in der CIDR-Notation in Subnetze mit einem neuen CIDR-Wert auf und gibt den IP-Adressbereich des Subnetzes mit dem angegebenen Index zurück.
Verwenden Sie in Bicep die Funktion cidrSubnet.
Parameter
Parameter | Erforderlich | Type | BESCHREIBUNG |
---|---|---|---|
network | Ja | Zeichenfolge | Zeichenfolge mit einem IP-Adressbereich, der in CIDR-Notation konvertiert werden soll. |
newCIDR | Ja | INT | Eine ganze Zahl, die das CIDR darstellt, das für das Subnetz verwendet werden soll. Dieser Wert sollte gleich oder größer als der CIDR-Wert im Parameter network sein. |
subnetIndex | Ja | INT | Index des gewünschten IP-Adressbereichs des Subnetzes, der zurückgegeben werden soll. |
Rückgabewert
Eine Zeichenfolge des IP-Adressbereichs des Subnetzes mit dem angegebenen Index.
Beispiele
Im folgenden Beispiel werden die ersten fünf /24-Subnetzbereiche aus dem angegebenen /20 berechnet:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"v4subnets": {
"type": "array",
"copy": {
"count": "[length(range(0, 5))]",
"input": "[cidrSubnet('10.144.0.0/20', 24, range(0, 5)[copyIndex()])]"
}
}
}
}
Im vorherigen Beispiel wird das folgende Array zurückgegeben:
[
"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"
]
Im folgenden Beispiel werden die ersten fünf /52-Subnetzbereiche aus dem angegebenen /48 berechnet:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"v6subnets": {
"type": "array",
"copy": {
"count": "[length(range(0, 5))]",
"input": "[cidrSubnet('fdad:3236:5555::/48', 52, range(0, 5)[copyIndex()])]"
}
}
}
}
Im vorherigen Beispiel wird das folgende Array zurückgegeben:
[
"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)
Berechnet die verwendbare IP-Adresse des Hosts mit dem angegebenen Index für den angegebenen IP-Adressbereich in CIDR-Notation. Im Fall von 192.168.1.0/24
gibt es beispielsweise reservierte IP-Adressen: 192.168.1.0
dient als Netzwerkbezeichneradresse, während 192.168.1.255
als Broadcastadresse fungiert. Nur IP-Adressen von 192.168.1.1
bis 192.168.1.254
können Hosts zugewiesen werden. Sie werden als „verwendbare“ IP-Adressen bezeichnet. Wenn also die Funktion übergeben wird, wird der hostIndex 0
, 192.168.1.1
zurückgegeben.
Verwenden Sie in Bicep die Funktion cidrHost.
Parameter
Parameter | Erforderlich | Type | BESCHREIBUNG |
---|---|---|---|
network | Ja | Zeichenfolge | Zeichenfolge, die ein zu konvertierendes IP-Netzwerk enthält (muss das richtige Netzwerkformat aufweisen). |
hostIndex | Ja | INT | Der Index der zurückzugebenden Host-IP-Adresse. |
Rückgabewert
Eine Zeichenfolge der IP-Adresse.
Beispiele
Im folgenden Beispiel werden die ersten fünf verwendbaren Host-IP-Adressen aus dem angegebenen /24 berechnet:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"v4hosts": {
"type": "array",
"copy": {
"count": "[length(range(0, 5))]",
"input": "[cidrHost('10.144.3.0/24', range(0, 5)[copyIndex()])]"
}
}
}
}
Im vorherigen Beispiel wird das folgende Array zurückgegeben:
[
"10.144.3.1"
"10.144.3.2"
"10.144.3.3"
"10.144.3.4"
"10.144.3.5"
]
Im folgenden Beispiel werden die ersten fünf verwendbaren Host-IP-Adressen aus dem angegebenen /52 berechnet:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"v6hosts": {
"type": "array",
"copy": {
"count": "[length(range(0, 5))]",
"input": "[cidrHost('fdad:3236:5555:3000::/52', range(0, 5)[copyIndex()])]"
}
}
}
}
Im vorherigen Beispiel wird das folgende Array zurückgegeben:
[
"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"
]
Nächste Schritte
- Eine Beschreibung der Abschnitte in einer ARM-Vorlage finden Sie unter Grundlegendes zur Struktur und Syntax von ARM-Vorlagen.