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/24
transmissã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
- Para obter uma descrição das seções em um modelo ARM, consulte Compreender a estrutura e a sintaxe dos modelos ARM.