Linux
無法連接到 vpn 網路中的成員伺服器,反之亦然,但為什麼?
我在 AWS 中為 OpenVPN 概念驗證創建了一個測試 VPC。
在這個 VPC 中,我使用了來自 AWS Marketplace 的 linux 成員伺服器和 OpenVPN 伺服器 AMI,安裝並配置了它。
作為客戶端,我可以
ssh
使用它的 3 個 ip 中的每一個連接到 VPN 網路並進入 OpenVPN 伺服器,但問題是我無法ssh
進入 VPC 主子網中的成員伺服器。OpenVPN 伺服器和成員伺服器之間的網路已完全建立。
詳情如下:
VPC CIDR: 172.16.0.0/16 VPC Main Subnet CIDR: 172.16.200.0/24 VPN CIDR: 172.16.201.0/24 OVPN server: Main Subnet interface: 172.16.200.66 VPN Server interface: 172.16.201.1 VPN Client interface: 172.16.201.129 Member server: Main Subnet interface: 172.16.200.71 My Client IP: 172.16.201.131-134 (disconnected a few times)
此外,我嘗試過使用 NAT,但無濟於事。
當我
tcpdump
在嘗試ssh
從客戶端機器到成員伺服器時從 OVPN 伺服器執行時:openvpnas@openvpnas2:~$ sudo tcpdump -i as0t1 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on as0t1, link-type RAW (Raw IP), capture size 262144 bytes 11:21:52.668974 IP 172.16.201.131.59009 > 172.16.200.71.ssh: Flags [SEW], seq 2266158529, win 65535, options [mss 1252,nop,wscale 5,nop,nop,TS val 758529356 ecr 0,sackOK,eol], length 0 11:21:53.681875 IP 172.16.201.131.59009 > 172.16.200.71.ssh: Flags [S], seq 2266158529, win 65535, options [mss 1252,nop,wscale 5,nop,nop,TS val 758530357 ecr 0,sackOK,eol], length 0
我可以看到 OVPN 伺服器正在嘗試將數據包轉發到成員伺服器,但是在成員伺服器
tcpdump
的介面上執行時,我看到沒有數據包到達。OVPN伺服器上的路由:
$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 172.16.200.1 0.0.0.0 UG 0 0 0 eth0 172.16.200.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 172.16.201.0 0.0.0.0 255.255.255.128 U 0 0 0 as0t0 172.16.201.128 0.0.0.0 255.255.255.128 U 0 0 0 as0t1
成員伺服器上的路由:
$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 172.16.200.1 0.0.0.0 UG 0 0 0 eth0 172.16.200.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 172.16.201.0 172.16.200.66 255.255.255.0 UG 0 0 0 eth0
客戶端(我的筆記型電腦)上的路由,其中一些是我手動添加的:
netstat -nr | grep tun 172.16.200/24 172.16.201.134 UGSc 4 4 utun2 172.16.201/24 172.16.200.66 UGSc 1 2 utun2 172.16.201.134 172.16.201.134 UH 3 4 utun2
OVPN 伺服器上的網路介面:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP group default qlen 1000 link/ether 02:fb:99:4a:67:04 brd ff:ff:ff:ff:ff:ff inet 172.16.200.66/24 brd 172.16.200.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::fb:99ff:fe4a:6704/64 scope link valid_lft forever preferred_lft forever 3: pr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000 link/ether 36:ce:f1:ac:59:42 brd ff:ff:ff:ff:ff:ff inet6 fe80::34ce:f1ff:feac:5942/64 scope link valid_lft forever preferred_lft forever 21: as0t0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 200 link/none inet 172.16.201.1/25 brd 172.16.201.127 scope global as0t0 valid_lft forever preferred_lft forever 22: as0t1: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 200 link/none inet 172.16.201.129/25 brd 172.16.201.255 scope global as0t1 valid_lft forever preferred_lft forever
成員伺服器上的網路介面:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP group default qlen 1000 link/ether 02:c5:62:3b:ef:02 brd ff:ff:ff:ff:ff:ff inet 172.16.200.71/24 brd 172.16.200.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::c5:62ff:fe3b:ef02/64 scope link valid_lft forever preferred_lft forever
還有幾點:
ping
從我的客戶端到成員伺服器:$ ping 172.16.200.71 PING 172.16.200.71 (172.16.200.71): 56 data bytes Request timeout for icmp_seq 0
ping
從我的客戶端到 OVPN 伺服器(使用 VPC 主子網):$ ping 172.16.200.66 PING 172.16.200.66 (172.16.200.66): 56 data bytes 64 bytes from 172.16.200.66: icmp_seq=0 ttl=64 time=87.657 ms
ping
從我的客戶端到 OVPN vpn ip 也可以。這些是我的問題:
- 我應該在 VPC 中創建一個“172.16.201.0”子網(vpn 子網)嗎?(我有,但它沒有解決問題……這只是我嘗試過的事情之一)。
- 好像我錯過了一些東西,也許在 AWS 的配置中,你能試著找出我的問題嗎?
我能想到 3 件事你可以看看
- 就目前而言,172.16.0.0/16 CIDR 範圍內的任何內容都將通過本地路由進行路由,其他 0.0.0.0/0 將通過網際網路網關發送。因為您的 VPN 子網屬於 172.16.0.0/16 範圍,這可能會導致問題。或許:
一種。為您的 VPN 子網選擇不同的地址範圍
灣。確保路由表中有一條通過 VPN 設備將流量路由到該子網的路由
- 您是否查看過與您的 EC2 實例相關聯的安全組?他們是否允許您想要流向那些 EC2 實例的正確流量(在本例中為 SSH)
- 您是否查看過連結到您的 VPC 及其子網的網路 ACL,它們是否允許正確的入站和出站流量?