Funkcje CIDR dla Bicep
Routing międzydomenowy klasy (CIDR) to metoda przydzielania adresów IP i routingu pakietów protokołu internetowego (IP). W tym artykule opisano funkcje Bicep do pracy z ciDR.
parseCidr
parseCidr(network)
Analizuje zakres adresów IP w notacji CIDR, aby uzyskać różne właściwości zakresu adresów.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
network | Tak | string | Ciąg w notacji CIDR zawierającej zakres adresów IP, który ma zostać przekonwertowany. |
Wartość zwracana
Obiekt zawierający różne właściwości zakresu adresów.
Przykłady
Poniższy przykład analizuje ciąg CIDR IPv4:
output v4info object = parseCidr('10.144.0.0/20')
Powyższy przykład zwraca następujący obiekt:
{
"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
}
Poniższy przykład analizuje ciąg CIDR protokołu IPv6:
output v6info object = parseCidr('fdad:3236:5555::/48')
Powyższy przykład zwraca następujący obiekt:
{
"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)
Dzieli określony zakres adresów IP w notacji CIDR na podsieci z nową wartością CIDR i zwraca zakres adresów IP podsieci z określonym indeksem.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
network | Tak | string | Ciąg zawierający zakres adresów IP do konwersji w notacji CIDR. |
newCIDR | Tak | int | Liczba całkowita reprezentująca ciDR, która ma być używana do podsieci. Ta wartość powinna być równa lub większa niż wartość CIDR w parametrze network . |
subnetIndex | Tak | int | Indeks żądanego zakresu adresów IP podsieci do zwrócenia. |
Wartość zwracana
Ciąg zakresu adresów IP podsieci z określonym indeksem.
Przykłady
Poniższy przykład oblicza pierwsze pięć zakresów podsieci /24 z określonego /20:
output v4subnets array = [for i in range(0, 5): cidrSubnet('10.144.0.0/20', 24, i)]
Powyższy przykład zwraca następującą tablicę:
[
"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"
]
Poniższy przykład oblicza pierwsze pięć zakresów podsieci /52 z określonego /48:
output v6subnets array = [for i in range(0, 5): cidrSubnet('fdad:3236:5555::/48', 52, i)]
Powyższy przykład zwraca następującą tablicę:
[
"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)
Oblicza użyteczny adres IP hosta z określonym indeksem w określonym zakresie adresów IP w notacji CIDR. Na przykład w przypadku 192.168.1.0/24
systemu istnieją zastrzeżone adresy IP: 192.168.1.0
pełnią rolę adresu identyfikatora sieciowego, a 192.168.1.255
jednocześnie pełnią rolę adresu emisji. Tylko adresy IP od 192.168.1.1
do 192.168.1.254
można przypisać do hostów, które nazywamy "użytecznymi" adresami IP. Dlatego gdy funkcja jest przekazywana hostIndex obiektu 0
, 192.168.1.1
jest zwracany.
Na platformie Azure istnieją dodatkowe adresy IP zarezerwowane w każdej podsieci, w tym pierwsze cztery i ostatni adres IP, łącznie z pięcioma zarezerwowanymi adresami IP. Na przykład w przypadku zakresu 192.168.1.0/24
adresów IP są zarezerwowane następujące adresy:
192.168.1.0
: adres sieciowy.192.168.1.1
: zarezerwowane przez platformę Azure dla bramy domyślnej.192.168.1.2
,192.168.1.3
: zarezerwowane przez platformę Azure do mapowania adresów IP usługi Azure DNS na przestrzeń sieci wirtualnej.192.168.1.255
: adres emisji sieciowej.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
network | Tak | string | Ciąg zawierający sieć IP do konwersji. Podany ciąg musi być w poprawnym formacie sieciowym. |
hostIndex | Tak | int | Indeks określa adres IP hosta, który ma zostać zwrócony. Jeśli używasz wartości 0 , daje ona pierwszy użyteczny adres IP dla sieci spoza platformy Azure. Jeśli jednak używasz metody 3 , udostępnia ona pierwszy użyteczny adres IP dla podsieci platformy Azure. |
Wartość zwracana
Ciąg adresu IP.
Przykłady
Poniższy przykład oblicza pięć pierwszych adresów IP hostów do użycia z określonych /24 w sieciach spoza platformy Azure:
output v4hosts array = [for i in range(0, 5): cidrHost('10.144.3.0/24', i)]
Powyższy przykład zwraca następującą tablicę:
[
"10.144.3.1"
"10.144.3.2"
"10.144.3.3"
"10.144.3.4"
"10.144.3.5"
]
Poniższy przykład oblicza pięć pierwszych adresów IP hostów do użycia z określonych /52 w sieciach spoza platformy Azure:
output v6hosts array = [for i in range(0, 5): cidrHost('fdad:3236:5555:3000::/52', i)]
Powyższy przykład zwraca następującą tablicę:
[
"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"
]
Następne kroki
- Opis sekcji w pliku Bicep można znaleźć w temacie Understand the structure and syntax of Bicep files (Opis struktury i składni plików Bicep).