Delen via


CIDR-functies voor ARM-sjablonen

In dit artikel worden de functies beschreven voor het werken met CIDR in uw ARM-sjabloon (Azure Resource Manager).

Tip

We raden Bicep aan omdat het dezelfde mogelijkheden biedt als ARM-sjablonen en de syntaxis gemakkelijker te gebruiken is. Zie cidr-functies voor meer informatie.

parseCidr

parseCidr(network)

Parseert een IP-adresbereik in CIDR-notatie om verschillende eigenschappen van het adresbereik op te halen.

Gebruik in Bicep de functie parseCidr .

Parameters

Parameter Vereist Type Description
network Ja tekenreeks Tekenreeks in CIDR-notatie die een IP-adresbereik bevat dat moet worden geconverteerd.

Retourwaarde

Een object dat verschillende eigenschappen van het adresbereik bevat.

Voorbeelden

In het volgende voorbeeld wordt een IPv4 CIDR-tekenreeks geparseerd:

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

In het voorgaande voorbeeld wordt het volgende object geretourneerd:

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

In het volgende voorbeeld wordt een IPv6 CIDR-tekenreeks geparseerd:

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

In het voorgaande voorbeeld wordt het volgende object geretourneerd:

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

Splitst het opgegeven IP-adresbereik in CIDR-notatie op in subnetten met een nieuwe CIDR-waarde en retourneert het IP-adresbereik van het subnet met de opgegeven index.

Gebruik in Bicep de functie cidrSubnet .

Parameters

Parameter Vereist Type Description
network Ja tekenreeks Tekenreeks met een IP-adresbereik dat moet worden geconverteerd in CIDR-notatie.
newCIDR Ja int Een geheel getal dat de CIDR aangeeft die moet worden gebruikt voor het subnet. Deze waarde moet gelijk zijn aan of groter zijn dan de CIDR-waarde in de network parameter.
subnetIndex Ja int Index van het gewenste IP-adresbereik van het subnet dat moet worden geretourneerd.

Retourwaarde

Een tekenreeks van het IP-adresbereik van het subnet met de opgegeven index.

Voorbeelden

In het volgende voorbeeld worden de eerste vijf /24-subnetten berekend van de opgegeven /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()])]"
      }
    }
  }
}

In het voorgaande voorbeeld wordt de volgende matrix geretourneerd:

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

In het volgende voorbeeld worden de eerste vijf /52-subnetten berekend van de opgegeven /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()])]"
      }
    }
  }
}

In het voorgaande voorbeeld wordt de volgende matrix geretourneerd:

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

Berekent het bruikbare IP-adres van de host met de opgegeven index op het opgegeven IP-adresbereik in CIDR-notatie. In het geval van 192.168.1.0/24bijvoorbeeld, zijn er gereserveerde IP-adressen: 192.168.1.0 fungeert als het netwerk-id-adres, terwijl 192.168.1.255 deze fungeert als het broadcast-adres. Alleen IP-adressen van 192.168.1.1 tot nu 192.168.1.254 kunnen worden toegewezen aan hosts, die 'bruikbare' IP-adressen worden genoemd. Dus, wanneer de functie wordt doorgegeven een hostIndex van 0, 192.168.1.1 wordt geretourneerd.

Gebruik in Bicep de cidrHost-functie .

Parameters

Parameter Vereist Type Description
network Ja tekenreeks Tekenreeks die een IP-netwerk bevat dat moet worden geconverteerd (moet de juiste netwerkindeling hebben).
hostIndex Ja int De index van het host-IP-adres dat moet worden geretourneerd.

Retourwaarde

Een tekenreeks van het IP-adres.

Voorbeelden

In het volgende voorbeeld worden de eerste vijf bruikbare HOST-IP-adressen van de opgegeven /24 berekend:

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

In het voorgaande voorbeeld wordt de volgende matrix geretourneerd:

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

In het volgende voorbeeld worden de eerste vijf bruikbare HOST-IP-adressen van de opgegeven /52 berekend:

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

In het voorgaande voorbeeld wordt de volgende matrix geretourneerd:

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

Volgende stappen