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/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 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
- Aby zapoznać się z opisem sekcji w szablonie usługi ARM, zobacz Omówienie struktury i składni szablonów usługi ARM.