Bicep 的 CIDR 函式
無類別網域間路由選擇 (CIDR) 是配置 IP 位址和路由網際網路通訊協定 (IP) 封包的方法。 本文描述處理 CIDR 的 Bicep 函式。
parseCidr
parseCidr(network)
剖析 CIDR 表示法中的 IP 位址範圍,以取得位址範圍的各種屬性。
命名空間:sys (部分機器翻譯)。
參數
參數 | 必要 | 類型 | 描述 |
---|---|---|---|
network | Yes | string | CIDR 表示法中的字串,其中包含要轉換的 IP 位址範圍。 |
傳回值
包含位址範圍各種屬性的物件。
範例
下列範例會剖析 IPv4 CIDR 字串:
output v4info object = parseCidr('10.144.0.0/20')
上述範例會傳回下列物件︰
{
"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
}
下列範例會剖析 IPv6 CIDR 字串:
output v6info object = parseCidr('fdad:3236:5555::/48')
上述範例會傳回下列物件︰
{
"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)
將以 CIDR 表示法指定的 IP 位址範圍分割成有新 CIDR 值的子網路,並傳回有指定索引之子網路的 IP 位址範圍。
命名空間:sys (部分機器翻譯)。
參數
參數 | 必要 | 類型 | 描述 |
---|---|---|---|
network | Yes | string | CIDR 表示法的字串,其中包含要轉換的 IP 位址範圍。 |
newCIDR | Yes | int | 代表要用於子網路之 CIDR 的整數。 此值應該等於或大於 network 參數中的 CIDR 值。 |
subnetIndex | Yes | int | 要傳回之所需子網路 IP 位址範圍的索引。 |
傳回值
有指定索引之子網路 IP 位址範圍的字串。
範例
下列範例會從指定的 /20 計算前五個 /24 子網路範圍:
output v4subnets array = [for i in range(0, 5): cidrSubnet('10.144.0.0/20', 24, i)]
上述範例會傳回下列陣列︰
[
"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"
]
下列範例會從指定的 /48 計算前五個 /52 子網路範圍:
output v6subnets array = [for i in range(0, 5): cidrSubnet('fdad:3236:5555::/48', 52, i)]
上述範例會傳回下列陣列︰
[
"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)
計算主機的可用 IP 位址,並在 CIDR 表示法中指定的 IP 位址範圍上指定索引。 例如,在 192.168.1.0/24
的情況下,有保留的 IP 位址:192.168.1.0
做為網路識別碼位址,而 192.168.1.255
做為廣播位址。 只有範圍從 192.168.1.1
到 192.168.1.254
的 IP 位址可以指派給主機,這稱為「可使用的」IP 位址。 因此,在傳遞 0
的 hostIndex 給函式時,系統會傳回 192.168.1.1
。
在 Azure 中,每個子網路中都會保留額外的 IP 位址,其中包括前四個和最後一個 IP 位址,總共五個保留的 IP 位址。 例如,如果 IP 位址範圍為 192.168.1.0/24
,則會保留下列位址:
192.168.1.0
:網路位址。192.168.1.1
:Azure 保留給預設閘道。192.168.1.2
、192.168.1.3
:由 Azure 保留,以將 Azure DNS IP 對應至 VNet 空間。192.168.1.255
:網路廣播位址。
命名空間:sys (部分機器翻譯)。
參數
參數 | 必要 | 類型 | 描述 |
---|---|---|---|
network | Yes | string | 包含要轉換之 IP 網路的字串。 提供的字串必須是正確的網路格式。 |
hostIndex | Yes | int | 索引會決定要傳回的主機 IP 位址。 若使用 0 值,您就能獲得非 Azure 網路的第一個可用 IP 位址。 但若使用 3 ,您則會獲得 Azure 子網路的第一個可用 IP 位址。 |
傳回值
IP 位址的字串。
範例
下列範例會從非 Azure 網路上指定的 /24 計算前五個可使用的主機 IP 地址:
output v4hosts array = [for i in range(0, 5): cidrHost('10.144.3.0/24', i)]
上述範例會傳回下列陣列︰
[
"10.144.3.1"
"10.144.3.2"
"10.144.3.3"
"10.144.3.4"
"10.144.3.5"
]
下列範例會從非 Azure 網路上指定的 /52 計算前五個可用主機 IP 位址:
output v6hosts array = [for i in range(0, 5): cidrHost('fdad:3236:5555:3000::/52', i)]
上述範例會傳回下列陣列︰
[
"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"
]
下一步
- 如需 Bicep 檔案中各區段的描述,請參閱了解 Bicep 檔案的結構和語法。