Compartilhar via


Funções CIDR para Bicep

O CIDR (Roteamento entre Domínios sem Classificação) é um método de endereços IP e roteamento de pacotes de protocolo IP. Este artigo descreve as funções 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.

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
network Sim string Cadeia de caracteres na notação CIDR que contém um intervalo de endereços IP a ser convertido.

Valor retornado

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.

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
network Sim string Cadeia de caracteres que contém um intervalo de endereços IP a ser convertido na notação CIDR.
newCIDR Sim INT Um inteiro que representa o CIDR a ser usado para sub-rede. Esse valor deve ser igual ou maior que o valor CIDR no parâmetro network.
subnetIndex Sim INT Índice do intervalo de endereços IP de sub-rede desejado a ser retornado.

Valor retornado

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 do /20 especificado:

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 do /48 especificado:

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 de 192.168.1.0/24, há 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. Somente endereços IP que variam de 192.168.1.1 a 192.168.1.254 podem ser atribuídos a hosts, que são chamados de endereços IP "utilizáveis". Portanto, quando a função passa um hostIndex de 0, 192.168.1.1 é retornado.

No Azure, existem 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 de endereços IP 192.168.1.0/24, 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 da VNet.
  • 192.168.1.255 : endereço da transmissão de rede.

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
network Sim string Cadeia de caracteres que contém uma rede IP para converter. A cadeia de caracteres fornecida deve estar no formato de rede correto.
hostIndex Sim INT O índice determina o endereço IP do host a ser retornado. Se você usar o valor 0, ele lhe dará o primeiro endereço IP utilizável para uma rede que não seja do Azure. No entanto, se você usar 3, ele fornecerá o primeiro endereço IP utilizável para uma sub-rede do Azure.

Valor retornado

Uma cadeia de caracteres do endereço IP.

Exemplos

O exemplo a seguir calcula os cinco primeiros endereços IP de host utilizáveis a partir do/24 especificado em redes que não sejam 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 cinco primeiros endereços IP de host utilizáveis a partir do /52 especificado em redes que não sejam 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óximas etapas