Функции CIDR для шаблонов ARM
В этой статье описываются функции для работы с CIDR в шаблоне Azure Resource Manager (шаблон ARM).
Совет
Мы рекомендуем использовать Bicep, так как он предоставляет те же возможности, что и шаблоны ARM, и имеет более простой синтаксис. Дополнительные сведения см. в разделе о функциях cidr .
parseCidr
parseCidr(network)
Анализирует диапазон IP-адресов в нотации CIDR, чтобы получить различные свойства диапазона адресов.
В Bicep используйте функцию parseCidr .
Параметры
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
сеть | Да | строка | Строка в нотации CIDR, содержащая диапазон IP-адресов для преобразования. |
Возвращаемое значение
Объект, содержащий различные свойства диапазона адресов.
Примеры
В следующем примере анализируется строка CIDR IPv4:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"v4info": {
"type": "object",
"value": "[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
}
В следующем примере анализируется строка CIDR IPv6:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"v6info": {
"type": "object",
"value": "[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)
Разделяет указанный диапазон IP-адресов в нотации CIDR на подсети с новым значением CIDR и возвращает диапазон IP-адресов подсети с указанным индексом.
В Bicep используйте функцию cidrSubnet .
Параметры
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
сеть | Да | строка | Строка, содержащая диапазон IP-адресов для преобразования в нотации CIDR. |
newCIDR | Да | INT | Целое число, представляющее CIDR, используемое для подсети. Это значение должно быть равно или больше значения CIDR в параметре network . |
subnetIndex | Да | INT | Индекс требуемого диапазона IP-адресов подсети для возврата. |
Возвращаемое значение
Строка диапазона IP-адресов подсети с указанным индексом.
Примеры
В следующем примере вычисляется первые пять диапазонов подсети /24 из указанного /20:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"v4subnets": {
"type": "array",
"copy": {
"count": "[length(range(0, 5))]",
"input": "[cidrSubnet('10.144.0.0/20', 24, range(0, 5)[copyIndex()])]"
}
}
}
}
В предыдущем примере возвращается следующий массив:
[
"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"
]
В следующем примере вычисляется первые пять диапазонов подсети /52 от указанного /48:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"v6subnets": {
"type": "array",
"copy": {
"count": "[length(range(0, 5))]",
"input": "[cidrSubnet('fdad:3236:5555::/48', 52, range(0, 5)[copyIndex()])]"
}
}
}
}
В предыдущем примере возвращается следующий массив:
[
"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-адрес узла с указанным индексом в указанном диапазоне IP-адресов в нотации CIDR. Например, в случае 192.168.1.0/24
есть зарезервированные IP-адреса: 192.168.1.0
служит в качестве адреса идентификатора сети, а 192.168.1.255
функции — в качестве широковещательного адреса. Только IP-адреса, от 192.168.1.1
192.168.1.254
которых может быть назначено узлам, которые называются "пригодными для использования" IP-адресами. Таким образом, когда функция передается hostIndex, 0
192.168.1.1
возвращается.
В Bicep используйте функцию cidrHost .
Параметры
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
сеть | Да | строка | Строка, содержащая ip-сеть для преобразования (должна быть правильной сетевой формат). |
hostIndex | Да | INT | Индекс возвращаемого IP-адреса узла. |
Возвращаемое значение
Строка IP-адреса.
Примеры
В следующем примере вычисляется первые пять доступных IP-адресов узла из указанного /24:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"v4hosts": {
"type": "array",
"copy": {
"count": "[length(range(0, 5))]",
"input": "[cidrHost('10.144.3.0/24', range(0, 5)[copyIndex()])]"
}
}
}
}
В предыдущем примере возвращается следующий массив:
[
"10.144.3.1"
"10.144.3.2"
"10.144.3.3"
"10.144.3.4"
"10.144.3.5"
]
В следующем примере вычисляется первые пять пригодных для использования IP-адресов узла из указанного /52:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"v6hosts": {
"type": "array",
"copy": {
"count": "[length(range(0, 5))]",
"input": "[cidrHost('fdad:3236:5555:3000::/52', range(0, 5)[copyIndex()])]"
}
}
}
}
В предыдущем примере возвращается следующий массив:
[
"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"
]
Следующие шаги
- Описание разделов в шаблоне ARM приведено в статье Общие сведения о структуре и синтаксисе шаблонов ARM.