Fonctions CIDR pour Bicep

Le routage CIDR (Classless Inter-Domain Routing) est une méthode d’allocation d’adresses IP et de routage des paquets IP (Internet Protocol). Cet article décrit les fonctions Bicep pour l’utilisation du routage 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.

Espace de noms : sys.

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 :

output v4info object = 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 :

output v6info object = 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é.

Espace de noms : sys.

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é :

output v4subnets array = [for i in range(0, 5): cidrSubnet('10.144.0.0/20', 24, i)]

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é :

output v6subnets array = [for i in range(0, 5): cidrSubnet('fdad:3236:5555::/48', 52, i)]

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 aux hôtes ; elles sont appelées adresses IP « utilisables ». Par conséquent, lorsque un hostIndex de 0 est transmis à la fonction, 192.168.1.1 est retourné.

Dans Azure, il existe des adresses IP supplémentaires réservées dans chaque sous-réseau, qui incluent les quatre premières et la dernière adresse IP, soit un total de cinq adresses IP réservées. Par instance, dans le cas de la plage 192.168.1.0/24d’adresses IP , les adresses suivantes sont réservées :

  • 192.168.1.0 : Adresse du réseau.
  • 192.168.1.1 : Réservée par Azure pour la passerelle par défaut.
  • 192.168.1.2, 192.168.1.3 : Réservée par Azure pour mapper les adresses IP Azure DNS à l’espace du réseau virtuel.
  • 192.168.1.255 : Adresse de diffusion réseau.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
network Oui string Chaîne contenant un réseau IP à convertir. La chaîne fournie doit être au format de mise en réseau approprié.
hostIndex Oui int L’index détermine l’adresse IP de l’hôte à retourner. Si vous utilisez la valeur 0, elle vous donne la première adresse IP utilisable pour un réseau non-Azure. Toutefois, si vous utilisez 3, il vous fournit la première adresse IP utilisable pour un sous-réseau Azure.

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é sur les réseaux non Azure :

output v4hosts array = [for i in range(0, 5): cidrHost('10.144.3.0/24', i)]

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é sur les réseaux non Azure :

output v6hosts array = [for i in range(0, 5): cidrHost('fdad:3236:5555:3000::/52', i)]

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