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 hôte à retourner. |
Valeur retournée
Chaîne de l’adresse IP.
Exemples
L’exemple suivant calcule les cinq premières adresses IP de l’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 de l’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
- Pour obtenir une description des sections d’un modèle ARM, consultez Comprendre la structure et la syntaxe des modèles ARM.