Перейти до змісту
Networks

Bring your own IP

BYOIP в AWS: власні IPv4-адреси в EC2

BYOIP доступнийСШАЗвірено з документацією AWS станом на Перекладено з англійської. Читати оригінал

Ви доводите, що контролюєте діапазон, сертифікатом у його записі реєстру і ROA, що називає ASN AWS, надаєте його в пул адрес і виділяєте з нього адреси Elastic IP так само, як із власних адрес AWS. За принесені адреси погодинна плата за публічні IPv4 не стягується.

Цей посібник описує EC2 через AWS CLI. Той самий діапазон можна також передати в AWS Global Accelerator, який має власний процес, або через VPC IP Address Manager (IPAM), який додає спосіб довести контроль через DNS і можливість анонсувати з власного ASN.

Що приймає AWS

З документації AWS, у день нашої перевірки:

  • Розмір. Найспецифічніший діапазон IPv4, який можна принести, це /24.
  • Реєстр. ARIN, RIPE NCC або APNIC, і зареєстрований на компанію чи установу, ніколи на особу.
  • Історія. AWS може перевірити репутацію діапазону і відхилити такий, адреси якого мають погану історію (як тримати блок чистим).
  • Legacy-простір приймається, але все одно потребує ROA.
  • Один регіон водночас на діапазон і за замовчуванням п’ять діапазонів на регіон; AWS Support може це збільшити.
  • Де. Кожен комерційний регіон, крім регіонів у Китаї, і список Local Zones.
  • Не чіпайте реєстр маршрутизації. AWS сам оновлює RADb, а ручна зміна, що містить ASN AWS, призводить до збою надання.

Перед початком

ROA для ASN AWS. Він має авторизувати AS16509 і AS14618, а також будь-який ASN, що анонсує діапазон сьогодні, з максимальною довжиною, рівною розміру діапазону, який ви приносите. У регіонах AWS GovCloud (US) ROA натомість називає AS8987, а в AWS European Sovereign Cloud AS16509 і AS214101; через IPAM встановіть її на /24, щоб блок можна було поділити. Якщо ви переносите діапазон з власної мережі, спершу створіть ROA для вашого поточного ASN, щоб ніщо з того, що працює зараз, не стало недійсним (RPKI та ROA). ROA може доходити до AWS до 24 годин.

Пара ключів і сертифікат, створені за допомогою OpenSSL 1.0.2 або новішої:

Shell
openssl genpkey -aes256 -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out private-key.pem
openssl req -new -x509 -key private-key.pem -days 365 | tr -d "\n" > certificate.pem

Сертифікат у записі реєстру, в одному рядку, разом із маркерами BEGIN і END. Куди він іде, залежить від реєстру, і поле має значення:

РеєстрКуди йде сертифікат
RIPE NCCНовий рядок descr в об’єкті inetnum. Не remarks
ARINPublic Comments мережі, а не організації
APNICremarks в об’єкті inetnum

Після завершення надання сертифікат можна видалити.

Крок за кроком

01Підпишіть повідомлення авторизації. Повідомлення називає ваш обліковий запис, діапазон і дату закінчення дії:

Shell
text_message="1|aws|123456789012|203.0.113.0/24|20261231|SHA256|RSAPSS"
signed_message=$(echo -n $text_message | openssl dgst -sha256 -sigopt rsa_padding_mode:pss -sigopt rsa_pss_saltlen:-1 -sign private-key.pem -keyform PEM | openssl base64 | tr -- '+=/' '-_~' | tr -d "\n")

02Надайте діапазон у регіоні, де ви його використовуватимете:

Shell
aws ec2 provision-byoip-cidr --cidr 203.0.113.0/24 \
  --cidr-authorization-context Message="$text_message",Signature="$signed_message" \
  --region eu-central-1

03Дочекайтеся. Статус змінюється з pending-provision на provisioned. AWS каже, що більшість діапазонів завершується протягом двох годин, а деякі займають до тижня; aws ec2 describe-byoip-cidrs --max-results 5 --region eu-central-1 показує, на якому етапі процес.

04Підготуйтеся, потім перемкніть. Щоб скоротити простій, виділіть адреси Elastic IP з нового пулу і прив’яжіть їх ще до анонсу діапазону. aws ec2 describe-public-ipv4-pools дає ID пулу, а aws ec2 allocate-address --public-ipv4-pool <pool-id> бере з нього адресу.

05Анонсуйте. Припиніть анонсувати діапазон деінде, потім:

Shell
aws ec2 advertise-byoip-cidr --cidr 203.0.113.0/24 --region eu-central-1

AWS рекомендує спершу відкликати діапазон з інших місць; поки його анонсує хтось інший, AWS не може гарантувати, що трафік для нього дійде до його мережі. Анонсувати треба рівно той діапазон, який ви надали, ніколи не його частину.

06Перевірте ззовні. whois -r -h whois.ripe.net 203.0.113.0/24 | grep descr має показати сертифікат, а валідатор RIPEstat має вважати діапазон дійсним для AS16509: curl "https://stat.ripe.net/data/rpki-validation/data.json?resource=16509&prefix=203.0.113.0/24".

Помилки, що коштують дня

  • Сертифікат не в тому полі. Для RIPE NCC AWS читає descr і явно не remarks. Azure хоче навпаки, тож для блоку, який переходить між цими двома хмарами, запис треба змінити.
  • ROA з неправильною максимальною довжиною. AWS вимагає, щоб вона дорівнювала розміру діапазону, який ви приносите, або /24 через IPAM. Максимальна довжина, специфічніша за діапазон, який ви приносите, відкриває шлях до перехоплень субпрефіксів, і AWS залишає за собою право припинити анонс діапазону, ROA якого не відповідають його правилам.
  • Анонс частини діапазону. AWS анонсує рівно те, що ви надали. Щоб використати менший діапазон, скасуйте надання і надайте знову.
  • Дві мережі анонсують одночасно. Трафік розділяється між ними, і AWS не допомагатиме це розв’язувати.

Ваш власний ASN

Через VPC IPAM AWS може анонсувати ваш діапазон з вашого власного ASN замість свого. Ви додаєте той самий сертифікат до запису реєстру вашого ASN (для RIPE NCC як рядок descr в aut-num), створюєте другий ROA з вашим ASN, а AWS рекомендує об’єкт ASPA, що називає AS16509 і AS14618 вашими провайдерами; без них маршрути, які AWS передає за вас, не проходять перевірку ASPA. Перемкнути origin назад на ASN AWS можна будь-коли, а на ваш не частіше ніж раз на годину.

Якщо ви орендуєте блок

Орендований простір підходить, за умови що реєстр показує його власником організацію. Власник робить частину в реєстрі: сертифікат у записі inetnum, який може редагувати лише maintainer власника, і ROA для AS16509 та AS14618. Решту ви робите зі свого облікового запису AWS.

Де тут RTM Networks

Ми здаємо в оренду /24 і більші блоки з нашого власного адресного простору RIPE NCC і продаємо блоки в регіонах RIPE NCC, ARIN та APNIC. Для простору, орендованого в нас, ми додаємо ваш сертифікат AWS до запису реєстру і створюємо ROA для ASN AWS, тож вам залишається лише надання (оренда IPv4). Якщо вам потрібно менше ніж 256 адрес на інстансі EC2, ми можемо натомість доставити їх через тунель (GRE- і WireGuard-тунелі). Як складається погодинна плата за IPv4 і коли власні адреси окуповуються: реальна вартість IPv4 у хмарі. Інші провайдери: посібники BYOIP.

Контакти

Переносите власні IP до AWS?

Скажіть провайдера, регіон і скільки адрес вам потрібно. Ми здаємо в оренду /24 і більше з уже виконаною роботою з реєстром для вашого провайдера, продаємо блоки у власність або доставляємо меншу кількість адрес через тунель. Ми зазвичай відповідаємо протягом 1–3 годин у робочий час.

Зв’язатися з нами

Часті запитання

BYOIP у AWS: запитання

Чи бере AWS плату за адреси BYOIP?

Ні. AWS бере 0,005 $ на годину за кожну публічну IPv4-адресу, яку надає, використовувану чи ні, а його сторінка цін каже, що за адреси, принесені через BYOIP, плата не стягується. Інстанси, трафік та інші послуги коштують стільки ж, як завжди.

Скільки триває BYOIP в AWS?

AWS каже, що більшість надань завершується протягом двох годин, і допускає до одного тижня для діапазонів, що публічно анонсуються. ROA може доходити до AWS до 24 годин, а запис реєстру, змінений вручну через LIR, може зайняти кілька днів.

Чи можна використовувати той самий блок у кількох регіонах AWS?

Кожен діапазон водночас іде в один регіон, але більший блок можна поділити на /24 і принести в різні регіони з одним ROA та одним записом реєстру. Через IPAM встановіть максимальну довжину ROA на /24, щоб блок можна було поділити.

Чи може AWS анонсувати мій діапазон BYOIP з мого власного ASN?

Так, через опцію bring-your-own-ASN у VPC IPAM. Тоді вам потрібен другий ROA для вашого ASN і сертифікат у записі реєстру вашого ASN, а AWS рекомендує об’єкт ASPA з AS16509 та AS14618 як вашими провайдерами.

Чи можна принести в AWS орендований простір?

Так, якщо він зареєстрований на організацію, а не на особу. Власник додає ваш сертифікат до запису реєстру і створює ROA для ASN AWS; для простору, орендованого в нас, ми робимо і те, і інше.