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/24
bijvoorbeeld, 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
- Zie De structuur en syntaxis van ARM-sjablonen begrijpen voor een beschrijving van de secties in een ARM-sjabloon.