Bring your own IP
BYOIP w AWS: własne adresy IPv4 w EC2
Dowodzisz kontroli nad zakresem certyfikatem w jego rekordzie rejestru i ROA wskazującym ASN AWS, udostępniasz go do puli adresów i przydzielasz z niej adresy Elastic IP tak jak z własnych adresów AWS. Wniesione adresy nie są obciążane godzinową opłatą za publiczne IPv4.
Ten przewodnik opisuje EC2 przez AWS CLI. Ten sam zakres może też trafić do AWS Global Accelerator, który ma własny proces, albo przez VPC IP Address Manager (IPAM), który dodaje sposób dowodzenia kontroli oparty na DNS i możliwość ogłaszania z własnego ASN.
Co przyjmuje AWS
Według dokumentacji AWS w dniu, w którym sprawdzaliśmy:
- Rozmiar. Najbardziej szczegółowy zakres IPv4, jaki można wnieść, to /24.
- Rejestr. ARIN, RIPE NCC lub APNIC, z rejestracją na firmę lub instytucję, nigdy na osobę.
- Historia. AWS może sprawdzić reputację zakresu i odrzucić taki, którego adresy mają złą historię (jak utrzymać czysty blok).
- Przestrzeń legacy jest przyjmowana, ale nadal wymaga ROA.
- Jeden region naraz na zakres i domyślnie pięć zakresów na region; AWS Support może ten limit podnieść.
- Gdzie. Każdy region komercyjny poza regionami w Chinach oraz lista Local Zones.
- Nie ruszaj rejestru routingu. AWS sam aktualizuje RADb, a ręczna zmiana obejmująca ASN AWS sprawia, że udostępnianie się nie powiedzie.
Zanim zaczniesz
ROA dla ASN AWS. Musi autoryzować AS16509 i AS14618 oraz każdy ASN, który ogłasza zakres dziś, z maksymalną długością równą rozmiarowi wnoszonego zakresu. W regionach AWS GovCloud (US) ROA wskazuje zamiast tego AS8987, a w AWS European Sovereign Cloud AS16509 i AS214101; przez IPAM ustaw ją na /24, aby móc podzielić blok. Jeśli przenosisz zakres ze swojej sieci, najpierw utwórz ROA dla obecnego ASN, aby nic, co teraz działa, nie stało się nieważne (RPKI i ROA). ROA może docierać do AWS do 24 godzin.
Para kluczy i certyfikat, utworzone w OpenSSL 1.0.2 lub nowszym:
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.pemCertyfikat w rekordzie rejestru, w jednej linii, ze znacznikami BEGIN i END. To, gdzie trafia, zależy od rejestru, a pole ma znaczenie:
| Rejestr | Gdzie trafia certyfikat |
|---|---|
| RIPE NCC | Nowa linia descr w obiekcie inetnum. Nie remarks |
| ARIN | Public Comments sieci, nie organizacji |
| APNIC | remarks w obiekcie inetnum |
Po zakończeniu udostępniania możesz usunąć certyfikat.
Krok po kroku
01Podpisz komunikat autoryzacyjny. Komunikat zawiera Twoje konto, zakres i datę wygaśnięcia:
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")02Udostępnij zakres w regionie, w którym będziesz go używać:
aws ec2 provision-byoip-cidr --cidr 203.0.113.0/24 \
--cidr-authorization-context Message="$text_message",Signature="$signed_message" \
--region eu-central-103Poczekaj. Status zmienia się z pending-provision na provisioned. AWS podaje, że większość zakresów kończy się w ciągu dwóch godzin, a niektóre trwają do tygodnia; aws ec2 describe-byoip-cidrs --max-results 5 --region eu-central-1 pokazuje, na jakim etapie jesteś.
04Przygotuj, potem przełącz. Aby przestój był krótki, przydziel adresy Elastic IP z nowej puli i podłącz je, zanim zakres zostanie ogłoszony. aws ec2 describe-public-ipv4-pools podaje identyfikator puli, a aws ec2 allocate-address --public-ipv4-pool <pool-id> pobiera z niej adres.
05Ogłoś. Przestań ogłaszać zakres gdziekolwiek indziej, a potem:
aws ec2 advertise-byoip-cidr --cidr 203.0.113.0/24 --region eu-central-1AWS zaleca najpierw wycofać zakres z innych miejsc; dopóki ogłasza go ktoś inny, AWS nie może obiecać, że ruch do niego dotrze do jego sieci. Musisz ogłosić dokładnie ten zakres, który udostępniłeś, nigdy jego część.
06Sprawdź z zewnątrz. whois -r -h whois.ripe.net 203.0.113.0/24 | grep descr powinno pokazać certyfikat, a walidator RIPEstat powinien uznać zakres za ważny dla AS16509: curl "https://stat.ripe.net/data/rpki-validation/data.json?resource=16509&prefix=203.0.113.0/24".
Błędy, które kosztują dzień
- Certyfikat w złym polu. Dla RIPE NCC AWS czyta
descr, a wyraźnie nieremarks. Azure chce odwrotnie, więc blok przenoszony między tymi dwiema chmurami wymaga zmiany rekordu. - ROA ze złą maksymalną długością. AWS wymaga, aby była równa rozmiarowi wnoszonego zakresu albo /24 przez IPAM. Dłuższa zachęca do przejęć tras (hijacks), a AWS zastrzega sobie prawo do zaprzestania ogłaszania zakresu, którego ROA nie spełniają jego zasad.
- Ogłaszanie części zakresu. AWS ogłasza dokładnie to, co udostępniłeś. Aby użyć mniejszego zakresu, cofnij udostępnienie i udostępnij ponownie.
- Dwie sieci ogłaszające naraz. Ruch dzieli się między nie, a AWS nie będzie tego diagnozować.
Twój własny ASN
Przez VPC IPAM AWS może ogłaszać Twój zakres z Twojego własnego ASN zamiast ze swojego. Dodajesz ten sam certyfikat do rekordu rejestru swojego ASN (dla RIPE NCC jako linię descr w aut-num), tworzysz drugą ROA wskazującą Twój ASN, a AWS zaleca obiekt ASPA z AS16509 i AS14618 jako Twoimi dostawcami; bez nich trasy, które AWS przekazuje za Ciebie, nie przechodzą walidacji ASPA. Źródło możesz przełączyć z powrotem na ASN AWS w dowolnej chwili, a na swój najwyżej raz na godzinę.
Jeśli dzierżawisz blok
Dzierżawiona przestrzeń działa, pod warunkiem że rejestr pokazuje jako posiadacza organizację. Stronę rejestrową robi posiadacz: certyfikat w rekordzie inetnum, który może edytować tylko maintainer posiadacza, oraz ROA dla AS16509 i AS14618. Resztę robisz ze swojego konta AWS.
Gdzie pasuje RTM Networks
Dzierżawimy /24 i większe z naszej własnej przestrzeni adresowej RIPE NCC i sprzedajemy bloki w regionach RIPE NCC, ARIN i APNIC. Dla przestrzeni dzierżawionej od nas dodajemy Twój certyfikat AWS do rekordu rejestru i tworzymy ROA dla ASN AWS, więc po Twojej stronie zostaje tylko udostępnienie (dzierżawa IPv4). Jeśli potrzebujesz mniej niż 256 adresów na instancji EC2, możemy je zamiast tego dostarczyć przez tunel (tunele GRE i WireGuard). Jak sumuje się godzinowa opłata za IPv4 i kiedy wniesienie własnych adresów się opłaca: rzeczywisty koszt IPv4 w chmurze. Inni dostawcy: przewodniki BYOIP.
Kontakt
Własne adresy IP w AWS?
Podaj dostawcę, region i liczbę potrzebnych adresów. Dzierżawimy bloki /24 i większe z gotową pracą rejestrową dla Twojego dostawcy, sprzedajemy bloki na własność lub dostarczamy mniejszą liczbę adresów przez tunel. Zwykle odpowiadamy w ciągu 1–3 godzin roboczych.

