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).
Dricks
Vi rekommenderar Bicep eftersom det erbjuder 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 | Obligatoriskt | Type | 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 upp det angivna IP-adressintervallet i CIDR-notationen 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 | Obligatoriskt | Type | Beskrivning |
---|---|---|---|
network | Ja | sträng | Sträng som innehåller ett IP-adressintervall som ska konverteras i CIDR-notation. |
newCIDR | Ja | heltal | Ett heltal som representerar den CIDR som ska användas för undernät. Det här värdet ska vara lika med eller större än CIDR-värdet i parametern network . |
undernätIndex | Ja | heltal | 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 angiven /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 angiven /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-notationen. När det gäller finns det till exempel 192.168.1.0/24
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 | Obligatoriskt | Type | 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 | heltal | 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
- En beskrivning av avsnitten i en ARM-mall finns i Förstå strukturen och syntaxen för ARM-mallar.