Funções CIDR para modelos do ARM
Este artigo descreve as funções para trabalhar com CIDR no modelo de Resource Manager do Azure (modelo arm).
Dica
Recomendamos o Bicep porque oferece as mesmas capacidades que os modelos do ARM e a sintaxe é mais fácil de utilizar. Para saber mais, veja funções 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, utilize a função parseCidr .
Parâmetros
Parâmetro | Necessário | Tipo | Description |
---|---|---|---|
network | Yes | string | Cadeia na notação CIDR que contém um intervalo de endereços IP a converter. |
Valor devolvido
Um objeto que contém várias propriedades do intervalo de endereços.
Exemplos
O exemplo seguinte analisa uma cadeia 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 devolve 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 seguinte analisa uma cadeia 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 devolve 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 devolve o intervalo de endereços IP da sub-rede com o índice especificado.
No Bicep, utilize a função cidrSubnet .
Parâmetros
Parâmetro | Necessário | Tipo | Description |
---|---|---|---|
network | Yes | string | Cadeia que contém um intervalo de endereços IP para converter na notação CIDR. |
newCIDR | Yes | int | Um número inteiro que representa o CIDR a ser utilizado na sub-rede. Este valor deve ser igual ou maior do que o valor CIDR no network parâmetro . |
subnetIndex | Yes | int | Índice do intervalo de endereços IP da sub-rede pretendido a devolver. |
Valor devolvido
Uma cadeia do intervalo de endereços IP da sub-rede com o índice especificado.
Exemplos
O exemplo seguinte calcula os primeiros cinco intervalos de sub-rede /24 dos /20 especificados:
{
"$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 devolve 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 seguinte calcula os primeiros cinco intervalos de sub-rede /52 dos /48 especificados:
{
"$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 devolve 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 anfitrião 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
, existem 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. Apenas os endereços IP que vão de 192.168.1.1
a 192.168.1.254
podem ser atribuídos a anfitriões, que são referidos como endereços IP "utilizáveis". Assim, quando a função é transmitida um hostIndex de 0
, 192.168.1.1
é devolvido.
No Bicep, utilize a função cidrHost .
Parâmetros
Parâmetro | Necessário | Tipo | Description |
---|---|---|---|
network | Yes | string | Cadeia que contém uma rede IP para converter (tem de estar correta no formato de rede). |
hostIndex | Yes | int | O índice do endereço IP do anfitrião a devolver. |
Valor devolvido
Uma cadeia do endereço IP.
Exemplos
O exemplo seguinte calcula os primeiros cinco endereços IP do anfitrião utilizáveis a partir 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 devolve 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 seguinte calcula os primeiros cinco endereços IP de anfitrião utilizáveis a partir 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 devolve 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"
]
Passos seguintes
- Para obter uma descrição das secções num modelo do ARM, veja Compreender a estrutura e a sintaxe dos modelos do ARM.