Bring your own IP
BYOIP στο AWS: φέρτε τις δικές σας διευθύνσεις IPv4 στο EC2
Αποδεικνύετε ότι ελέγχετε το εύρος με ένα πιστοποιητικό στην εγγραφή μητρώου του και ένα ROA που αναφέρει τα ASN του AWS, το εντάσσετε σε ένα address pool, και εκχωρείτε από αυτό διευθύνσεις 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 εκτός από τις Regions της Κίνας, και σε μια σειρά από Local Zones.
- Μην αγγίζετε το routing registry. Το AWS ενημερώνει το ίδιο το RADb, και μια χειροκίνητη αλλαγή που περιλαμβάνει το ASN του AWS κάνει την παροχή να αποτύχει.
Πριν ξεκινήσετε
Ένα ROA για τα ASN του AWS. Πρέπει να εξουσιοδοτεί τα AS16509 και AS14618, και κάθε ASN που ανακοινώνει σήμερα το εύρος, με το μέγιστο μήκος ίσο με το μέγεθος του εύρους που φέρνετε. Στις AWS GovCloud (US) Regions το ROA αναφέρει αντί αυτών το AS8987, και στο AWS European Sovereign Cloud τα AS16509 και AS214101· μέσω IPAM, ορίστε το σε /24 ώστε να μπορείτε να χωρίσετε το μπλοκ. Αν μεταφέρετε το εύρος από το δικό σας δίκτυο, δημιουργήστε πρώτα το ROA για το τρέχον ASN σας, ώστε τίποτα από όσα λειτουργούν τώρα να μη γίνει άκυρο (RPKI και ROA). Ένα ROA μπορεί να χρειαστεί έως 24 ώρες για να φτάσει στο AWS.
Ένα ζεύγος κλειδιών και ένα πιστοποιητικό, φτιαγμένα με 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 από το νέο pool και συνδέστε τις πριν ανακοινωθεί το εύρος. Το aws ec2 describe-public-ipv4-pools δίνει το ID του pool, και το aws ec2 allocate-address --public-ipv4-pool <pool-id> παίρνει μια διεύθυνση από αυτό.
05Ανακοινώστε. Σταματήστε να ανακοινώνετε το εύρος οπουδήποτε αλλού, και στη συνέχεια:
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 θα πρέπει να δείχνει το πιστοποιητικό, και ο validator του 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 θέλει το αντίθετο, οπότε ένα μπλοκ που μετακινείται μεταξύ των δύο cloud χρειάζεται αλλαγή στην εγγραφή. - Ένα ROA με λάθος μέγιστο μήκος. Το AWS απαιτεί να ισούται με το μέγεθος του εύρους που φέρνετε, ή /24 μέσω IPAM. Ένα μέγιστο μήκος πιο συγκεκριμένο από το εύρος που φέρνετε προκαλεί sub-prefix hijacks, και το AWS διατηρεί το δικαίωμα να σταματήσει να ανακοινώνει ένα εύρος του οποίου τα ROA δεν ακολουθούν τους κανόνες του.
- Ανακοίνωση μέρους του εύρους. Το AWS ανακοινώνει ακριβώς ό,τι εντάξατε. Για να χρησιμοποιήσετε μικρότερο εύρος, κάντε deprovision και εντάξτε το ξανά.
- Δύο δίκτυα που ανακοινώνουν ταυτόχρονα. Η κίνηση μοιράζεται ανάμεσά τους, και το 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 διευθύνσεις σε ένα instance EC2, μπορούμε να τις παραδώσουμε μέσω tunnel (tunnels GRE και WireGuard). Πώς αθροίζεται η ωριαία χρέωση IPv4, και πότε συμφέρει να φέρετε τις δικές σας: το πραγματικό κόστος του IPv4 στο cloud. Άλλοι πάροχοι: οδηγοί BYOIP.
Επικοινωνία
Φέρνετε τις δικές σας IP στο AWS;
Πείτε μας τον πάροχο, την περιοχή και πόσες διευθύνσεις χρειάζεστε. Μισθώνουμε /24 και μεγαλύτερα με έτοιμη τη δουλειά μητρώου για τον πάροχό σας, πουλάμε μπλοκ οριστικά ή παραδίδουμε λιγότερες διευθύνσεις μέσω tunnel. Συνήθως απαντάμε εντός 1-3 εργάσιμων ωρών.

