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 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 string Stringa contenente un intervallo di indirizzi IP da convertire nella notazione CIDR.
newCIDR 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 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 string Stringa contenente una rete IP da convertire (deve essere il formato di rete corretto).
hostIndex 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