Fonctions de routage CIDR pour les modèles ARM

Cet article décrit les fonctions permettant de travailler avec un routage CIDR dans votre modèle Azure Resource Manager (modèle ARM).

Conseil

Nous recommandons Bicep, parce qu’il offre les mêmes fonctionnalités que les modèles ARM et que la syntaxe est plus facile d’utilisation. Pour en savoir plus, reportez-vous aux fonctions cidr.

parseCidr

parseCidr(network)

Analyse une plage d’adresses IP dans la notation CIDR pour obtenir différentes propriétés de la plage d’adresses.

Dans Bicep, utilisez la fonction parseCidr.

Paramètres

Paramètre Obligatoire Type Description
network Oui string Chaîne dans la notation CIDR contenant une plage d’adresses IP à convertir.

Valeur retournée

Objet qui contient différentes propriétés de la plage d’adresses.

Exemples

L’exemple suivant analyse une chaîne CIDR IPv4 :

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

L’exemple précédent retourne l’objet suivant :

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

L’exemple suivant analyse une chaîne CIDR IPv6 :

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

L’exemple précédent retourne l’objet suivant :

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

Fractionne la plage d’adresses IP spécifiée dans la notation CIDR en sous-réseaux avec une nouvelle valeur CIDR, et retourne la plage d’adresses IP du sous-réseau avec l’index spécifié.

Dans Bicep, utilisez la fonction cidrSubnet.

Paramètres

Paramètre Obligatoire Type Description
network Oui string Chaîne contenant la plage d’adresses IP à convertir en notation CIDR.
newCIDR Oui int Entier représentant le CIDR à utiliser pour le sous-réseau. Cette valeur doit être égale ou supérieure à la valeur CIDR dans le paramètre network.
subnetIndex Oui int Index de la plage d’adresses IP de sous-réseau souhaitée à retourner.

Valeur retournée

Chaîne de la plage d’adresses IP du sous-réseau avec l’index spécifié.

Exemples

L’exemple suivant calcule les cinq premières plages de sous-réseaux /24 à partir du /20 spécifié :

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

L’exemple précédent retourne le tableau suivant :

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

L’exemple suivant calcule les cinq premières plages de sous-réseaux /52 à partir du /48 spécifié :

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

L’exemple précédent retourne le tableau suivant :

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

Calcule l’adresse IP utilisable de l’hôte avec l’index spécifié sur la plage d’adresses IP spécifiée en notation CIDR. Par exemple, dans le cas de 192.168.1.0/24, il existe des adresses IP réservées : 192.168.1.0 sert d’adresse d’identificateur réseau, tandis que 192.168.1.255 fonctionne comme adresse de diffusion. Seules les adresses IP allant de 192.168.1.1 à 192.168.1.254 peuvent être attribuées à des hôtes, qui sont appelés adresses IP « utilisables ». Par conséquent, lorsque un hostIndex de 0 est transmis dans la fonction, 192.168.1.1 est retourné.

Dans Bicep, utilisez la fonction cidrHost.

Paramètres

Paramètre Obligatoire Type Description
network Oui string Chaîne contenant un réseau IP à convertir (doit être au format réseau correct).
hostIndex Oui int Index de l’adresse IP d’hôte à retourner.

Valeur retournée

Chaîne de l’adresse IP.

Exemples

L’exemple suivant calcule les cinq premières adresses IP d’hôte utilisables à partir du /24 spécifié :

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

L’exemple précédent retourne le tableau suivant :

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

L’exemple suivant calcule les cinq premières adresses IP d’hôte utilisables à partir du /52 spécifié :

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

L’exemple précédent retourne le tableau suivant :

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

Étapes suivantes