Sdílet prostřednictvím


Funkce CIDR pro Bicep

CiDR (Classless Inter-Domain Routing) je metoda přidělování IP adres a směrování paketů PROTOKOLU IP (Internet Protocol). Tento článek popisuje funkce Bicep pro práci s CIDR.

parseCidr

parseCidr(network)

Parsuje rozsah IP adres v zápisu CIDR za účelem získání různých vlastností rozsahu adres.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
síť Ano string Řetězec v zápisu CIDR obsahující rozsah IP adres, který se má převést.

Vrácená hodnota

Objekt, který obsahuje různé vlastnosti rozsahu adres.

Příklady

Následující příklad analyzuje řetězec CIDR IPv4:

output v4info object = parseCidr('10.144.0.0/20')

Předchozí příklad vrátí následující objekt:

{
  "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
}

Následující příklad analyzuje řetězec CIDR IPv6:

output v6info object = parseCidr('fdad:3236:5555::/48')

Předchozí příklad vrátí následující objekt:

{
  "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)

Rozdělí zadaný rozsah IP adres v zápisu CIDR do podsítí s novou hodnotou CIDR a vrátí rozsah IP adres podsítě se zadaným indexem.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
síť Ano string Řetězec obsahující rozsah IP adres pro převod v zápisu CIDR
newCIDR Ano int Celé číslo představující CIDR, které se má použít k podsíti. Tato hodnota by měla být rovna nebo větší než hodnota CIDR v parametru network .
subnetIndex Ano int Index rozsahu IP adres požadované podsítě, který se má vrátit.

Vrácená hodnota

Řetězec rozsahu IP adres podsítě se zadaným indexem.

Příklady

Následující příklad vypočítá prvních pět rozsahů podsítě /24 ze zadaného /20:

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

Předchozí příklad vrátí následující pole:

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

Následující příklad vypočítá prvních pět rozsahů podsítě /52 ze zadaného /48:

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

Předchozí příklad vrátí následující pole:

[
  "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)

Vypočítá použitelnou IP adresu hostitele se zadaným indexem zadaného rozsahu IP adres v zápisu CIDR. Například v případě 192.168.1.0/24, že jsou vyhrazené IP adresy: 192.168.1.0 slouží jako adresa identifikátoru sítě, zatímco 192.168.1.255 funguje jako adresa všesměrového vysílání. Hostitelům se dají přiřadit jenom IP adresy, 192.168.1.1 od kterých 192.168.1.254 se označují jako "použitelné" IP adresy. Takže, když je funkce předána hostIndex of 0, 192.168.1.1 je vrácena.

V Rámci Azure jsou v každé podsíti rezervované další IP adresy, mezi které patří první čtyři a poslední IP adresa, celkem pět rezervovaných IP adres. Například v případě rozsahu 192.168.1.0/24IP adres jsou vyhrazeny následující adresy:

  • 192.168.1.0 : Síťová adresa.
  • 192.168.1.1 : Vyhrazeno v Azure pro výchozí bránu.
  • 192.168.1.2, 192.168.1.3 : Vyhrazeno v Azure pro mapování IP adres AZURE DNS na prostor virtuální sítě.
  • 192.168.1.255 : Adresa síťového vysílání.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
síť Ano string Řetězec obsahující síť IP, kterou chcete převést. Zadaný řetězec musí být ve správném síťovém formátu.
hostIndex Ano int Index určuje IP adresu hostitele, která se má vrátit. Pokud použijete hodnotu 0, získáte první použitelnou IP adresu pro síť mimo Azure. Pokud ale použijete 3, poskytne vám první použitelnou IP adresu podsítě Azure.

Vrácená hodnota

Řetězec IP adresy.

Příklady

Následující příklad vypočítá prvních pět použitelných IP adres hostitele ze zadaných /24 v sítích mimo Azure:

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

Předchozí příklad vrátí následující pole:

[
  "10.144.3.1"
  "10.144.3.2"
  "10.144.3.3"
  "10.144.3.4"
  "10.144.3.5"
]

Následující příklad vypočítá prvních pět použitelných IP adres hostitele ze zadaných /52 v sítích mimo Azure:

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

Předchozí příklad vrátí následující pole:

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

Další kroky