Udostępnij za pośrednictwem


Funkcje CIDR dla szablonów usługi ARM

W tym artykule opisano funkcje pracy z ciDR w szablonie usługi Azure Resource Manager (szablon usługi ARM).

Napiwek

Zalecamy Bicep , ponieważ oferuje te same możliwości co szablony usługi ARM, a składnia jest łatwiejsza w użyciu. Aby dowiedzieć się więcej, zobacz cidr functions (Funkcje cidr ).

parseCidr

parseCidr(network)

Analizuje zakres adresów IP w notacji CIDR, aby uzyskać różne właściwości zakresu adresów.

W Bicep użyj funkcji parseCidr .

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:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "v4info": {
      "type": "object",
      "value": "[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:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "v6info": {
      "type": "object",
      "value": "[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.

W elemencie Bicep użyj funkcji cidrSubnet .

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:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "v4subnets": {
      "type": "array",
      "copy": {
        "count": "[length(range(0, 5))]",
        "input": "[cidrSubnet('10.144.0.0/20', 24, range(0, 5)[copyIndex()])]"
      }
    }
  }
}

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:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "v6subnets": {
      "type": "array",
      "copy": {
        "count": "[length(range(0, 5))]",
        "input": "[cidrSubnet('fdad:3236:5555::/48', 52, range(0, 5)[copyIndex()])]"
      }
    }
  }
}

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 są określane jako "użyteczne" adresy IP. Dlatego gdy funkcja jest przekazywana hostIndex obiektu 0, 192.168.1.1 jest zwracany.

W Bicep użyj funkcji cidrHost .

Parametry

Parametr Wymagania Type Opis
network Tak string Ciąg zawierający sieć ip do konwersji (musi być poprawnym formatem sieci).
hostIndex Tak int Indeks adresu IP hosta do zwrócenia.

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ślonego /24:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "v4hosts": {
      "type": "array",
      "copy": {
        "count": "[length(range(0, 5))]",
        "input": "[cidrHost('10.144.3.0/24', range(0, 5)[copyIndex()])]"
      }
    }
  }
}

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ślonego /52:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "v6hosts": {
      "type": "array",
      "copy": {
        "count": "[length(range(0, 5))]",
        "input": "[cidrHost('fdad:3236:5555:3000::/52', range(0, 5)[copyIndex()])]"
      }
    }
  }
}

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