La vinculación a una IP aleatoria desde la subred IPv6 (/64) no funciona

La vinculación a una IP aleatoria desde la subred IPv6 (/64) no funciona

Tengo un servidor scaleway.com (DEV1-S) que me ofrece una subred IPv6 /64. Quiero usar una IP de esta subred para realizar una solicitud HTTP (usaré wget en los ejemplos) pero no puedo hacerlo funcionar. La solicitud (con wget pero también con otros programas y lenguajes de programación) se bloqueará.

La dirección IPv6 es 2001:bc8:1830:1b18::1, la puerta de enlace es 2001:bc8:1830:1b18:: y la máscara de red es 64.

Al ejecutar ip -6 addr, en el servidor limpio/recién creado, se generará lo siguiente:

root@test:~# ip -6 addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 2001:bc8:1830:1b18::1/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::dc2e:4cff:fe57:a019/64 scope link 
       valid_lft forever preferred_lft forever

Leí en foros y otras preguntas/respuestas que para poder vincularse a una dirección desde una subred, debe ejecutar los siguientes comandos:

ip add add local 2001:bc8:1830:1b18::/64 dev lo
ip route add local 2001:bc8:1830:1b18::/64 dev ens2
sysctl -w net.ipv6.ip_nonlocal_bind=1

Después de estos comandos, el resultado de ip -6 addres el siguiente:

root@test:~# ip -6 addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
    inet6 2001:bc8:1830:1b18::/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 2001:bc8:1830:1b18::1/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::dc2e:4cff:fe57:a019/64 scope link 
       valid_lft forever preferred_lft forever

Ahora puedo hacer ping6, por ejemplo, 2001:bc8:1830:1b18::9en lugar de sólo 2001:bc8:1830:1b18::1, pero sólo desde mi propio servidor. No de otros servidores/redes.

Sin sysctl -w net.ipv6.ip_nonlocal_bind=1, wget devolvería esto:

root@test:~# wget --bind-address=2001:bc8:1830:1b18::2 -v google.com
--2021-08-13 00:29:45--  http://google.com/
Resolving google.com (google.com)... 2a00:1450:400e:802::200e, 142.250.179.174
Connecting to google.com (google.com)|2a00:1450:400e:802::200e|:80... failed: Cannot assign requested address.
Connecting to google.com (google.com)|142.250.179.174|:80... failed: Address family not supported by protocol.

Ahora, después de los 3 comandos, cuando ejecuto wget con el indicador --bind-address configurado en una dirección en la subred distinta a 2001:bc8:1830:1b18::1, la solicitud se bloqueará para siempre:

root@test:~# wget --bind-address=2001:bc8:1830:1b18::1 google.com
--2021-08-12 23:55:48--  http://google.com/
Resolving google.com (google.com)... 2a00:1450:400e:802::200e, 142.250.179.174
Connecting to google.com (google.com)|2a00:1450:400e:802::200e|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://www.google.com/ [following]
--2021-08-12 23:55:48--  http://www.google.com/
Resolving www.google.com (www.google.com)... 2a00:1450:400e:80f::2004, 142.251.36.4
Connecting to www.google.com (www.google.com)|2a00:1450:400e:80f::2004|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘index.html’

index.html                                                                       [ <=>                                                                                                                                                                                         ]  13.03K  --.-KB/s    in 0.009s  

2021-08-12 23:55:48 (1.44 MB/s) - ‘index.html’ saved [13342]

root@test:~# wget --bind-address=2001:bc8:1830:1b18::2 google.com
--2021-08-12 23:55:52--  http://google.com/
Resolving google.com (google.com)... 2a00:1450:400e:802::200e, 142.250.179.174
Connecting to google.com (google.com)|2a00:1450:400e:802::200e|:80... 

lsofpara el proceso wget dice lo siguiente: wget 3413 root 3u IPv6 58660 0t0 TCP[2001:bc8:1830:1b18::2]:56623->ams15s41-in-x0e.1e100.net:http (SYN_SENT)

¿Qué estoy haciendo mal? ¡Muchas gracias por adelantado!

información relacionada