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/24
jsou 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/24
IP 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
- Popis oddílů v souboru Bicep najdete v tématu Vysvětlení struktury a syntaxe souborů Bicep.