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 a získá různé vlastnosti rozsahu adres.

Obor názvů: sys.

Parametry

Parametr Povinné Typ Popis
network Yes řetězec Ř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 protokolu 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 protokolu 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 na podsítě s novou hodnotou CIDR a vrátí rozsah IP adres podsítě se zadaným indexem.

Obor názvů: sys.

Parametry

Parametr Povinné Typ Popis
network Yes řetězec Řetězec obsahující rozsah IP adres, který se má převést v zápisu CIDR.
nové CDR Yes int Celé číslo představující CIDR, které se má použít k podsíti. Tato hodnota by měla být stejná nebo větší než hodnota CIDR v parametru network .
subnetIndex Yes int Index požadovaného rozsahu IP adres 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 v zadaném rozsahu IP adres v zápisu CIDR. Například v případě 192.168.1.0/24jsou k dispozici 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 je možné přiřadit pouze IP adresy v rozsahu od 192.168.1.1 do 192.168.1.254 , které označujeme jako "použitelné" IP adresy. Když se tedy funkce předá, vrátí se index hostIndex hodnoty 0. 192.168.1.1

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 rezervované následující adresy:

  • 192.168.1.0 : Síťová adresa.
  • 192.168.1.1 : Služba Azure je vyhrazena pro výchozí bránu.
  • 192.168.1.2, 192.168.1.3 : Rezervované službou Azure za účelem mapování IP adres Azure DNS na prostor virtuální sítě.
  • 192.168.1.255 : Adresa všesměrového vysílání sítě.

Obor názvů: sys.

Parametry

Parametr Povinné Typ Description
network Yes řetězec Řetězec obsahující síť IP, která se má převést. Zadaný řetězec musí být ve správném síťovém formátu.
index hostitele Yes 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, získáte první použitelnou IP adresu pro podsíť 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é hodnoty /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é hodnoty /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