Compartir por


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 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 string Cadena que contiene un intervalo de direcciones IP que se va a convertir en notación CIDR.
newCIDR 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 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 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 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