Funzioni CIDR per Bicep

CiDR (Classless Inter-Domain Routing) è un metodo di allocazione di indirizzi IP e routing di pacchetti IP (IP). Questo articolo descrive le funzioni Bicep per l'uso con CIDR.

parseCidr

parseCidr(network)

Analizza un intervallo di indirizzi IP nella notazione CIDR per ottenere varie proprietà dell'intervallo di indirizzi.

Spazio dei nomi: sys.

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:

output v4info object = 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:

output v6info object = 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.

Spazio dei nomi: sys.

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:

output v4subnets array = [for i in range(0, 5): cidrSubnet('10.144.0.0/20', 24, i)]

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:

output v6subnets array = [for i in range(0, 5): cidrSubnet('fdad:3236:5555::/48', 52, i)]

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, a cui si fa riferimento come indirizzi IP "utilizzabili". Pertanto, quando la funzione viene passata a hostIndex di 0, 192.168.1.1 viene restituito.

In Azure sono disponibili indirizzi IP aggiuntivi riservati in ogni subnet, che includono i primi quattro e l'ultimo indirizzo IP, in totale cinque indirizzi IP riservati. Ad esempio, nel caso dell'intervallo 192.168.1.0/24 di indirizzi IP, gli indirizzi seguenti sono riservati:

  • 192.168.1.0: Indirizzo di rete.
  • 192.168.1.1: riservato da Azure per il gateway predefinito.
  • 192.168.1.2, 192.168.1.3: riservato da Azure per eseguire il mapping degli indirizzi IP DNS di Azure allo spazio della rete virtuale.
  • 192.168.1.255: indirizzo di trasmissione di rete.

Spazio dei nomi: sys.

Parametri

Parametro Richiesto Type Descrizione
rete string Stringa contenente una rete IP da convertire. La stringa specificata deve essere nel formato di rete corretto.
hostIndex int L'indice determina l'indirizzo IP host da restituire. Se si usa il valore 0, fornisce il primo indirizzo IP utilizzabile per una rete non di Azure. Tuttavia, se si usa 3, fornisce il primo indirizzo IP utilizzabile per una subnet di Azure.

Valore restituito

Una stringa dell'indirizzo IP.

Esempi

L'esempio seguente calcola i primi cinque indirizzi IP host utilizzabili dalle reti /24 specificate nelle reti non Azure:

output v4hosts array = [for i in range(0, 5): cidrHost('10.144.3.0/24', i)]

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"
]

L'esempio seguente calcola i primi cinque indirizzi IP host utilizzabili dalle reti /52 specificate nelle reti non Azure:

output v6hosts array = [for i in range(0, 5): cidrHost('fdad:3236:5555:3000::/52', i)]

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