Funzioni CIDR per i modelli arm
Questo articolo descrive le funzioni per l'uso di CIDR nel modello di Azure Resource Manager (modello arm).
Suggerimento
È consigliabile Bicep perché offre le stesse funzionalità dei modelli di ARM e la sintassi è più semplice. Per altre informazioni, vedere funzioni cidr .
parseCidr
parseCidr(network)
Analizza un intervallo di indirizzi IP nella notazione CIDR per ottenere varie proprietà dell'intervallo di indirizzi.
In Bicep usare la funzione parseCidr .
Parametri
Parametro | Richiesto | Type | Descrizione |
---|---|---|---|
rete | Sì | string | Stringa nella notazione CIDR contenente un intervallo di indirizzi IP da convertire. |
Valore restituito
Oggetto che contiene varie proprietà dell'intervallo di indirizzi.
Esempi
L'esempio seguente analizza una stringa 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'esempio precedente restituisce l'oggetto seguente:
{
"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'esempio seguente analizza una stringa 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'esempio precedente restituisce l'oggetto seguente:
{
"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)
Divide l'intervallo di indirizzi IP specificato nella notazione CIDR in subnet con un nuovo valore CIDR e restituisce l'intervallo di indirizzi IP della subnet con l'indice specificato.
In Bicep usare la funzione cidrSubnet .
Parametri
Parametro | Richiesto | Type | Descrizione |
---|---|---|---|
rete | Sì | string | Stringa contenente un intervallo di indirizzi IP da convertire nella notazione CIDR. |
newCIDR | Sì | int | Un numero intero che rappresenta il CIDR da utilizzare per la subnet. Questo valore deve essere uguale o maggiore del valore CIDR nel parametro network . |
subnetIndex | Sì | int | Indice dell'intervallo di indirizzi IP della subnet desiderato da restituire. |
Valore restituito
Una stringa dell'intervallo di indirizzi IP della subnet con l'indice specificato.
Esempi
Nell'esempio seguente vengono calcolati i primi cinque intervalli di subnet /24 dall'oggetto /20 specificato:
{
"$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'esempio precedente restituisce l'oggetto seguente:
[
"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"
]
Nell'esempio seguente vengono calcolati i primi cinque intervalli di subnet /52 dall'oggetto /48 specificato:
{
"$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'esempio precedente restituisce l'oggetto seguente:
[
"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)
Calcola l'indirizzo IP utilizzabile dell'host con l'indice specificato nell'intervallo di indirizzi IP specificato nella notazione CIDR. Ad esempio, nel caso di 192.168.1.0/24
, sono presenti indirizzi IP riservati: 192.168.1.0
funge da indirizzo identificatore di rete, mentre 192.168.1.255
funziona come indirizzo di trasmissione. Solo gli indirizzi IP che vanno da 192.168.1.1
a 192.168.1.254
possono essere assegnati agli host, denominati indirizzi IP "utilizzabili". Pertanto, quando la funzione viene passata a hostIndex di 0
, 192.168.1.1
viene restituito.
In Bicep usare la funzione cidrHost .
Parametri
Parametro | Richiesto | Type | Descrizione |
---|---|---|---|
rete | Sì | string | Stringa contenente una rete IP da convertire (deve essere il formato di rete corretto). |
hostIndex | Sì | int | Indice dell'indirizzo IP host da restituire. |
Valore restituito
Una stringa dell'indirizzo IP.
Esempi
Nell'esempio seguente vengono calcolati i primi cinque indirizzi IP host utilizzabili dall'oggetto /24 specificato:
{
"$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'esempio precedente restituisce l'oggetto seguente:
[
"10.144.3.1"
"10.144.3.2"
"10.144.3.3"
"10.144.3.4"
"10.144.3.5"
]
Nell'esempio seguente vengono calcolati i primi cinque indirizzi IP host utilizzabili dall'oggetto /52 specificato:
{
"$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'esempio precedente restituisce l'oggetto seguente:
[
"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"
]
Passaggi successivi
- Per una descrizione delle sezioni in un modello di ARM, vedere Comprendere la struttura e la sintassi dei modelli di ARM.