Puncte:4

GCP, basic IPv6 set up for Linux VM Instance

drapel cn

I'm trying to set up a simple VM in Google Cloud Platform that can ping ipv6.google.com successfully. I'm using these GCP docs regarding IPv6 support, including :

[NOTE: Edited/updated to provide full commands used]

Here's my simple and repeatable proof of concept:

  1. Within a project, create a VPC network
$ gcloud config set project my-test-project

$ gcloud compute networks create targetnet \
   --subnet-mode=custom --mtu=1460 --bgp-routing-mode=regional
  1. Create subnet with IPv6 support
$ gcloud compute networks subnets create targetnet-1 \
   --network=targetnet --range=10.9.9.0/24 \
   --stack-type=IPV4_IPV6 --ipv6-access-type=EXTERNAL \
   --region=us-west2
  1. Create an instance with IPv6 support
$ gcloud compute instances create test-1 \
   --stack-type=IPV4_IPV6 --ipv6-network-tier=PREMIUM \
   --subnet=targetnet-1 --zone=us-west2-a \
   --image-family=debian-10 --image-project=debian-cloud \
   --machine-type=e2-micro 
  1. Add a firewall rule to give SSH access to the instance
$ gcloud compute firewall-rules create target-ssh-home \
   --network targetnet --allow tcp:22 --source-ranges <my IPv4 addr>
  1. SSH to the instance, look at the network addresses & route:
$ 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: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 state UP qlen 1000
    inet6 2600:1900:xxxx:xxxx:0:1::/128 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::4001:aff:fe04:2d2/64 scope link 
       valid_lft forever preferred_lft forever

$ ip -6 route
::1 dev lo proto kernel metric 256 pref medium
2600:1900:xxxx:xxxx:0:1:: dev ens4 proto kernel metric 256 pref medium
fe80::/64 dev ens4 proto kernel metric 256 pref medium
default via fe80::4001:aff:fe04:201 dev ens4 proto ra metric 1024 expires 85sec pref medium
  1. Attempt to ping an external IPv6 resource:
$ ping6 ipv6.google.com
PING ipv6.google.com(lax31s01-in-x0e.1e100.net (2607:f8b0:4007:80e::200e)) 56 data bytes
From fe80::4001:ff:fe00:0%ens4 (fe80::4001:ff:fe00:0%ens4): icmp_seq=1 Destination unreachable: No route

The docs indicate the firewall defaults should allow outgoing ICMP. Still, I've also tried adding firewall rules to allow ICMP (and every) service in various forms to see if that helped. This did not change the result. Also, I confirmed that GCP added a default IPv6 route for the network. (::/0).

According to the documentation, the GCP is to provide a /64 and the NIC should be assigned the first address from that range. I don't see that here. Is there something I need to do on the host to get that? Or is there something I've missed that is needed in GCP?

John Hanley avatar
drapel cn
Verificați dacă VPC-ul dvs. are o rută implicită IPv6. Puteți da ping la **fe80::4001:aff:fe04:201**? Dacă nu, problema este în cadrul sistemului de operare (regula de firewall a sistemului de operare etc.)
sirkus7 avatar
drapel cn
Mulțumesc @JohnHanley. Nu, nu pot da ping la următorul hop. După cum am menționat, folosesc imaginea implicită Debian 10. Nu am adăugat nicio regulă de firewall, iar ip6tables nu arată nimic care să blocheze ceea ce pot vedea. Știți ceva ce ar trebui să caut pe sistemul de operare?
sirkus7 avatar
drapel cn
În cazul în care îmi lipsea ceva din explicația mea, am actualizat postarea pentru a include comenzile exacte pe care le folosesc pentru a construi testul. Sper că asta poate ajuta pe cineva să identifice un pas pe care îl lipsesc.
John Hanley avatar
drapel cn
Încercați să creați un nou VM cu un sistem de operare diferit. Dacă nu puteți da ping la următorul hop, probabil că aveți o problemă la nivelul sistemului de operare.
Ray Foss avatar
drapel cn
De asemenea, am o experiență similară la mai mulți ISP-uri, ssh peste IPV6 funcționează după deschiderea paravanului de protecție, dar ICMP pare să fie blocat permanent. De ce ens4 are un prefix de 128, când subrețelele GCP sunt 96 și mașinile virtuale sunt 64. Eu doar pentru că merg cu gateway-ul și folosesc loopback-ul pentru IPv6 în modul extern. Pentru a fi clar SSH peste IPv6 funcționează.
Puncte:3
drapel cn

Conectarea la API-urile și serviciile Google de la VPC-uri prin adrese IPv6 externe nu este acceptată în prezent. Eforturile de a trimite ping la âipv6.google.comâ de la Cloud VM prin IPv6 duc adesea la un răspuns ICMP inaccesibil la destinație.
Ți-am replicat configurația cu pașii pe care i-ați menționat și, de asemenea, am primit aceeași eroare „Destinație inaccesabilă: Nicio rută” în timp ce încercam să dau ping la ipv6.google.com, totuși am reușit să dau ping la alte site-uri IPv6 precum â wikipedia.orgâ destul de bine.

introduceți descrierea imaginii aici

În plus, pentru a utiliza cel mai bine mașinile virtuale cu rețea IPv6, puteți prefera încorporarea GCP Echilibrarea sarcinii cu suport IPv6.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.