Из локального Linux я попытался проверить статус vpn.
Почему не продолжить работу с detailStatus? Почему статус по-прежнему "FIRST_HANDSHAKE"?
Общий ключ и TargetIP не были неправильными.
$ gcloud compute vpn-tunnels describe gvis-vpn-tunnel
И здесь было эхо.
creationTimestamp: '2020-07-28T15:05:44.541-07:00'
description: ''
detailedStatus: Allocating resources. VPN tunnel will start soon.
id:'2892217179569987543'
ikeVersion: 2
kind: compute#vpnTunnel
:
region: https://www.googleapis.com/compute/v1/projects/[project-id]/regions/us-east1
:
sharedSecret: '*************'
:
status: FIRST_HANDSHAKE
targetVpnGateway: https://www.googleapis.com/compute/v1/projects/[project-id]/regions/us-east1/targetVpnGateways/gvis-vpn
ОБНОВЛЕНИЕ
На прошлой неделе я смог подключить VPN-туннель. С этого понедельника не удалось подключиться, и я увидел следующую запись в журнале:
2020-07-28T22:45:04.831987016Z initiating IKE_SA vpn_58.xxx.xxx.xxx[779] to 58.xxx.xxx.xxx
2020-07-28T22:45:04.758749637Z creating acquire job for policy with reqid {1}
2020-07-28T22:45:02.148478373Z sending packet: from 35.xxx.xxx.xxx[4500] to 58.xxx.xxx.xxx[4500] (80 bytes)
2020-07-28T22:45:02.148478373Z generating INFORMATIONAL request 2 [ N(AUTH_FAILED) ]
2020-07-28T22:45:02.148478373Z tried 1 shared key for '35.xxx.xxx.xxx' - '58.xxx.xxx.xxx', but MAC mismatched
2020-07-28T22:45:02.148478373Z parsed IKE_AUTH response 1 [ IDr AUTH N(ESP_TFC_PAD_N) N(NON_FIRST_FRAG) SA TSi TSr ]
2020-07-28T22:45:02.105535147Z received packet: from 58.xxx.xxx.xxx[4500] to 35.xxx.xxx.xxx[4500] (256 bytes)
2020-07-28T22:45:02.029020541Z sending packet: from 35.xxx.xxx.xxx[4500] to 58.xxx.xxx.xxx[4500] (336 bytes)
2020-07-28T22:45:02.029020541Z generating IKE_AUTH request 1 [ IDi AUTH SA TSi TSr N(EAP_ONLY) ]
2020-07-28T22:45:02.029020541Z establishing CHILD_SA vpn_58.xxx.xxx.xxx{1}
2020-07-28T22:45:02.029020541Z authentication of '35.xxx.xxx.xxx' (myself) with pre-shared key
2020-07-28T22:45:02.029020541Z remote host is behind NAT
2020-07-28T22:45:02.029020541Z parsed IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) ]
2020-07-28T22:45:01.933846400Z received packet: from 58.xxx.xxx.xxx[500] to 35.xxx.xxx.xxx[500] (464 bytes)
2020-07-28T22:45:01.819625244Z sending packet: from 35.xxx.xxx.xxx[500] to 58.xxx.xxx.xxx[500] (892 bytes)
2020-07-28T22:45:01.819625244Z generating IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) ]
Предварительный общий ключ такой же, как с декабря 2019 года. Каждый день, когда я хочу подключиться, создавал vpn-tunnel, как этот,
gcloud compute vpn-tunnels create [my-vpn-tunnel] \
--peer-address 58.xxx.xxx.xxx \
--ike-version 2 \
--shared-secret [Pre-shared key] \
--local-traffic-selector=192.xxx.100.0/24 \
--remote-traffic-selector=172.xx.xx.0/24,192.xxx.10.0/24 \
--target-vpn-gateway [my-vpn] \
--region us-east1 \
--project [project-id]
И когда я отключаюсь, удаляю vpn-tunnel, как это,
gcloud compute vpn-tunnels delete [my-vpn-tunnel] --region=us-east1
Я всегда использую gcloud в моем скрипте оболочки linux.
Поскольку ваша проблема разрешилась сама по себе, мы можем только догадываться, что вызвало эту проблему раньше.
Как я писал в комментариях, лучше следовать руководству по устранению неполадок и начинать с журналов Cloud VPN.
2020-07-28T22:45:02.148478373Z tried 1 shared key for '35.xxx.xxx.xxx' - '58.xxx.xxx.xxx', but MAC mismatched
Коды аутентификации сообщения (MAC) вычисляются на основе предварительно общего ключа и сообщения, и если предварительно общие ключи не совпадают, соответствующие MAC также не будут совпадать. Между тем, это не похоже на ваш случай, потому что вы утверждаете, что «предварительно общий ключ не изменился с декабря 2019 года».
2020-07-28T22:45:02.029020541Z remote host is behind NAT
Поскольку вы используете NAT, я рекомендую вам ознакомиться с руководством по устранению неполадок, разделом Локальные шлюзы за NAT:
Cloud VPN может работать с -домашние или одноранговые VPN-шлюзы, которые за НАТ. Это стало возможным благодаря инкапсуляции UDP и NAT-T. поддерживается только один-к-одному NAT.
более подробную информацию вы можете найти в этом разделе:
Cloud VPN поддерживает только один-к-одному NAT через инкапсуляцию UDP для Обход NAT (NAT-T). NAT «один ко многим» и адрес на основе порта перевод не поддерживается. Другими словами, Cloud VPN не может подключаться к нескольким одноранговым VPN-шлюзам, которые используют один внешний IP-адрес адрес.
При использовании NAT «один к одному» одноранговый VPN-шлюз должен быть настроен на идентифицировать себя по внешнему IP-адресу, а не по внутреннему (личный) адрес. Когда вы настраиваете туннель Cloud VPN для подключения к одноранговый VPN-шлюз, вы указываете внешний IP-адрес. Облачный VPN ожидает, что локальный VPN-шлюз будет использовать свой внешний IP-адрес для его личность.
Возможно, эта проблема связана с вашим локальным маршрутизатором, но без журналов сложно сказать.
Кроме того, в следующий раз вы можете проверить наличие этой проблемы на стороне Google на панели мониторинга Google Cloud Status и отправить отчет о проблеме в системе отслеживания проблем Google.