CIDR-Funktionen für Bicep
Klassenloses domänenübergreifendes Routing (CIDR) ist eine Methode zum Zuweisen von IP-Adressen und zum Weiterleiten von IP-Paketen (Internetprotokoll). In diesem Artikel werden die Bicep-Funktionen für die Arbeit mit CIDR beschrieben.
parseCidr
parseCidr(network)
Parst einen IP-Adressbereich in CIDR-Notation, um verschiedene Eigenschaften des Adressbereichs abzurufen.
Namespace: sys.
Parameter
Parameter | Erforderlich | Type | BESCHREIBUNG |
---|---|---|---|
network | Ja | Zeichenfolge | Zeichenfolge in CIDR-Notation, die einen zu konvertierenden IP-Adressbereich enthält. |
Rückgabewert
Ein Objekt, das verschiedene Eigenschaften des Adressbereichs enthält.
Beispiele
Im folgenden Beispiel wird eine IPv4-CIDR-Zeichenfolge geparst:
output v4info object = parseCidr('10.144.0.0/20')
Im vorherigen Beispiel wird das folgende Objekt zurückgegeben:
{
"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
}
Im folgenden Beispiel wird eine IPv6-CIDR-Zeichenfolge geparst:
output v6info object = parseCidr('fdad:3236:5555::/48')
Im vorherigen Beispiel wird das folgende Objekt zurückgegeben:
{
"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)
Teilt den angegebenen IP-Adressbereich in der CIDR-Notation in Subnetze mit einem neuen CIDR-Wert auf und gibt den IP-Adressbereich des Subnetzes mit dem angegebenen Index zurück.
Namespace: sys.
Parameter
Parameter | Erforderlich | Type | BESCHREIBUNG |
---|---|---|---|
network | Ja | Zeichenfolge | Zeichenfolge mit einem IP-Adressbereich, der in CIDR-Notation konvertiert werden soll. |
newCIDR | Ja | INT | Eine ganze Zahl, die das CIDR darstellt, das für das Subnetz verwendet werden soll. Dieser Wert sollte gleich oder größer als der CIDR-Wert im Parameter network sein. |
subnetIndex | Ja | INT | Index des gewünschten IP-Adressbereichs des Subnetzes, der zurückgegeben werden soll. |
Rückgabewert
Eine Zeichenfolge des IP-Adressbereichs des Subnetzes mit dem angegebenen Index.
Beispiele
Im folgenden Beispiel werden die ersten fünf /24-Subnetzbereiche aus dem angegebenen /20 berechnet:
output v4subnets array = [for i in range(0, 5): cidrSubnet('10.144.0.0/20', 24, i)]
Im vorherigen Beispiel wird das folgende Array zurückgegeben:
[
"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"
]
Im folgenden Beispiel werden die ersten fünf /52-Subnetzbereiche aus dem angegebenen /48 berechnet:
output v6subnets array = [for i in range(0, 5): cidrSubnet('fdad:3236:5555::/48', 52, i)]
Im vorherigen Beispiel wird das folgende Array zurückgegeben:
[
"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)
Berechnet die verwendbare IP-Adresse des Hosts mit dem angegebenen Index für den angegebenen IP-Adressbereich in CIDR-Notation. Im Fall von 192.168.1.0/24
gibt es beispielsweise reservierte IP-Adressen: 192.168.1.0
dient als Netzwerkbezeichneradresse, während 192.168.1.255
als Broadcastadresse fungiert. Nur IP-Adressen von 192.168.1.1
bis 192.168.1.254
können Hosts zugewiesen werden, die als „verwendbare“ IP-Adressen bezeichnet werden. Wenn also die Funktion übergeben wird, wird der hostIndex 0
, 192.168.1.1
zurückgegeben.
In Azure sind zusätzliche IP-Adressen in jedem Subnetz reserviert, darunter die ersten vier und die letzte IP-Adresse, insgesamt fünf reservierte IP-Adressen. Im Fall des IP-Adressbereichs 192.168.1.0/24
sind z. B. die folgenden Adressen reserviert:
192.168.1.0
: Netzwerkadresse.192.168.1.1
: Von Azure für das Standardgateway reserviert.192.168.1.2
,192.168.1.3
: Von Azure zum Zuordnen der Azure DNS-IPs zum VNet-Adressraum reserviert.192.168.1.255
: Netzwerkadresse für Broadcasts.
Namespace: sys
Parameter
Parameter | Erforderlich | Type | BESCHREIBUNG |
---|---|---|---|
network | Ja | Zeichenfolge | Zeichenfolge, die ein zu konvertierendes IP-Netzwerk enthält. Die bereitgestellte Zeichenfolge muss das richtige Netzwerkformat aufweisen. |
hostIndex | Ja | INT | Der Index bestimmt die zurückzugebende Host-IP-Adresse. Wenn Sie den Wert 0 verwenden, erhalten Sie die erste verwendbare IP-Adresse für ein Nicht-Azure-Netzwerk. Wenn Sie jedoch 3 verwenden, erhalten Sie die erste verwendbare IP-Adresse für ein Azure-Subnetz. |
Rückgabewert
Eine Zeichenfolge der IP-Adresse.
Beispiele
Im folgenden Beispiel werden die ersten fünf verwendbaren Host-IP-Adressen aus dem angegebenen /24 in Nicht-Azure-Netzwerken berechnet:
output v4hosts array = [for i in range(0, 5): cidrHost('10.144.3.0/24', i)]
Im vorherigen Beispiel wird das folgende Array zurückgegeben:
[
"10.144.3.1"
"10.144.3.2"
"10.144.3.3"
"10.144.3.4"
"10.144.3.5"
]
Im folgenden Beispiel werden die ersten fünf verwendbaren Host-IP-Adressen aus dem angegebenen /52 in Nicht-Azure-Netzwerken berechnet:
output v6hosts array = [for i in range(0, 5): cidrHost('fdad:3236:5555:3000::/52', i)]
Im vorherigen Beispiel wird das folgende Array zurückgegeben:
[
"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"
]
Nächste Schritte
- Eine Beschreibung der Abschnitte in einer Bicep-Datei finden Sie unter Grundlegendes zur Struktur und Syntax von Bicep-Dateien.