Share via


Funções CIDR para Bicep

Classless Inter-Domain Routing (CIDR) é um método de alocar endereços IP e encaminhar pacotes ip (Internet Protocol). 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.

Espaço de nomes: sys.

Parâmetros

Parâmetro Necessário Tipo Description
network Yes string Cadeia na notação CIDR que contém um intervalo de endereços IP a converter.

Valor devolvido

Um objeto que contém várias propriedades do intervalo de endereços.

Exemplos

O exemplo seguinte analisa uma cadeia CIDR IPv4:

output v4info object = parseCidr('10.144.0.0/20')

O exemplo anterior devolve 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 seguinte analisa uma cadeia CIDR IPv6:

output v6info object = parseCidr('fdad:3236:5555::/48')

O exemplo anterior devolve 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 devolve o intervalo de endereços IP da sub-rede com o índice especificado.

Espaço de nomes: sys.

Parâmetros

Parâmetro Necessário Tipo Description
network Yes string Cadeia que contém um intervalo de endereços IP para converter na notação CIDR.
newCIDR Yes int Um número inteiro que representa o CIDR a ser utilizado na sub-rede. Este valor deve ser igual ou maior do que o valor CIDR no network parâmetro .
subnetIndex Yes int Índice do intervalo de endereços IP da sub-rede pretendido a devolver.

Valor devolvido

Uma cadeia do intervalo de endereços IP da sub-rede com o índice especificado.

Exemplos

O exemplo seguinte calcula os primeiros cinco intervalos de sub-rede /24 dos /20 especificados:

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

O exemplo anterior devolve 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 seguinte calcula os primeiros cinco intervalos de sub-rede /52 dos /48 especificados:

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

O exemplo anterior devolve 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 anfitrião 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, existem 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. Apenas os endereços IP que vão de 192.168.1.1 a 192.168.1.254 podem ser atribuídos a anfitriões, que referimos como endereços IP "utilizáveis". Assim, quando a função é transmitida um hostIndex de 0, 192.168.1.1 é devolvido.

No Azure, existem endereços IP adicionais reservados em cada sub-rede, que incluem os primeiros quatro e o último endereço IP, num total de 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 predefinido.
  • 192.168.1.2, 192.168.1.3 : reservado pelo Azure para mapear os IPs de DNS do Azure para o espaço da VNet.
  • 192.168.1.255 : endereço de difusão de rede.

Espaço de nomes: sys.

Parâmetros

Parâmetro Necessário Tipo Description
network Yes string Cadeia que contém uma rede IP para converter. A cadeia fornecida tem de estar no formato de rede correto.
hostIndex Yes int O índice determina o endereço IP do anfitrião a ser devolvido. Se utilizar o valor 0, dá-lhe o primeiro endereço IP utilizável para uma rede não Azure. No entanto, se utilizar 3, fornece-lhe o primeiro endereço IP utilizável para uma sub-rede do Azure.

Valor devolvido

Uma cadeia do endereço IP.

Exemplos

O exemplo seguinte calcula os primeiros cinco endereços IP de anfitrião 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 devolve 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 seguinte calcula os primeiros cinco endereços IP de anfitrião 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 devolve 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"
]

Passos seguintes