Bring your own IP
BYOIP в Azure: власні IPv4-адреси як custom IP prefix
Ви доводите, що діапазон ваш, через ROA, що називає ASN Microsoft, і сертифікат у його записі WHOIS/RDAP, потім надаєте його і створюєте з нього public IP prefixes та адреси.
Цей посібник іде за уніфікованою моделлю, для діапазону, що використовується в одному регіоні, через Azure CLI. Діапазон не може перейти на глобальну/регіональну модель, батьківський префікс з регіональними дочірніми, без повторного підключення.
Що приймає Azure
З документації Microsoft, у день нашої перевірки:
- Розмір. Уніфікований префікс «must be between /21 and /24» (переклад: «має бути від /21 до /24»). Глобальний батьківський також від /21 до /24, з регіональними дочірніми від /22 до /26.
- Реєстр та ім’я. Діапазон «must be owned by you and registered under your name» (переклад: «має належати вам і бути зареєстрованим на ваше ім’я») у регіональному інтернет-реєстрі, серед яких ARIN, RIPE NCC та APNIC. Нічого про статус PA, PI чи legacy.
- Хто анонсує. Microsoft, під AS8075, або AS8070 для US Gov Cloud. Сторінки Microsoft про BYOIP не документують варіанту з вашим власним ASN. Команда CLI з кроку 1,
az network custom-ip prefix create, справді має параметр--asn, описаний лише як «The ASN for CIDR advertising» (переклад: «ASN для анонсу CIDR»), тож запитайте Microsoft, перш ніж на це розраховувати. - Регіони. Один регіон на префікс і за замовчуванням п’ять префіксів на регіон, більше на запит.
- Ціна. «There's no charge to provision or use custom IP prefixes» (переклад: «За надання чи використання custom IP prefixes плата не стягується»), як і за public IP prefixes та адреси, створені з них. Трафік оплачується за тарифами вихідного інтернет-трафіку.
- Терміни. Близько 30 хвилин на надання і три-чотири години на глобальне введення в дію.
- Обмеження. Без Internet Routing Preference, Global Tier, ExpressRoute Microsoft peering чи публічних IP Standard v2. Зворотний DNS працює з ваших власних зон в Azure DNS, Windows Server Activation може тривати до тижня, а наданий діапазон не може змінити підписку.
Перед початком
ROA для AS8075, з довжиною префікса рівно такою, з якою його анонсуватиме Microsoft, і датою закінчення дії, що охоплює час, протягом якого ви хочете анонс (RPKI та ROA). Дайте щонайменше 24 години, щоб Microsoft його побачив. Microsoft також рекомендує ROA для будь-якого ASN, що анонсує діапазон сьогодні.
Пара ключів і самопідписаний сертифікат, створені за допомогою OpenSSL:
openssl genrsa -out byoipprivate.key 2048
openssl req -new -x509 -key byoipprivate.key -days 180 | tr -d "\n" > byoippublickey.cerСертифікат у записі WHOIS/RDAP префікса, разом із маркерами BEGIN і END, без пробілів і переносів рядків:
| Реєстр | Куди йде сертифікат |
|---|---|
| RIPE NCC | remarks в об’єкті inetnum |
| ARIN | Comments запису префікса |
| APNIC | remarks в об’єкті inetnum, через MyAPNIC |
Підписане повідомлення авторизації: ID вашої підписки, префікс і дата закінчення дії ROA, у такому порядку:
byoipauth="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx|203.0.113.0/24|20270430"
byoipauthsigned=$(echo $byoipauth | tr -d "\n" | openssl dgst -sha256 -sign byoipprivate.key -keyform PEM | openssl base64 | tr -d "\n")Microsoft не просить ні листа авторизації, ні об’єкта route.
Крок за кроком
01Надайте діапазон в існуючій групі ресурсів. У регіоні із зонами доступності зробіть його zone-redundant або прив’яжіть до однієї зони:
az network custom-ip prefix create --name byoip-203-0-113-0-24 \
--resource-group byoip-rg --location westeurope --cidr 203.0.113.0/24 --zone 1 2 3 \
--authorization-message "$byoipauth" --signed-message "$byoipauthsigned"02Дочекайтеся Provisioned. commissionedState, який повертає az network custom-ip prefix show, змінюється з Provisioning на Provisioned. Ранній ValidationFailed означає, що ROA, сертифікат або повідомлення не пройшли перевірку; поле FailedReason каже, що саме.
03Створіть адреси. Створіть public IP prefix з діапазону, потім з нього адреси Standard SKU, і прив’яжіть їх до VM чи балансувальників навантаження; вони ще не анонсуються.
az network public-ip prefix create --name pip-203-0-113-0-28 --resource-group byoip-rg \
--location westeurope --length 28 --custom-ip-prefix-name byoip-203-0-113-0-24 --zone 1 2 304Введіть у дію. Якщо діапазон працює деінде, два анонси одночасно «could potentially create BGP routing instability or traffic loss» (переклад: «можуть спричинити нестабільність маршрутизації BGP або втрату трафіку»). Спершу введіть його в дію всередині регіону (Commission, потім опція лише для регіону, у порталі, або -NoInternetAdvertise у PowerShell), протестуйте, відкличте старий анонс, потім введіть його в дію глобально:
az network custom-ip prefix update --name byoip-203-0-113-0-24 --resource-group byoip-rg --state commissionПоки статус Commissioning, діапазон анонсується частково, спершу з регіону, потім з мережі Microsoft під AS8075, доки не стане Commissioned.
Помилки, що коштують дня
- Сертифікат у descr. Для RIPE NCC Microsoft каже remarks, тоді як AWS читає descr і явно не remarks, тож для блоку, який переходить між цими двома хмарами, запис треба змінити.
- Дата, що не збігається. Дата в підписаному повідомленні це дата закінчення дії ROA у форматі
yyyymmdd; якщо її немає, Microsoft радить вибрати дату, до якої ви хочете анонсувати діапазон. - ROA з неправильною довжиною. Розбіжність із префіксом, який ви надаєте, дає помилку
InvalidPrefixLengthInROA. - Вихід у неправильному порядку. Видаліть кожен створений public IP prefix, потім виведіть діапазон з дії (три-чотири години), перш ніж змінювати чи видаляти ROA. Інакше Microsoft продовжить анонсувати діапазон, який він уже не має права анонсувати.
Якщо ви орендуєте блок
Перешкодою є правило Microsoft: діапазон «must be owned by you and registered under your name» (переклад: «має належати вам і бути зареєстрованим на ваше ім’я»). Блок, зареєстрований лише на орендодавця, не відповідає цьому в буквальному формулюванні, а Microsoft не каже, чи зараховується призначення на вас у межах виділення власника, тож запитайте власника і Microsoft до підписання. Потім власник створює ROA для AS8075 і додає ваш сертифікат до remarks запису. Для зворотного DNS теж потрібен власник: Azure обслуговує його лише зі зворотної зони, яку ви розміщуєте в Azure DNS і яку власник делегує вам. Лист авторизації не потрібен.
Де тут RTM Networks
Ми здаємо в оренду /24 і більші блоки з нашого власного адресного простору RIPE NCC і продаємо блоки в регіонах RIPE NCC, ARIN та APNIC. Для простору, орендованого в нас, ми реєструємо призначення на вашу організацію, створюємо ROA для AS8075 і додаємо ваш сертифікат до запису реєстру (оренда IPv4). Якщо Microsoft захоче більшого, ніж призначення на ваше ім’я, купівля блоку це вирішує (купівля IPv4). Якщо у вас немає власного LIR, ми спонсоруємо PI і legacy-простір та номери AS (спонсорство). Для менш ніж 256 адрес на VM в Azure ми анонсуємо блок і доставляємо його через WireGuard, оскільки Azure блокує GRE, будь-якого розміру аж до однієї адреси (WireGuard-тунелі). Інші провайдери: посібники BYOIP.
Контакти
Переносите власні IP до Azure?
Скажіть провайдера, регіон і скільки адрес вам потрібно. Ми здаємо в оренду /24 і більше з уже виконаною роботою з реєстром для вашого провайдера, продаємо блоки у власність або доставляємо меншу кількість адрес через тунель. Ми зазвичай відповідаємо протягом 1–3 годин у робочий час.

