Funciones de CIDR para plantillas de ARM
En este artículo, se describen las funciones para trabajar con CIDR en la plantilla de Azure Resource Manager (plantilla de ARM).
Sugerencia
Se recomienda Bicep porque ofrece las mismas funcionalidades que las plantillas de ARM, y la sintaxis es más fácil de usar. Para más información, consulte las funciones de cidr.
parseCidr
parseCidr(network)
Analiza un intervalo de direcciones IP en notación CIDR para obtener varias propiedades del intervalo de direcciones.
En Bicep, use la función parseCidr.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
network | Sí | string | Cadena en notación CIDR que contiene un intervalo de direcciones IP que se va a convertir. |
Valor devuelto
Objeto que contiene varias propiedades del intervalo de direcciones.
Ejemplos
En el ejemplo siguiente, se analiza una cadena 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')]"
}
}
}
El ejemplo anterior devuelve el objeto siguiente:
{
"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
}
En el ejemplo siguiente, se analiza una cadena 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')]"
}
}
}
El ejemplo anterior devuelve el objeto siguiente:
{
"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 el intervalo de direcciones IP especificado en notación CIDR en subredes con un nuevo valor CIDR y devuelve el intervalo de direcciones IP de la subred con el índice especificado.
En Bicep, use la función cidrSubnet.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
network | Sí | string | Cadena que contiene un intervalo de direcciones IP que se va a convertir en notación CIDR. |
newCIDR | Sí | int | Entero que representa el CIDR que se va a usar en la subred. Este valor debe ser igual o mayor que el valor CIDR del parámetro network . |
subnetIndex | Sí | int | Índice del intervalo deseado de direcciones IP de subred que se va a devolver. |
Valor devuelto
Cadena del intervalo de direcciones IP de la subred con el índice especificado.
Ejemplos
En el ejemplo siguiente, se calculan los cinco primeros intervalos de subred /24 de la subred especificada /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()])]"
}
}
}
}
El ejemplo anterior devuelve la matriz siguiente:
[
"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"
]
En el ejemplo siguiente, se calculan los cinco primeros intervalos de subred /52 de la subred especificada /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()])]"
}
}
}
}
El ejemplo anterior devuelve la matriz siguiente:
[
"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 la dirección IP utilizable del host con el índice especificado en el intervalo de direcciones IP especificado en notación CIDR. Por ejemplo, en el caso de 192.168.1.0/24
, hay direcciones IP reservadas: 192.168.1.0
actúa como dirección de identificador de red, mientras que 192.168.1.255
funciona como dirección de difusión. Solo se pueden asignar direcciones IP que van desde 192.168.1.1
a 192.168.1.254
a los hosts, que se conocen como direcciones IP "utilizables". Por tanto, cuando se pasa una función hostIndex de 0
, se devuelve 192.168.1.1
.
En Bicep, use la función cidrHost.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
network | Sí | string | Cadena que contiene una red IP que se va a convertir (debe ser el formato de red correcto). |
hostIndex | Sí | int | Índice de la dirección IP del host que se va a devolver. |
Valor devuelto
Cadena de la dirección IP.
Ejemplos
En el ejemplo siguiente, se calculan las cinco primeras direcciones IP de host utilizables de la subred /24 especificada:
{
"$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()])]"
}
}
}
}
El ejemplo anterior devuelve la matriz siguiente:
[
"10.144.3.1"
"10.144.3.2"
"10.144.3.3"
"10.144.3.4"
"10.144.3.5"
]
En el ejemplo siguiente, se calculan las cinco primeras direcciones IP de host utilizables de la subred /52 especificada:
{
"$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()])]"
}
}
}
}
El ejemplo anterior devuelve la matriz siguiente:
[
"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"
]
Pasos siguientes
- Para obtener una descripción de las secciones de una plantilla de ARM, vea Nociones sobre la estructura y la sintaxis de las plantillas de Azure Resource Manager.