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 | 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:
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 | 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:
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 | Sì | string | Stringa contenente una rete IP da convertire. La stringa specificata deve essere nel formato di rete corretto. |
hostIndex | Sì | 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
- Per una descrizione delle sezioni in un file Bicep, vedere Informazioni sulla struttura e la sintassi dei file Bicep.