GCP, базовая настройка IPv6 для экземпляра виртуальной машины Linux

Я пытаюсь настроить простую виртуальную машину в Google Cloud Platform, которая может проверять связь ipv6.google.com успешно. Я использую эти документы GCP относительно поддержки IPv6, в том числе:

[ПРИМЕЧАНИЕ: отредактировано / обновлено для предоставления полных используемых команд]

Вот мое простое и повторяемое доказательство концепции:

  1. В рамках проекта создайте сеть VPC
$ gcloud config set project my-test-project

$ gcloud compute networks create targetnet \
   --subnet-mode=custom --mtu=1460 --bgp-routing-mode=regional
  1. Создать подсеть с поддержкой IPv6
$ 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. Создать экземпляр с поддержкой IPv6
$ 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. Добавить правило брандмауэра для предоставления SSH-доступа экземпляру
$ gcloud compute firewall-rules create target-ssh-home \
   --network targetnet --allow tcp:22 --source-ranges <my IPv4 addr>
  1. SSH экземпляру, посмотреть сетевые адреса и маршрут:
$ 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. Попытка выполнить эхо-запрос внешнего ресурса IPv6:
$ 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

В документации указано, что по умолчанию брандмауэр разрешает исходящий ICMP. Тем не менее, я также попытался добавить правила брандмауэра, чтобы разрешить ICMP (и все) службы в различных формах, чтобы посмотреть, помогло ли это. Это не повлияло на результат. Кроме того, я подтвердил, что GCP добавила маршрут IPv6 по умолчанию для сети. (:: / 0).

Согласно документации, GCP должен предоставить / 64, а сетевой карте должен быть назначен первый адрес из этого диапазона. Я не вижу здесь этого.Что мне нужно сделать на хосте, чтобы это получить? Или я пропустил что-то необходимое в GCP?

1
задан 27 July 2021 в 06:16
1 ответ

Подключение к Google API и службам из VPC через внешние адреса IPv6 в настоящее время не поддерживается. Попытки выполнить эхо-запрос ipv6.google.com из Cloud VM через IPv6 часто приводят к недоступному получателю ответа ICMP.
Я воспроизвел вашу настройку с помощью упомянутых вами шагов, и я также получал ту же ошибку «Пункт назначения недоступен: нет маршрута» при попытке выполнить пи нг ipv6.google.com, однако мне удалось довольно успешно проверить связь с другими сайтами IPv6, такими как wikipedia.org.

enter image description here

Кроме того, для наилучшего использования виртуальных машин с сетью IPv6 вы можете предпочесть включение балансировки нагрузки GCP с поддержкой IPv6 .

0
ответ дан 28 July 2021 в 13:22

Теги

Похожие вопросы