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