Funciones CIDR para Bicep
El enrutamiento de interdominios sin clases (CIDR) es un método para asignar direcciones IP y enrutar paquetes del protocolo de Internet (IP). En este artículo, se describen las funciones de Bicep para trabajar con CIDR.
parseCidr
parseCidr(network)
Analiza un intervalo de direcciones IP en notación CIDR para obtener varias propiedades del intervalo de direcciones.
Espacio de nombres: sys.
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:
output v4info object = 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:
output v6info object = 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.
Espacio de nombres: sys.
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:
output v4subnets array = [for i in range(0, 5): cidrSubnet('10.144.0.0/20', 24, i)]
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:
output v6subnets array = [for i in range(0, 5): cidrSubnet('fdad:3236:5555::/48', 52, i)]
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, a los que nos referimos como direcciones IP "utilizables". Por tanto, cuando se pasa una función hostIndex de 0
, se devuelve 192.168.1.1
.
En Azure, hay direcciones IP adicionales reservadas en cada subred, que incluyen las cuatro primeras y la última dirección IP, con un total de cinco direcciones IP reservadas. Por ejemplo, en el caso del intervalo de direcciones IP 192.168.1.0/24
, se reservan las siguientes direcciones:
192.168.1.0
: dirección de red.192.168.1.1
: reservada por Azure para la puerta de enlace predeterminada.192.168.1.2
,192.168.1.3
: reservada por Azure para asignar las direcciones IP de Azure DNS al espacio de red virtual.192.168.1.255
: dirección de difusión de red.
Espacio de nombres: sys.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
network | Sí | string | Cadena que contiene una red IP que se va a convertir. La cadena proporcionada debe tener el formato de conexión en red correcto. |
hostIndex | Sí | int | El índice determina la dirección IP del host que se va a devolver. Si usa el valor 0 , proporciona la primera dirección IP utilizable para una red que no es de Azure. Sin embargo, si usa 3 , proporciona la primera dirección IP utilizable para una subred de Azure. |
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 en redes que no son de Azure:
output v4hosts array = [for i in range(0, 5): cidrHost('10.144.3.0/24', i)]
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 en redes que no son de Azure:
output v6hosts array = [for i in range(0, 5): cidrHost('fdad:3236:5555:3000::/52', i)]
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
- Puede encontrar una descripción de las secciones de un archivo de Bicep en Nociones sobre la estructura y la sintaxis de los archivos de Bicep.