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