

# Incorporación de su rango de direcciones para usarlo en Amazon EC2
<a name="byoip-onboard"></a>

El proceso de incorporación de BYOIP incluye las siguientes tareas en función de sus necesidades.

**Topics**
+ [Aprovisione un intervalo de direcciones que se anuncie públicamente en AWS](#byoip-provision)
+ [Aprovisione un intervalo de direcciones IPv6 que no se anuncie públicamente](#byoip-provision-non-public)
+ [Anunciar el rango de direcciones mediante AWS](#byoip-advertise)
+ [Desaprovisionar el rango de direcciones](#byoip-deprovision)
+ [Validación de su BYOIP](#byoip-validation)

## Aprovisione un intervalo de direcciones que se anuncie públicamente en AWS
<a name="byoip-provision"></a>

Cuando aprovisiona un rango de direcciones para utilizarlo con AWS, usted confirma que controla el rango de direcciones y autoriza que Amazon lo anuncie. También verificamos que controla el rango de direcciones a través de un mensaje de autorización firmado. Este mensaje se firma con el par de claves autofirmado X.509 que utilizó cuando actualizó el registro de RDAP con el certificado X.509. AWS requiere un mensaje de autorización firmado criptográficamente que presenta al RIR. El RIR autentica la firma con el certificado que agregó al RDAP y verifica los detalles de autorización con la ROA.

**Para aprovisionar el rango de direcciones**

1. 

**Redactar mensajes**

   Redacte el mensaje de autorización de texto sin formato. El formato del mensaje es el siguiente, donde la fecha es la fecha de vencimiento del mensaje: 

   ```
   1|aws|account|cidr|YYYYMMDD|SHA256|RSAPSS
   ```

   Reemplace el número de cuenta, el rango de direcciones y la fecha de vencimiento con sus propios valores para crear un mensaje similar al siguiente:

   ```
   text_message="1|aws|0123456789AB|198.51.100.0/24|20211231|SHA256|RSAPSS"
   ```

   Esto no debe confundirse con un mensaje de ROA, que es similar.

1. 

**Firmar el mensaje**

   Firme el mensaje de texto sin formato con la clave privada que creó anteriormente. La firma que devuelve este comando es una cadena larga que deberá usar en el siguiente paso.
**importante**  
Le recomendamos que copie y pegue este comando. Excepto por el contenido del mensaje, no modifique ni reemplace ninguno de los valores.

   ```
   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")
   ```

1. 

**Aprovisionar la dirección**

   Para aprovisionar el rango de direcciones, use el comando [provision-byoip-cidr](https://docs.aws.amazon.com/cli/latest/reference/ec2/provision-byoip-cidr.html) de la AWS CLI. La opción `--cidr-authorization-context` utiliza las cadenas de mensaje y firma que creó anteriormente.
**importante**  
Debe especificar la región de AWS en la que se debe aprovisionar el rango de BYOIP si difiere del `Default region name` de [Configure the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).

   ```
   aws ec2 provision-byoip-cidr --cidr address-range --cidr-authorization-context Message="$text_message",Signature="$signed_message" --region us-east-1
   ```

   Aprovisionar un rango de direcciones es una operación asincrónica, por lo que la llamada se devuelve de forma inmediata, pero el rango de direcciones no se podrá utilizar hasta que su estado pase de `pending-provision` a `provisioned`.

1. 

**Monitorear el progreso**

   Si bien la mayoría del aprovisionamiento se completará en dos horas, el proceso de aprovisionamiento de los intervalos que se pueden anunciar públicamente puede tardar hasta una semana en completarse. Utilice el comando [describe-byoip-cidrs](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-byoip-cidrs.html) para monitorear el progreso, como en este ejemplo:

   ```
   aws ec2 describe-byoip-cidrs --max-results 5 --region us-east-1
   ```

   Si hay problemas durante el aprovisionamiento y el estado pasa a `failed-provision`, debe ejecutar el comando `provision-byoip-cidr` de nuevo una vez que se hayan resuelto los problemas.

## Aprovisione un intervalo de direcciones IPv6 que no se anuncie públicamente
<a name="byoip-provision-non-public"></a>

De forma predeterminada, se aprovisiona un intervalo de direcciones para que se anuncie públicamente en Internet. Puede aprovisionar un intervalo de direcciones IPv6 que no se anunciará públicamente. Para las rutas que no son anunciables públicamente, el proceso de aprovisionamiento generalmente se completa en cuestión de minutos. Cuando asocia un bloque de CIDR IPv6 de un rango de direcciones no público a una VPC, solo se puede acceder al CIDR IPv6 a través de opciones de conectividad híbrida que admiten IPv6, como [Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html), [AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) o [puertas de enlace de tránsito de Amazon VPC](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html).

No se requiere una ROA para aprovisionar un intervalo de direcciones no públicas.

**importante**  
Solo puede especificar si un intervalo de direcciones se anuncia públicamente durante el aprovisionamiento. No puede cambiar el estado anunciable de un rango de direcciones con posterioridad.
Amazon VPC no admite los CIDR de [direcciones locales únicas](https://en.wikipedia.org/wiki/Unique_local_address) (ULA). Todas las VPC deben tener CIDR de IPv6 únicos. Dos VPC no pueden tener el mismo rango de CIDR de IPv6. 

Para aprovisionar un intervalo de direcciones IPv6 que no se anunciará públicamente, use el siguiente comando [provision-byoip-cidr](https://docs.aws.amazon.com/cli/latest/reference/ec2/provision-byoip-cidr.html).

```
aws ec2 provision-byoip-cidr --cidr address-range --cidr-authorization-context Message="$text_message",Signature="$signed_message" --no-publicly-advertisable --region us-east-1
```

## Anunciar el rango de direcciones mediante AWS
<a name="byoip-advertise"></a>

Una vez aprovisionado el rango de direcciones, ya se puede anunciar. Debe anunciar el rango de direcciones exacto que ha aprovisionado. No puede anunciar solo una parte del rango de direcciones aprovisionado.

Si ha aprovisionado un intervalo de direcciones IPv6 que no se anunciará públicamente, no es necesario que complete este paso.

Le recomendamos que deje de anunciar el rango de direcciones o una parte de él desde otras ubicaciones antes de anunciarlo a través de AWS. Si sigue anunciando su rango de direcciones IP o una parte de él desde otras ubicaciones, no podremos asistirle de forma fiable ni solucionar los problemas. En especial, no podremos garantizar que el tráfico hacia el rango de direcciones o una parte de él entre en nuestra red.

Para minimizar el tiempo de inactividad, puede configurar sus recursos de AWS para que utilicen una dirección de su grupo de direcciones antes de que se anuncie. Luego puede dejar de anunciarla de forma simultánea desde la ubicación actual y empezar a anunciarla a través de AWS. Para obtener más información acerca de cómo asignar una dirección IP elástica desde su grupo de direcciones, consulte [Asignar una dirección IP elástica](working-with-eips.md#using-instance-addressing-eips-allocating).

**Limitaciones**
+ Puede ejecutar el comando **advertise-byoip-cidr** como mucho una vez cada 10 segundos, incluso si indica rangos de direcciones diferentes cada vez.
+ Puede ejecutar el comando **withdraw-byoip-cidr** como mucho una vez cada 10 segundos, incluso si indica rangos de direcciones diferentes cada vez.

Para anunciar el rango de direcciones, use el siguiente comando [advertise-byoip-cidr](https://docs.aws.amazon.com/cli/latest/reference/ec2/advertise-byoip-cidr.html).

```
aws ec2 advertise-byoip-cidr --cidr address-range --region us-east-1
```

Para dejar de anunciar el rango de direcciones, use el siguiente comando [withdraw-byoip-cidr](https://docs.aws.amazon.com/cli/latest/reference/ec2/withdraw-byoip-cidr.html).

```
aws ec2 withdraw-byoip-cidr --cidr address-range --region us-east-1
```

## Desaprovisionar el rango de direcciones
<a name="byoip-deprovision"></a>

Para dejar de utilizar el rango de direcciones con AWS, primero libere las direcciones IP elásticas y desasocie los bloques de CIDR IPv6 que todavía estén asignados del grupo de direcciones. A continuación, deje de anunciar el intervalo de direcciones y, finalmente, desaprovisione el intervalo de direcciones.

No puede desaprovisionar una parte del intervalo de direcciones. Si desea utilizar un rango de direcciones más específico con AWS, desaprovisione todo el rango de direcciones y aprovisione un rango de direcciones más específico.

(IPv4) Para liberar cada dirección IP elástica, utilice el siguiente comando [release-address](https://docs.aws.amazon.com/cli/latest/reference/ec2/release-address.html).

```
aws ec2 release-address --allocation-id eipalloc-12345678abcabcabc --region us-east-1
```

(IPv6) Para desasociar un bloque de CIDR IPv6, utilice el siguiente comando [disassociate-vpc-cidr-block](https://docs.aws.amazon.com/cli/latest/reference/ec2/disassociate-vpc-cidr-block.html).

```
aws ec2 disassociate-vpc-cidr-block --association-id vpc-cidr-assoc-12345abcd1234abc1 --region us-east-1
```

Para dejar de anunciar el rango de direcciones, use el siguiente comando [withdraw-byoip-cidr](https://docs.aws.amazon.com/cli/latest/reference/ec2/withdraw-byoip-cidr.html).

```
aws ec2 withdraw-byoip-cidr --cidr address-range --region us-east-1
```

Para desaprovisionar el rango de direcciones, use el siguiente comando [deprovision-byoip-cidr](https://docs.aws.amazon.com/cli/latest/reference/ec2/deprovision-byoip-cidr.html).

```
aws ec2 deprovision-byoip-cidr --cidr address-range --region us-east-1
```

Puede tardar hasta un día en desaprovisionar un intervalo de direcciones.

## Validación de su BYOIP
<a name="byoip-validation"></a>

1. Validación del par de claves del X.509 autofirmado

   Valide que el certificado se ha cargado y es válido a través del comando whois.

   Para ARIN, utilice `whois -h whois.arin.net r + 2001:0DB8:6172::/48` para buscar el registro de RDAP para su rango de direcciones. Compruebe la sección `Public Comments` para el `NetRange` (rango de red) en la salida del comando. El certificado debe agregarse en la sección `Public Comments` para el rango de direcciones.

   Puede inspeccionar la sección `Public Comments` que contiene el certificado con el siguiente comando:

   ```
   whois -h whois.arin.net r + 2001:0DB8:6172::/48 | grep Comments | grep BEGIN
   ```

   Esto devuelve un resultado con el contenido de la clave, que debería ser similar a lo siguiente:

   ```
   Public Comments:
   -----BEGIN CERTIFICATE-----
   MIID1zCCAr+gAwIBAgIUBkRPNSLrPqbRAFP8RDAHSP+I1TowDQYJKoZIhvcNAQE
   LBQAwezELMAkGA1UEBhMCTloxETAPBgNVBAgMCEF1Y2tsYW5kMREwDwYDVQQHDA
   hBdWNrbGFuZDEcMBoGA1UECgwTQW1hem9uIFdlYiBTZXJ2aWNlczETMBEGA1UEC
   wwKQllPSVAgRGVtbzETMBEGA1UEAwwKQllPSVAgRGVtbzAeFw0yMTEyMDcyMDI0
   NTRaFw0yMjEyMDcyMDI0NTRaMHsxCzAJBgNVBAYTAk5aMREwDwYDVQQIDAhBdWN
   rbGFuZDERMA8GA1UEBwwIQXVja2xhbmQxHDAaBgNVBAoME0FtYXpvbiBXZWIgU2
   VydmljZXMxEzARBgNVBAsMCkJZT0lQIERlbW8xEzARBgNVBAMMCkJZT0lQIERlb
   W8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCfmacvDp0wZ0ceiXXc
   R/q27mHI/U5HKt7SST4X2eAqufR9wXkfNanAEskgAseyFypwEEQr4CJijI/5hp9
   prh+jsWHWwkFRoBRR9FBtwcU/45XDXLga7D3stsI5QesHVRwOaXUdprAnndaTug
   mDPkD0vrl475JWDSIm+PUxGWLy+60aBqiaZq35wU/x+wXlAqBXg4MZK2KoUu27k
   Yt2zhmy0S7Ky+oRfRJ9QbAiSu/RwhQbh5Mkp1ZnVIc7NqnhdeIW48QaYjhMlUEf
   xdaqYUinzz8KpjfADZ4Hvqj9jWZ/eXo/9b2rGlHWkJsbhr0VEUyAGu1bwkgcdww
   3A7NjOxQbAgMBAAGjUzBRMB0GA1UdDgQWBBStFyujN6SYBr2glHpGt0XGF7GbGT
   AfBgNVHSMEGDAWgBStFyujN6SYBr2glHpGt0XGF7GbGTAPBgNVHRMBAf8EBTADA
   QH/MA0GCSqGSIb3DQEBCwUAA4IBAQBX6nn6YLhz521lfyVfxY0t6o3410bQAeAF
   08ud+ICtmQ4IO4A4B7zV3zIVYr0clrOOaFyLxngwMYN0XY5tVhDQqk4/gmDNEKS
   Zy2QkX4Eg0YUWVzOyt6fPzjOvJLcsqc1hcF9wySL507XQz76Uk5cFypBOzbnk35
   UkWrzA9KK97cXckfIESgK/k1N4ecwxwG6VQ8mBGqVpPpey+dXpzzzv1iBKN/VY4
   ydjgH/LBfdTsVarmmy2vtWBxwrqkFvpdhSGCvRDl/qdO/GIDJi77dmZWkh/ic90
   MNk1f38gs1jrCj8lThoar17Uo9y/Q5qJIsoNPyQrJRzqFU9F3FBjiPJF
   -----END CERTIFICATE-----
   ```

   Para RIPE, utilice `whois -r -h whois.ripe.net 2001:0DB8:7269::/48` para buscar el registro de RDAP para su rango de direcciones. Compruebe la sección `descr` para el objeto `inetnum` (rango de red) en la salida del comando. El certificado debe agregarse como un nuevo campo `descr` para el rango de direcciones.

   Puede inspeccionar la sección `descr` que contiene el certificado con el siguiente comando:

   ```
   whois -r -h whois.ripe.net 2001:0DB8:7269::/48 | grep descr | grep BEGIN
   ```

   Esto devuelve un resultado con el contenido de la clave, que debería ser similar a lo siguiente:

   ```
   descr:
   -----BEGIN CERTIFICATE-----MIID1zCCAr+gAwIBAgIUBkRPNSLrPqbRAFP8
   RDAHSP+I1TowDQYJKoZIhvcNAQELBQAwezELMAkGA1UEBhMCTloxETAPBgNVBAg
   MCEF1Y2tsYW5kMREwDwYDVQQHDAhBdWNrbGFuZDEcMBoGA1UECgwTQW1hem9uIF
   dlYiBTZXJ2aWNlczETMBEGA1UECwwKQllPSVAgRGVtbzETMBEGA1UEAwwKQllPS
   VAgRGVtbzAeFw0yMTEyMDcyMDI0NTRaFw0yMjEyMDcyMDI0NTRaMHsxCzAJBgNV
   BAYTAk5aMREwDwYDVQQIDAhBdWNrbGFuZDERMA8GA1UEBwwIQXVja2xhbmQxHDA
   aBgNVBAoME0FtYXpvbiBXZWIgU2VydmljZXMxEzARBgNVBAsMCkJZT0lQIERlbW
   8xEzARBgNVBAMMCkJZT0lQIERlbW8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwg
   gEKAoIBAQCfmacvDp0wZ0ceiXXcR/q27mHI/U5HKt7SST4X2eAqufR9wXkfNanA
   EskgAseyFypwEEQr4CJijI/5hp9prh+jsWHWwkFRoBRR9FBtwcU/45XDXLga7D3
   stsI5QesHVRwOaXUdprAnndaTugmDPkD0vrl475JWDSIm+PUxGWLy+60aBqiaZq
   35wU/x+wXlAqBXg4MZK2KoUu27kYt2zhmy0S7Ky+oRfRJ9QbAiSu/RwhQbh5Mkp
   1ZnVIc7NqnhdeIW48QaYjhMlUEfxdaqYUinzz8KpjfADZ4Hvqj9jWZ/eXo/9b2r
   GlHWkJsbhr0VEUyAGu1bwkgcdww3A7NjOxQbAgMBAAGjUzBRMB0GA1UdDgQWBBS
   tFyujN6SYBr2glHpGt0XGF7GbGTAfBgNVHSMEGDAWgBStFyujN6SYBr2glHpGt0
   XGF7GbGTAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBX6nn6Y
   Lhz521lfyVfxY0t6o3410bQAeAF08ud+ICtmQ4IO4A4B7zV3zIVYr0clrOOaFyL
   xngwMYN0XY5tVhDQqk4/gmDNEKSZy2QkX4Eg0YUWVzOyt6fPzjOvJLcsqc1hcF9
   wySL507XQz76Uk5cFypBOzbnk35UkWrzA9KK97cXckfIESgK/k1N4ecwxwG6VQ8
   mBGqVpPpey+dXpzzzv1iBKN/VY4ydjgH/LBfdTsVarmmy2vtWBxwrqkFvpdhSGC
   vRDl/qdO/GIDJi77dmZWkh/ic90MNk1f38gs1jrCj8lThoar17Uo9y/Q5qJIsoN
   PyQrJRzqFU9F3FBjiPJF
   -----END CERTIFICATE-----
   ```

   Para APNIC, utilice `whois -h whois.apnic.net 2001:0DB8:6170::/48` para buscar el registro de RDAP para su rango de direcciones BYOIP. Compruebe la sección `remarks` para el objeto `inetnum` (rango de red) en la salida del comando. El certificado debe agregarse como un nuevo campo `remarks` para el rango de direcciones.

   Puede inspeccionar la sección `remarks` que contiene el certificado con el siguiente comando:

   ```
   whois -h whois.apnic.net 2001:0DB8:6170::/48 | grep remarks | grep BEGIN
   ```

   Esto devuelve un resultado con el contenido de la clave, que debería ser similar a lo siguiente:

   ```
   remarks:
   -----BEGIN CERTIFICATE-----
   MIID1zCCAr+gAwIBAgIUBkRPNSLrPqbRAFP8RDAHSP+I1TowDQYJKoZIhvcNAQE
   LBQAwezELMAkGA1UEBhMCTloxETAPBgNVBAgMCEF1Y2tsYW5kMREwDwYDVQQHDA
   hBdWNrbGFuZDEcMBoGA1UECgwTQW1hem9uIFdlYiBTZXJ2aWNlczETMBEGA1UEC
   wwKQllPSVAgRGVtbzETMBEGA1UEAwwKQllPSVAgRGVtbzAeFw0yMTEyMDcyMDI0
   NTRaFw0yMjEyMDcyMDI0NTRaMHsxCzAJBgNVBAYTAk5aMREwDwYDVQQIDAhBdWN
   rbGFuZDERMA8GA1UEBwwIQXVja2xhbmQxHDAaBgNVBAoME0FtYXpvbiBXZWIgU2
   VydmljZXMxEzARBgNVBAsMCkJZT0lQIERlbW8xEzARBgNVBAMMCkJZT0lQIERlb
   W8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCfmacvDp0wZ0ceiXXc
   R/q27mHI/U5HKt7SST4X2eAqufR9wXkfNanAEskgAseyFypwEEQr4CJijI/5hp9
   prh+jsWHWwkFRoBRR9FBtwcU/45XDXLga7D3stsI5QesHVRwOaXUdprAnndaTug
   mDPkD0vrl475JWDSIm+PUxGWLy+60aBqiaZq35wU/x+wXlAqBXg4MZK2KoUu27k
   Yt2zhmy0S7Ky+oRfRJ9QbAiSu/RwhQbh5Mkp1ZnVIc7NqnhdeIW48QaYjhMlUEf
   xdaqYUinzz8KpjfADZ4Hvqj9jWZ/eXo/9b2rGlHWkJsbhr0VEUyAGu1bwkgcdww
   3A7NjOxQbAgMBAAGjUzBRMB0GA1UdDgQWBBStFyujN6SYBr2glHpGt0XGF7GbGT
   AfBgNVHSMEGDAWgBStFyujN6SYBr2glHpGt0XGF7GbGTAPBgNVHRMBAf8EBTADA
   QH/MA0GCSqGSIb3DQEBCwUAA4IBAQBX6nn6YLhz521lfyVfxY0t6o3410bQAeAF
   08ud+ICtmQ4IO4A4B7zV3zIVYr0clrOOaFyLxngwMYN0XY5tVhDQqk4/gmDNEKS
   Zy2QkX4Eg0YUWVzOyt6fPzjOvJLcsqc1hcF9wySL507XQz76Uk5cFypBOzbnk35
   UkWrzA9KK97cXckfIESgK/k1N4ecwxwG6VQ8mBGqVpPpey+dXpzzzv1iBKN/VY4
   ydjgH/LBfdTsVarmmy2vtWBxwrqkFvpdhSGCvRDl/qdO/GIDJi77dmZWkh/ic90
   MNk1f38gs1jrCj8lThoar17Uo9y/Q5qJIsoNPyQrJRzqFU9F3FBjiPJF
   -----END CERTIFICATE-----
   ```

1. Validación de la creación de un objeto ROA

   Valide la creación correcta de los objetos ROA mediante la API de datos RIPEstat. Asegúrese de probar su rango de direcciones con los ASN 16509 y 14618 de Amazon, además de los ASN que cuentan actualmente con autorización para anunciar el rango de direcciones.

   Puede inspeccionar los objetos ROA desde distintos ASN de Amazon con su rango de direcciones mediante el siguiente comando:

   ```
   curl --location --request GET "https://stat.ripe.net/data/rpki-validation/data.json?resource=ASN&prefix=CIDR
   ```

   En este resultado de ejemplo, la respuesta tiene un resultado de `"status": "valid"` para el ASN 16509 de Amazon. Esto indica que el objeto ROA para el rango de direcciones se creó correctamente:

   ```
   {
       "messages": [],
       "see_also": [],
       "version": "0.3",
       "data_call_name": "rpki-validation",
       "data_call_status": "supported",
       "cached": false,
       "data": {
           "validating_roas": [
               {
                   "origin": "16509",
                   "prefix": "2001:0DB8::/32",
                   "max_length": 48,
                   "validity": "valid"
               },
               {
                   "origin": "14618",
                   "prefix": "2001:0DB8::/32",
                   "max_length": 48,
                   "validity": "invalid_asn"
               },
               {
                   "origin": "64496",
                   "prefix": "2001:0DB8::/32",
                   "max_length": 48,
                   "validity": "invalid_asn"
               }
           ],
           "status": "valid",
           "validator": "routinator",
           "resource": "16509",
           "prefix": "2001:0DB8::/32"
       },
       "query_id": "20230224152430-81e6384e-21ba-4a86-852a-31850787105f",
       "process_time": 58,
       "server_id": "app116",
       "build_version": "live.2023.2.1.142",
       "status": "ok",
       "status_code": 200,
       "time": "2023-02-24T15:24:30.773654"
   }
   ```

El estado `“unknown”` indica que el objeto ROA para el rango de direcciones no se ha creado. El estado `“invalid_asn”` indica que el objeto ROA para el rango de direcciones no se creó correctamente.