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/24
transmissã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/24
de 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 3 o , 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
- Para obter uma descrição das seções em um arquivo Bicep, consulte Compreender a estrutura e a sintaxe dos arquivos Bicep.