Funções CIDR para modelos ARM

Este artigo descreve as funções para trabalhar com CIDR em seu modelo do Azure Resource Manager (modelo ARM).

Gorjeta

Recomendamos o Bicep porque ele oferece os mesmos recursos que os modelos ARM e a sintaxe é mais fácil de usar. Para saber mais, consulte cidr functions.

parseCidr

parseCidr(network)

Analisa um intervalo de endereços IP na notação CIDR para obter várias propriedades do intervalo de endereços.

No Bicep, use a função parseCidr .

Parâmetros

Parâmetro Necessário Type Description
network Sim string String na notação CIDR contendo um intervalo de endereços IP a ser convertido.

Valor devolvido

Um objeto que contém várias propriedades do intervalo de endereços.

Exemplos

O exemplo a seguir analisa uma cadeia de caracteres 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')]"
    }
  }
}

O exemplo anterior retorna o seguinte objeto:

{
  "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
}

O exemplo a seguir analisa uma cadeia de caracteres CIDR 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')]"
    }
  }
}

O exemplo anterior retorna o seguinte objeto:

{
  "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)

Divide o intervalo de endereços IP especificado na notação CIDR em sub-redes com um novo valor CIDR e retorna o intervalo de endereços IP da sub-rede com o índice especificado.

No Bicep, use a função cidrSubnet .

Parâmetros

Parâmetro Necessário Type Description
network Sim string String contendo um intervalo de endereços IP para converter em notação CIDR.
novoCIDR Sim número inteiro Um inteiro que representa o CIDR a ser usado para sub-rede. Esse valor deve ser igual ou maior que o valor CIDR no network parâmetro.
subnetIndex Sim número inteiro Índice do intervalo de endereços IP da sub-rede desejado a ser retornado.

Valor devolvido

Uma cadeia de caracteres do intervalo de endereços IP da sub-rede com o índice especificado.

Exemplos

O exemplo a seguir calcula os primeiros cinco intervalos de sub-rede /24 a partir do especificado /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()])]"
      }
    }
  }
}

O exemplo anterior retorna a seguinte matriz:

[
  "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"
]

O exemplo a seguir calcula os primeiros cinco intervalos de sub-rede /52 a partir do especificado /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()])]"
      }
    }
  }
}

O exemplo anterior retorna a seguinte matriz:

[
  "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)

Calcula o endereço IP utilizável do host com o índice especificado no intervalo de endereços IP especificado na notação CIDR. Por exemplo, no caso do , existem endereços IP reservados: 192.168.1.0 serve como o endereço identificador de rede, enquanto 192.168.1.255 funciona como o endereço de 192.168.1.0/24transmissão. Apenas endereços IP que variam de 192.168.1.1 para 192.168.1.254 podem ser atribuídos a hosts, que são referidos como endereços IP "utilizáveis". Assim, quando a função é passada, um hostIndex de , 192.168.1.1 é retornado0.

No Bicep, use a função cidrHost .

Parâmetros

Parâmetro Necessário Type Description
network Sim string String contendo uma rede ip para converter (deve ser o formato de rede correto).
hostIndex Sim número inteiro O índice do endereço IP do host a ser retornado.

Valor devolvido

Uma cadeia de caracteres do endereço IP.

Exemplos

O exemplo a seguir calcula os cinco primeiros endereços IP de host utilizáveis a partir do especificado /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()])]"
      }
    }
  }
}

O exemplo anterior retorna a seguinte matriz:

[
  "10.144.3.1"
  "10.144.3.2"
  "10.144.3.3"
  "10.144.3.4"
  "10.144.3.5"
]

O exemplo a seguir calcula os cinco primeiros endereços IP de host utilizáveis a partir do especificado /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()])]"
      }
    }
  }
}

O exemplo anterior retorna a seguinte matriz:

[
  "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"
]

Próximos passos