Funções CIDR para Bicep

O CIDR (Roteamento entre Domínios sem Classe) é um método de alocação de endereços IP e roteamento de pacotes IP (Internet Protocol). Este artigo descreve as funções do Bicep para trabalhar com 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.

Espaço de nome: sys.

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:

output v4info object = 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:

output v6info object = 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.

Espaço de nome: sys.

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:

output v4subnets array = [for i in range(0, 5): cidrSubnet('10.144.0.0/20', 24, i)]

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:

output v6subnets array = [for i in range(0, 5): cidrSubnet('fdad:3236:5555::/48', 52, i)]

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/24transmissão. Apenas endereços IP que variam de para 192.168.1.254 podem ser atribuídos a hosts, que chamamos de 192.168.1.1 endereços IP "utilizáveis". Assim, quando a função é passada, um hostIndex de , 192.168.1.1 é retornado0.

No Azure, há endereços IP adicionais reservados em cada sub-rede, que incluem os quatro primeiros e o último endereço IP, totalizando cinco endereços IP reservados. Por exemplo, no caso do intervalo 192.168.1.0/24de endereços IP, os seguintes endereços são reservados:

  • 192.168.1.0 : Endereço de rede.
  • 192.168.1.1 : Reservado pelo Azure para o gateway padrão.
  • 192.168.1.2, 192.168.1.3 : Reservado pelo Azure para mapear os IPs DNS do Azure para o espaço VNet.
  • 192.168.1.255 : Endereço de transmissão da rede.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
network Sim string String contendo uma rede IP para converter. A cadeia de caracteres fornecida deve estar no formato de rede correto.
hostIndex Sim número inteiro O índice determina o endereço IP do host a ser retornado. Se você usar o valor 0, ele fornecerá o primeiro endereço IP utilizável para uma rede que não seja do Azure. No entanto, se você usar 3o , ele fornecerá o primeiro endereço IP utilizável para uma sub-rede do Azure.

Valor devolvido

Uma cadeia de caracteres do endereço IP.

Exemplos

O exemplo a seguir calcula os primeiros cinco endereços IP de host utilizáveis a partir do especificado /24 em redes que não são do Azure:

output v4hosts array = [for i in range(0, 5): cidrHost('10.144.3.0/24', i)]

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 primeiros cinco endereços IP de host utilizáveis a partir do especificado /52 em redes que não são do Azure:

output v6hosts array = [for i in range(0, 5): cidrHost('fdad:3236:5555:3000::/52', i)]

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