Bring your own IP
BYOIP в AWS: собствени IPv4 адреси в EC2
Доказвате, че контролирате диапазона, със сертификат в записа му в регистъра и 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 или по-нов:
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 |
| ARIN | Public Comments на мрежата, не на организацията |
| APNIC | remarks в обекта inetnum |
Можете да премахнете сертификата, след като предоставянето приключи.
Стъпка по стъпка
01Подпишете съобщението за упълномощаване. Съобщението посочва акаунта Ви, диапазона и дата на изтичане:
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, където ще го използвате:
aws ec2 provision-byoip-cidr --cidr 203.0.113.0/24 \
--cidr-authorization-context Message="$text_message",Signature="$signed_message" \
--region eu-central-103Изчакайте. Статусът преминава от 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Анонсирайте. Спрете анонсирането на диапазона навсякъде другаде, след това:
aws ec2 advertise-byoip-cidr --cidr 203.0.113.0/24 --region eu-central-1AWS препоръчва първо да оттеглите диапазона от другите места; докато някой друг го анонсира, 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 работни часа.

