Към съдържанието
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.
  • Един Region в даден момент за всеки диапазон и по подразбиране пет диапазона на Region; AWS Support може да увеличи това.
  • Къде. Всеки търговски Region освен China Regions, както и списък от 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Предоставете диапазона в Region, където ще го използвате:

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 Region?

Всеки диапазон отива в един Region в даден момент, но по-голям блок може да се раздели на /24 и да се внесе в различни Region с един ROA и един запис в регистъра. Чрез IPAM задайте максималната дължина на ROA на /24, за да може блокът да се раздели.

Може ли AWS да анонсира моя BYOIP диапазон от собствения ми ASN?

Да, чрез опцията bring-your-own-ASN във VPC IPAM. Тогава Ви трябват втори ROA за Вашия ASN и сертификатът в записа на Вашия ASN в регистъра, а AWS препоръчва ASPA обект, който посочва AS16509 и AS14618 като Ваши доставчици.

Мога ли да внеса наето адресно пространство в AWS?

Да, ако е регистрирано на организация, а не на физическо лице. Държателят добавя Вашия сертификат в записа в регистъра и създава ROA за ASN на AWS; за адреси, наети от нас, правим и двете.