Я пытаюсь подключить свое приложение, развернутое в облачном VPC Google, к локальной сети моего клиента (через VPN по запросу клиента), чтобы мой клиент и я могли передавать файлы между моим сервером в Gcloud и их сервером.
Однако у нас возникают проблемы с настройкой VPN-туннеля. Ниже приведены характеристики:
Из журнала моего шлюза Gcloud я вижу, что возникает ошибка:
D 2020-07-26T13:46:23.854055402Z remote host is behind NAT
D 2020-07-26T13:46:23.854099553Z authentication of '78.211.79.182' (myself) with pre-shared key
I 2020-07-26T13:46:23.854167373Z establishing CHILD_SA vpn_41.233.612.86{1}
D 2020-07-26T13:46:23.854285679Z generating IKE_AUTH request 1 [ IDi AUTH SA TSi TSr N(EAP_ONLY) ]
D 2020-07-26T13:46:23.854821679Z sending packet: from 78.211.79.182[4500] to 41.233.612.86[4500] (320 bytes)
D 2020-07-26T13:46:23.865825884Z received packet: from 41.233.612.86[4500] to 78.211.79.182[4500] (240 bytes)
D 2020-07-26T13:46:23.866158710Z parsed IKE_AUTH response 1 [ IDr AUTH N(ESP_TFC_PAD_N) N(NON_FIRST_FRAG) SA TSi TSr ]
D 2020-07-26T13:46:23.866219472Z tried 1 shared key for '78.211.79.182' - '41.233.612.86', but MAC mismatched
D 2020-07-26T13:46:23.866341774Z generating INFORMATIONAL request 2 [ N(AUTH_FAILED) ]
D 2020-07-26T13:46:23.866434696Z sending packet: from 78.211.79.182[4500] to 41.233.612.86[4500] (80 bytes)
D 2020-07-26T13:46:26.830704780Z creating acquire job for policy with reqid {1}
I 2020-07-26T13:46:26.830879885Z initiating IKE_SA vpn_41.233.612.86[38] to 41.233.612.86
D 2020-07-26T13:46:26.835746125Z generating IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) ]
D 2020-07-26T13:46:26.836731673Z sending packet: from 78.211.79.182[500] to 41.233.612.86[500] (892 bytes)
D 2020-07-26T13:46:26.847907232Z received packet: from 41.233.612.86[500] to 78.211.79.182[500] (464 bytes)
D 2020-07-26T13:46:26.848248731Z parsed IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) ]
D 2020-07-26T13:46:26.853647299Z local host is behind NAT, sending keep alives
D 2020-07-26T13:46:26.853693084Z remote host is behind NAT
D 2020-07-26T13:46:26.853740121Z authentication of '78.211.79.182' (myself) with pre-shared key
I 2020-07-26T13:46:26.853804324Z establishing CHILD_SA vpn_41.233.612.86{1}
D 2020-07-26T13:46:26.853950401Z generating IKE_AUTH request 1 [ IDi AUTH SA TSi TSr N(EAP_ONLY) ]
D 2020-07-26T13:46:26.854595024Z sending packet: from 78.211.79.182[4500] to 41.233.612.86[4500] (320 bytes)
D 2020-07-26T13:46:26.865979158Z received packet: from 41.233.612.86[4500] to 78.211.79.182[4500] (240 bytes)
D 2020-07-26T13:46:26.866316701Z parsed IKE_AUTH response 1 [ IDr AUTH N(ESP_TFC_PAD_N) N(NON_FIRST_FRAG) SA TSi TSr ]
D 2020-07-26T13:46:26.866381716Z tried 1 shared key for '78.211.79.182' - '41.233.612.86', but MAC mismatched
D 2020-07-26T13:46:26.866505332Z generating INFORMATIONAL request 2 [ N(AUTH_FAILED) ]
D 2020-07-26T13:46:26.866615565Z sending packet: from 78.211.79.182[4500] to 41.233.612.86[4500] (80 bytes)
D 2020-07-26T13:46:29.830755043Z creating acquire job for policy with reqid {1}
I 2020-07-26T13:46:29.830930845Z initiating IKE_SA vpn_41.233.612.86[39] to 41.233.612.86
D 2020-07-26T13:46:29.835922517Z generating IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) ]
D 2020-07-26T13:46:29.836919895Z sending packet: from 78.211.79.182[500] to 41.233.612.86[500] (892 bytes)
D 2020-07-26T13:46:29.848359165Z received packet: from 41.233.612.86[500] to 78.211.79.182[500] (464 bytes)
D 2020-07-26T13:46:29.848683121Z parsed IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) ]
D 2020-07-26T13:46:29.853828481Z local host is behind NAT, sending keep alives
D 2020-07-26T13:46:29.853841851Z remote host is behind NAT
VPN-туннель не удалось настроить. У меня 2 вопроса:
D 2020-07-26T13:46:26.853647299Z local host is behind NAT, sending keep alives
D 2020-07-26T13:46:26.853693084Z remote host is behind NAT
Это вообще проблема? или это нормальное поведение, о котором мне не о чем беспокоиться?
D 2020-07-26T13:46:23.866219472Z tried 1 shared key for '78.211.79.182' - '41.233.612.86', but MAC mismatched
Что это значит? Как я могу настроить, чтобы исправить эту проблему? Это что-то, что я должен изменить в моей конфигурации gcloud vpn, или что-то, что я должен посоветовать своему клиенту сделать с его настройками?
Cloud VPN поддерживает только однозначный NAT через инкапсуляцию UDP для NAT-Traversal (NAT-T). NAT «один ко многим» и преобразование адресов на основе портов не поддерживаются. Другими словами, Cloud VPN не может подключаться к нескольким одноранговым VPN-шлюзам, использующим один внешний IP-адрес. Инкапсуляция UDP
При использовании NAT «один к одному» ваш локальный шлюз VPN должен идентифицировать себя, используя тот же внешний IP-адрес, что и устройство NAT:
Тип удостоверения должен быть ID_IPV4_ADDR (RFC 7815).
Не все устройства Cisco поддерживают установку идентификатора устройства на IP-адрес, отличный от того, который использует устройство (его внутренний адрес). Например, устройства Cisco ASA не поддерживают назначение разных (внешних) IP-адресов для своей идентичности. Таким образом, устройства Cisco ASA не могут быть настроены для использования однозначного NAT с Cloud VPN.
Для устройств Juniper вы можете установить идентификатор устройства с помощью set security gateway [NAME] local-identity inet [PUBLIC_IP], где [NAME] - это имя вашего VPN-шлюза, а [PUBLIC_IP] - ваш внешний IP-адрес. Обратитесь к этой статье Juniper TechLibrary для получения более подробной информации.
Кроме того, я заметил следующее в журнале, которым вы поделились
D 2020-07-26T13:46:23.854285679Z generating IKE_AUTH request 1 [ IDi AUTH SA TSi TSr N(EAP_ONLY) ]
D 2020-07-26T13:46:23.866158710Z parsed IKE_AUTH response 1 [ IDr AUTH N(ESP_TFC_PAD_N) N(NON_FIRST_FRAG) SA TSi TSr ]
Согласно информации, обсужденной выше, решение этой проблемы состоит в том, чтобы настроить локальный VPN-шлюз для идентификации себя по общедоступному IP-адресу, а не по внутреннему или любому другому адресу. Поскольку конец GCP будет ожидать ответа только от одноранговый IP настроен в конфигурации GCP Cloud VPN.