CIDR-funktioner för ARM-mallar

Den här artikeln beskriver funktionerna för att arbeta med CIDR i din Azure Resource Manager-mall (ARM-mall).

Tips

Vi rekommenderar Bicep eftersom det har samma funktioner som ARM-mallar och syntaxen är enklare att använda. Mer information finns i cidr-funktioner .

parseCidr

parseCidr(network)

Parsar ett IP-adressintervall i CIDR-notation för att hämta olika egenskaper för adressintervallet.

I Bicep använder du funktionen parseCidr .

Parametrar

Parameter Krävs Typ Beskrivning
network Ja sträng Sträng i CIDR-notation som innehåller ett IP-adressintervall som ska konverteras.

Returvärde

Ett objekt som innehåller olika egenskaper för adressintervallet.

Exempel

I följande exempel parsas en IPv4 CIDR-sträng:

{
  "$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')]"
    }
  }
}

Föregående exempel returnerar följande objekt:

{
  "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
}

I följande exempel parsas en IPv6 CIDR-sträng:

{
  "$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')]"
    }
  }
}

Föregående exempel returnerar följande objekt:

{
  "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)

Delar det angivna IP-adressintervallet i CIDR-notation i undernät med ett nytt CIDR-värde och returnerar IP-adressintervallet för undernätet med det angivna indexet.

I Bicep använder du funktionen cidrSubnet .

Parametrar

Parameter Krävs Typ Beskrivning
network Ja sträng Sträng som innehåller ett IP-adressintervall som ska konverteras i CIDR-notation.
newCIDR Ja int Ett heltal som representerar CIDR som ska användas för undernätet. Det här värdet ska vara lika med eller större än CIDR-värdet i parametern network .
subnetIndex Ja int Index för det önskade IP-adressintervallet för undernätet som ska returneras.

Returvärde

En sträng med IP-adressintervallet för undernätet med det angivna indexet.

Exempel

I följande exempel beräknas de första fem /24-undernätsintervallen från den angivna /20:

{
  "$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()])]"
      }
    }
  }
}

Föregående exempel returnerar följande matris:

[
  "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"
]

I följande exempel beräknas de första fem /52-undernätsintervallen från den angivna /48:

{
  "$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()])]"
      }
    }
  }
}

Föregående exempel returnerar följande matris:

[
  "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)

Beräknar värdens användbara IP-adress med det angivna indexet för det angivna IP-adressintervallet i CIDR-notation. När det gäller 192.168.1.0/24finns till exempel reserverade IP-adresser: 192.168.1.0 fungerar som nätverksidentifieraradress, medan 192.168.1.255 fungerar som sändningsadress. Endast IP-adresser från 192.168.1.1 till 192.168.1.254 kan tilldelas till värdar, som kallas "användbara" IP-adresser. När funktionen skickas returneras alltså ett hostIndex för 0. 192.168.1.1

I Bicep använder du funktionen cidrHost .

Parametrar

Parameter Krävs Typ Beskrivning
network Ja sträng Sträng som innehåller ett IP-nätverk som ska konverteras (måste vara rätt nätverksformat).
hostIndex Ja int Indexet för den värd-IP-adress som ska returneras.

Returvärde

En sträng med IP-adressen.

Exempel

I följande exempel beräknas de första fem användbara värd-IP-adresserna från den angivna /24:

{
  "$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()])]"
      }
    }
  }
}

Föregående exempel returnerar följande matris:

[
  "10.144.3.1"
  "10.144.3.2"
  "10.144.3.3"
  "10.144.3.4"
  "10.144.3.5"
]

I följande exempel beräknas de första fem användbara värd-IP-adresserna från den angivna /52:

{
  "$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()])]"
      }
    }
  }
}

Föregående exempel returnerar följande matris:

[
  "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ästa steg