透過 OpenVPN 連接 AWS 和 Azure

透過 OpenVPN 連接 AWS 和 Azure

我正在嘗試透過 OpenVPN 將兩個網路(AWS 和 Azure)連接在一起。我知道其他實作(OpenSwan+Azure GW 等),但我需要最大的可移植性,因為我也將其擴展到其他雲端 vps 提供者。

OpenVPN 閘道之間可以 ping 通對方,每個閘道都可以 ping 通對方網路上的所有 IP,但一個網路上的電腦無法 ping 通另一個網路上的電腦(也無法 ping 通對方閘道)。

我在這裡缺少什麼?似乎很多人都因為各種原因遇到這個問題,但經過 50 多次嘗試後我放棄並決定詢問:)

網路1:

dev tun 連接埠 1194 ifconfig 10.8.223.40 10.8.223.41 路由 10.22.1.0 255.255.255.0 vpn_gateway comp-lzo keepalive 10 60 密碼

ip route
default via 10.0.1.1 dev eth0
10.0.1.0/27 dev eth0  proto kernel  scope link  src 10.0.1.9
10.22.1.0/24 via 10.8.223.41 dev tun0
10.33.0.0/24 via 10.33.0.2 dev tun2
10.33.0.2 dev tun2  proto kernel  scope link  src 10.33.0.1
10.8.223.41 dev tun0  proto kernel  scope link  src 10.8.223.40 

網路2

dev tun 連接埠 1194 遠端 my_ext_ip 1194 ifconfig 10.8.223.41 10.8.223.40 路由 10.0.0.0 255.254.0.0 vpn_gateway comp-perso keepalive 10 760/ 月/p ic.key

ip route
default via 10.22.1.1 dev eth0
10.0.0.0/15 via 10.8.223.40 dev tun0
10.22.1.0/24 dev eth0  proto kernel  scope link  src 10.22.1.9
10.8.223.40 dev tun0  proto kernel  scope link  src 10.8.223.41 

這是我的 iptables 明智的:

兩個網路:iptables -I 轉發 -i eth0 -o tun0 -m conntrack --ctstate 新 -j 接受 iptables -I 轉發 -i tun0 -o eth0 -m conntrack --ctstate 新 -j 接受

網路1:iptables -t nat -A POSTROUTING -s "10.0.0.0/15" -o "eth0" -j MASQUERADE iptables -A FORWARD -p tcp -s 10.0.0.0/15 -d 0.0.0.0/0 -jj ACCEPT

iptables -t nat -A POSTROUTING -s "10.8.223.40/32" -o "eth0" -j MASQUERADE iptables -A FORWARD -p tcp -s 10.8.223.40/32 -d 0.0.0.CE

網路2:iptables -t nat -A POSTROUTING -s "10.22.1.0/24" -o "eth0" -j MASQUERADE iptables -A FORWARD -p tcp -s 10.22.1.0/24 -d 0.0.0.0/0 - ACCEPT

iptables -t nat -A POSTROUTING -s "10.8.223.41/32" -o "eth0" -j MASQUERADE iptables -A FORWARD -p tcp -s 10.8.223.41/32 -d 0.0.0.CE

我的假設是(因為我有單獨的互聯網訪問網關),我現在必須向兩個網路上的每台非網關計算機添加路由,這些計算機將通過本地 OpenVPN 網關路由發送到相反網路的資料包。

我對機器 10.0.1.7 這樣做了:

ip 路由透過 10.0.1.9 新增 10.22.1.0/24

所以現在我有:

預設透過 10.0.1.1 dev eth0 10.0.1.0/27 dev eth0 原型內核範圍連結 src 10.0.1.7 10.22.1.0/24 透過 10.0.1.9 dev eth0 172.1.0/24 透過 10.0.1.9 dev eth0 172.17.0.0/1621.0/162 172.17.0.0/1621.0/162 .

但到 10.22.1.9(對方網關)的追蹤路由仍然沒有到達任何地方...

PS 我的大多數機器都在 Docker 中,但我也從主機得到相同的結果。

任何幫助將不勝感激!

相關內容