Funções CIDR para modelos do ARM
Este artigo descreve as funções para trabalhar com CIDR no seu modelo do Azure Resource Manager (modelo do ARM).
Dica
Recomendamos o Bicep porque ele oferece as mesmas funcionalidades que os modelos do ARM e a sintaxe é mais fácil de usar. Para saber mais, consulte as funções de cidr.
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 | Obrigatório | Type | Descrição |
---|---|---|---|
network | Sim | string | Cadeia de caracteres na notação CIDR que contém um intervalo de endereços IP a ser convertido. |
Valor retornado
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 | Obrigatório | Type | Descrição |
---|---|---|---|
network | Sim | string | Cadeia de caracteres que contém um intervalo de endereços IP a ser convertido na notação CIDR. |
newCIDR | Sim | INT | Um inteiro que representa o CIDR a ser usado para sub-rede. Esse valor deve ser igual ou maior que o valor CIDR no parâmetro network . |
subnetIndex | Sim | INT | Índice do intervalo de endereços IP de sub-rede desejado a ser retornado. |
Valor retornado
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 do /20 especificado:
{
"$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 do /48 especificado:
{
"$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 de 192.168.1.0/24
, há endereços IP reservados: 192.168.1.0
serve como o endereço do identificador de rede, enquanto 192.168.1.255
funciona como o endereço de difusão. Somente endereços IP que variam de 192.168.1.1
a 192.168.1.254
podem ser atribuídos a hosts, que são chamados de endereços IP "utilizáveis". Portanto, quando a função passa um hostIndex de 0
, 192.168.1.1
é retornado.
No Bicep, use a função cidrHost.
Parâmetros
Parâmetro | Obrigatório | Type | Descrição |
---|---|---|---|
network | Sim | string | Cadeia de caracteres que contém uma rede IP a ser convertida (deve ser o formato de rede correto). |
hostIndex | Sim | INT | O índice do endereço IP do host a ser retornado. |
Valor retornado
Uma cadeia de caracteres do endereço IP.
Exemplos
O exemplo a seguir calcula os cinco primeiros endereços IP de host utilizáveis do /24 especificado:
{
"$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 do /52 especificado:
{
"$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óximas etapas
- Para obter uma descrição das seções de um modelo do ARM, confira Entender a estrutura e a sintaxe dos modelos do ARM.