我有一个实例(基于 Linux)连接到 Google VPC 网络,该实例本身具有通过 IpSec 隧道(IKev2)到对等 VPN 的路由。
VPN 隧道在 Google Cloud 中的状态为已建立,因此一切似乎均已正常运行。
我需要在 Linux 中配置什么才能访问其他网络?网卡 (eth0) 位于为 VPC 网络配置的子网上(通过隧道连接到对等 VPN)。
谢谢
答案1
这云 VPN将您的本地连接到私有云平台,这意味着每个使用 Google Cloud Engine 的实例、集群或其他产品(普通中等教育证书)。
VPN 至少有两个组件:网关和隧道但我要补充第三点:路由类型。
a) 网关:在这里您可以添加现有或保留任何静态 IP 地址(来自 Google 外部 IP 地址池)。
b) 隧道:封装和加密的流量将流经此地以到达本地 IP 范围。
c) 路由类型:Cloud VPN 有三种可能性:
根据您选择的类型,路由以不同的方式进行,但一般来说,它会将您的子网传播到您的内部部署网络并从中接收路由。
重要的:记得打开你的防火墙在您的 GCP VPC 上接收来自您的本地 IP 范围的流量,因为 Ingress 的默认和隐含规则将阻止它。
- 隐含的允许出口规则:出站规则的操作为允许、目的地为 0.0.0.0/0 且优先级为最低(65535),允许任何实例将流量发送到任何目的地。
- 隐含的拒绝进入规则:入口规则的操作为拒绝、源为 0.0.0.0/0 且优先级为最低(65535),通过阻止传入流量来保护所有实例。
此外,如果您有任何其他问题,请随时告诉我。
答案2
我有一个类似的问题:
基于路由的 VPN
在 vpc 中,我有 linux1、lunux2 和 windows1。在我的私有 LAN 中,我有 linuxP1
- 我可以在 linux1 和 linux2 之间 ping 通。
- 从 linux1 或 linux2 我无法 ping 通 windows1 或 linuxP1
- 从 linuxP1 我可以 ping 通 windows1,但无法 ping 通 linux1 和 linux2
- 从互联网我可以访问 linux1、linux2、windows1
我是否需要对 linux1 和 linux2 进行额外的配置?
答案3
我怀疑路由和流量选择器之间可能存在一些混淆。流量选择器(您当前在 VPN 的 GCP 端将其配置为 0.0.0.0/0)被视为“加密域”。您也可以将其视为“通行证”,它定义了哪些流量源可以进入或使用 VPN。但是,“交通选择器不是路线”。
定义流量选择器并建立 VPN 后,您仍需要告诉 VPC 哪些流量应使用 VPN 作为下一跳。定义将发送到 VPN 的流量是通过为您的 VPC 创建静态路由来完成的,其中下一跳是 VPN。基于策略或基于路线经典 VPN 隧道使用静态路由(您已经创建了基于路由的隧道)。
从上面的“基于路线”链接:
“If you create one of these tunnels using the Cloud Console, Google Cloud
automatically creates custom static routes based on the remote IP ranges you
specify in the Cloud VPN configuration. If you use gcloud commands to create one
of these tunnels, you must manually create the static routes that use the tunnel
as a next hop.”
这意味着,根据您在 VPN 远端(而非“NET1”端)使用的流量选择器,可能已为您创建了静态路由。但是,如果您在 VPN 的两端都使用 0.0.0.0/0 之类的流量选择器,那么此静态路由将无济于事。要使流量可通过 VPN 路由,您可能需要在 NET1 中定义静态路由,该路由指向您希望与之通信的对等 VPN 中的子网。此静态路由将需要 NET1 VPN 的下一跳。
请注意:VPN 远端也是如此。需要创建一条指向 NET1 中要通信的子网的静态路由(在对等 VPN VPC/网络中),并将“对等 VPN”作为下一跳。
由于您已经在 VPN 的两侧打开了防火墙,因此一旦创建了适当的静态路由,您就应该能够从 NET1 中的子网 ping 到对等 VPN 子网(前提是静态路由匹配)。