Die Bindung an eine zufällige IP aus dem IPv6-Subnetz (/64) funktioniert nicht

Die Bindung an eine zufällige IP aus dem IPv6-Subnetz (/64) funktioniert nicht

Ich habe einen scaleway.com-Server (DEV1-S), der mir ein /64 IPv6-Subnetz bietet. Ich möchte eine IP aus diesem Subnetz verwenden, um eine HTTP-Anfrage zu stellen (in den Beispielen werde ich wget verwenden), aber ich bekomme es nicht zum Laufen. Die Anfrage (mit wget, aber auch mit anderen Programmen und Programmiersprachen) bleibt hängen.

Die IPv6-Adresse ist 2001:bc8:1830:1b18::1, das Gateway ist 2001:bc8:1830:1b18:: und die Netzmaske ist 64.

Wenn Sie auf dem sauberen/gerade erstellten Server ausführen ip -6 addr, wird Folgendes ausgegeben:

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

Ich habe in Foren und anderen Fragen/Antworten gelesen, dass Sie die folgenden Befehle ausführen müssen, um eine Bindung an eine Adresse aus einem Subnetz herstellen zu können:

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

Nach diesen Befehlen ist die Ausgabe ip -6 addrfolgende:

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

Ich kann jetzt zB. 2001:bc8:1830:1b18::9statt nur ping6 ansteuern 2001:bc8:1830:1b18::1, aber nur von meinem eigenen Server. Nicht von anderen Servern/Netzen.

Ohne das sysctl -w net.ipv6.ip_nonlocal_bind=1würde wget Folgendes zurückgeben:

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.

Wenn ich nun nach den drei Befehlen wget mit dem Flag --bind-address auf eine andere Adresse im Subnetz als gesetzt ausführe 2001:bc8:1830:1b18::1, bleibt die Anforderung für immer hängen:

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... 

lsoffür den wget-Prozess sagt das folgendes: wget 3413 root 3u IPv6 58660 0t0 TCP[2001:bc8:1830:1b18::2]:56623->ams15s41-in-x0e.1e100.net:http (SYN_SENT)

Was mache ich falsch? Vielen Dank im Voraus!

verwandte Informationen