Trae tu propia IP
BYOIP en AWS: trae tus propias direcciones IPv4 a EC2
Demuestras que controlas el rango con un certificado en su registro y un ROA que nombra los ASN de AWS, lo aprovisionas en un pool de direcciones y asignas direcciones Elastic IP de él igual que de las de AWS. A las direcciones que traes no se les aplica el cargo por hora de IPv4 pública.
Esta guía cubre EC2 mediante la AWS CLI. El mismo rango también puede ir a AWS Global Accelerator, que tiene su propio proceso, o pasar por VPC IP Address Manager (IPAM), que añade una forma basada en DNS de demostrar el control y la opción de anunciar desde tu propio ASN.
Qué acepta AWS
Según la documentación de AWS, el día que la consultamos:
- Tamaño. El rango IPv4 más específico que puedes traer es un /24.
- Registro. ARIN, el RIPE NCC o APNIC, y registrado a nombre de una empresa o institución, nunca de una persona.
- Historial. AWS puede comprobar la reputación del rango y rechazar uno con direcciones de mal historial (mantener limpio un bloque).
- El espacio legacy se acepta, pero también necesita un ROA.
- Una Región a la vez por rango, y cinco rangos por Región por defecto; AWS Support puede ampliarlo.
- Dónde. Todas las Regiones comerciales excepto las de China, y una lista de Local Zones.
- No toques el registro de enrutamiento. AWS actualiza RADb por sí mismo, y un cambio manual que incluya el ASN de AWS hace fallar el aprovisionamiento.
Antes de empezar
Un ROA para los ASN de AWS. Debe autorizar AS16509 y AS14618, y cualquier ASN que anuncie hoy el rango, con la longitud máxima igual al tamaño del rango que traes. En las regiones AWS GovCloud (US) el ROA indica AS8987 en su lugar, y en la AWS European Sovereign Cloud AS16509 y AS214101; con IPAM, fíjala en /24 para poder dividir el bloque. Si trasladas el rango desde tu propia red, crea primero el ROA para tu ASN actual, para que nada de lo que funciona ahora pase a ser inválido (RPKI y ROA). Un ROA puede tardar hasta 24 horas en llegar a AWS.
Un par de claves y un certificado, generados con OpenSSL 1.0.2 o posterior:
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.pemEl certificado en el registro, en una sola línea, con los marcadores BEGIN y END. Dónde va depende del registro, y el campo importa:
| Registro | Dónde va el certificado |
|---|---|
| RIPE NCC | Una nueva línea descr en el objeto inetnum. No remarks |
| ARIN | Public Comments de la red, no de la organización |
| APNIC | remarks en el objeto inetnum |
Puedes quitar el certificado cuando haya terminado el aprovisionamiento.
Paso a paso
01Firma el mensaje de autorización. El mensaje indica tu cuenta, el rango y una fecha de caducidad:
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")02Aprovisiona el rango en la Región donde lo vas a usar:
aws ec2 provision-byoip-cidr --cidr 203.0.113.0/24 \
--cidr-authorization-context Message="$text_message",Signature="$signed_message" \
--region eu-central-103Espera. El estado pasa de pending-provision a provisioned. AWS dice que la mayoría de los rangos terminan en dos horas y algunos tardan hasta una semana; aws ec2 describe-byoip-cidrs --max-results 5 --region eu-central-1 muestra cómo va.
04Prepara y luego cambia. Para reducir el tiempo de corte, asigna direcciones Elastic IP del nuevo pool y asócialas antes de que se anuncie el rango. aws ec2 describe-public-ipv4-pools da el ID del pool, y aws ec2 allocate-address --public-ipv4-pool <pool-id> toma una dirección de él.
05Anuncia. Deja de anunciar el rango en cualquier otro sitio y luego:
aws ec2 advertise-byoip-cidr --cidr 203.0.113.0/24 --region eu-central-1AWS recomienda retirar antes el rango de otras ubicaciones; mientras otro lo anuncie, AWS no puede prometer que el tráfico hacia él llegue a su red. Debes anunciar exactamente el rango que aprovisionaste, nunca una parte.
06Compruébalo desde fuera. whois -r -h whois.ripe.net 203.0.113.0/24 | grep descr debería mostrar el certificado, y el validador de RIPEstat debería dar el rango como válido para AS16509: curl "https://stat.ripe.net/data/rpki-validation/data.json?resource=16509&prefix=203.0.113.0/24".
Errores que cuestan un día
- El certificado en el campo equivocado. Para el RIPE NCC, AWS lee
descry expresamente noremarks. Azure quiere lo contrario, así que un bloque que pasa de una nube a otra necesita cambiar el registro. - Un ROA con la longitud máxima equivocada. AWS exige que sea igual al tamaño del rango que traes, o /24 con IPAM. Una longitud máxima más específica que el rango que traes invita a secuestros de subprefijos, y AWS se reserva el derecho de dejar de anunciar un rango cuyos ROA no sigan sus reglas.
- Anunciar parte del rango. AWS anuncia exactamente lo que aprovisionaste. Para usar un rango más pequeño, desaprovisiona y vuelve a aprovisionar.
- Dos redes anunciando a la vez. El tráfico se reparte entre ellas, y AWS no lo diagnosticará.
Tu propio ASN
Con VPC IPAM, AWS puede anunciar tu rango desde tu propio ASN en lugar del suyo. Añades el mismo certificado al registro de tu ASN (para el RIPE NCC, como línea descr en el aut-num), creas un segunda ROA que nombra tu ASN, y AWS recomienda un objeto ASPA que indique AS16509 y AS14618 como tus proveedores; sin ellos, las rutas que AWS propaga por ti no superan la validación ASPA. Puedes volver a cambiar el origen al ASN de AWS en cualquier momento, y al tuyo como mucho una vez por hora.
Si alquilas el bloque
El espacio alquilado funciona, siempre que el registro lo muestre a nombre de una organización. El titular se encarga de la parte del registro: el certificado en el inetnum, que solo puede editar el maintainer del titular, y el ROA para AS16509 y AS14618. Tú haces el resto desde tu cuenta de AWS.
Dónde encaja RTM Networks
Alquilamos /24 y mayores de nuestro propio espacio de direcciones del RIPE NCC, y vendemos bloques en las regiones RIPE NCC, ARIN y APNIC. Para el espacio que nos alquilas añadimos tu certificado de AWS al registro y creamos el ROA para los ASN de AWS, así que solo te queda el aprovisionamiento (alquilar IPv4). Si necesitas menos de 256 direcciones en una instancia EC2, podemos entregarlas por un túnel (túneles GRE y WireGuard). Cómo se suma el cargo por hora de IPv4, y cuándo compensa traer las tuyas: el coste real de IPv4 en la nube. Otros proveedores: guías BYOIP.
Contacto
¿Vas a llevar tu propia IP a AWS?
Dinos el proveedor, la región y cuántas direcciones necesitas. Alquilamos /24 y bloques mayores con el trabajo de registro para tu proveedor ya hecho, vendemos bloques en propiedad o entregamos menos direcciones por un túnel. Normalmente respondemos en 1 a 3 horas laborables.

