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/24systemu 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/24adresó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