Функции CIDR для Bicep
Бесклассовая маршрутизация Inter-Domain (CIDR) — это метод выделения IP-адресов и маршрутизации ip-пакетов. В этой статье описываются функции Bicep для работы с CIDR.
parseCidr
parseCidr(network)
Анализирует диапазон IP-адресов в нотации CIDR, чтобы получить различные свойства диапазона адресов.
Пространство имен: sys.
Параметры
Параметр | Обязательно | Тип | Описание |
---|---|---|---|
network | Да | строка | Строка в нотации CIDR, содержащая диапазон IP-адресов для преобразования. |
Возвращаемое значение
Объект , содержащий различные свойства диапазона адресов.
Примеры
В следующем примере выполняется синтаксический анализ строки CIDR IPv4:
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
}
В следующем примере выполняется синтаксический анализ строки CIDR для IPv6:
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)
Разделяет указанный диапазон IP-адресов в нотации CIDR на подсети с новым значением CIDR и возвращает диапазон IP-адресов подсети с указанным индексом.
Пространство имен: sys.
Параметры
Параметр | Обязательно | Тип | Описание |
---|---|---|---|
network | Да | строка | Строка, содержащая диапазон IP-адресов для преобразования в нотации CIDR. |
newCIDR | Да | INT | Целое число, представляющее CIDR, используемый для подсети. Это значение должно быть равно или больше значения CIDR в параметре network . |
subnetIndex | Да | INT | Индекс возвращаемого диапазона IP-адресов подсети. |
Возвращаемое значение
Строка диапазона IP-адресов подсети с указанным индексом.
Примеры
В следующем примере вычисляется первые пять диапазонов подсети /24 из указанного значения /20:
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"
]
В следующем примере вычисляется первые пять диапазонов подсети /52 из указанного значения /48:
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-адрес узла с указанным индексом в указанном диапазоне 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
.
В Azure есть дополнительные IP-адреса, зарезервированные в каждой подсети, включая первые четыре и последний IP-адрес, в общей сложности пять зарезервированных IP-адресов. Например, в случае диапазона 192.168.1.0/24
IP-адресов зарезервированы следующие адреса:
192.168.1.0
: сетевой адрес.192.168.1.1
: зарезервировано в Azure для шлюза по умолчанию.192.168.1.2
,192.168.1.3
. Зарезервировано Azure для сопоставления IP-адресов Azure DNS с пространством виртуальной сети.192.168.1.255
: адрес широковещательной сети.
Пространство имен: sys.
Параметры
Параметр | Обязательно | Тип | Описание |
---|---|---|---|
network | Да | строка | Строка, содержащая преобразуемую IP-сеть. Указанная строка должна иметь правильный сетевой формат. |
hostIndex | Да | INT | Индекс определяет возвращаемый IP-адрес узла. Если вы используете значение 0 , вы дается первый доступный IP-адрес для сети, отличной от Azure. Однако при использовании 3 он предоставляет первый пригодный IP-адрес для подсети Azure. |
Возвращаемое значение
Строка IP-адреса.
Примеры
В следующем примере вычисляется первые пять пригодных для использования IP-адресов узла из указанного параметра /24 в сетях, отличных от Azure:
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"
]
В следующем примере вычисляется первые пять пригодных для использования IP-адресов узла из указанного параметра /52 в сетях, отличных от Azure:
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.