
我有一個全新的 VPC (10.0.0.0/16),帶有 3 個公共子網路(指向 IGW)和 3 個私有子網路(每個子網路都有一個 NAT GW)。我已在公共子網路中部署了 OpenVPN 設備,並將其配置為使用 NAT 模式(Yes, using NAT
在路由配置中)。我還在其中一個私有子網路中有一個測試實例。 OpenVPN 實例和測試實例都具有具有「慷慨」靈活性的 SG 群組(即允許進出的所有內容...用於測試目的)。在 OpenVPN 上我已經10.0.0.0/16
在Specify the private subnets to which all clients should be given access (one per line):
現場進行了設定。
從我的 Mac(在家庭網路 192.168.178.0/24 上)我可以建立一條隧道,並且可以輕鬆到達測試實例。都好。
現在我想切換到路線模式。
- 我將路由模式更改為
Yes, using Routing
.我禁用了 OpenVPN 實例上的來源/目標檢查。 - 我為 VPC 中的所有 4 個路由表(3 個私人子網路和 1 個公有子網路)新增了靜態記錄,表示定向到
192.168.178.0/24
(我的家庭網路)的流量應流向 OpenVPN 實例(可能這不是必需的)公共子網路)。 - 除了.之外,我還添加
192.168.178.0/24
到該Specify the private subnets to which all clients should be given access (one per line):
字段(不確定是否需要) 。10.0.0.0/16
- 我已為用於登入的使用者重新配置了使用者權限
Use Routing
,並再次指定了上述兩個子網路(10. 和 192.)。
我仍然可以建立隧道。我可以存取 OpenVPN 實例的內部 IP:
$ traceroute 10.0.4.223
traceroute to 10.0.4.223 (10.0.4.223), 64 hops max, 52 byte packets
1 10.0.4.223 (10.0.4.223) 178.345 ms 174.470 ms 173.680 ms
$
但我無法到達私有子網路中的測試實例:
$ traceroute 10.0.165.139
traceroute to 10.0.165.139 (10.0.165.139), 64 hops max, 52 byte packets
1 172.27.232.1 (172.27.232.1) 194.976 ms 177.014 ms 174.402 ms
2 * * *
3 * * *
4 * * *
^C
$
有趣的是,如果我 ssh 進入我的 OpenVPN 伺服器並嘗試在我啟動隧道的本機工作站上捲曲 NGINX,我將無法存取它。看起來工作站可以存取 OpenVPN 伺服器(請參閱上面的追蹤10.0.4.223
),但 OpenVPN 伺服器無法存取工作站(由於某些原因)。
看起來從工作站發起的流能夠找到通往(以及返回)OpenVPN 實例的路由。然而,從工作站到測試執行個體(以及返回)的路由在某處中斷,並且當從 OpenVPN 執行個體啟動到工作站時,它似乎也中斷了(請參閱curl)。