我在AWS中为OpenVPN概念validation创build了一个testingVPC。
在这个VPC中,我已经从AWS Marketplace发布了一个linux成员服务器和一个OpenVPN服务器AMI,并安装并configuration了它。
作为一个客户端,我能够连接到VPNnetworking,并使用它的3个IP中的每一个ssh进入OpenVPN服务器,但问题是我无法ssh进入VPC主子网中的成员服务器。
networking在OpenVPN服务器和成员服务器之间完全build立。
细节是:
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)
我configuration了OpenVPN服务器,如下所示:
和:
另外,我试过使用NAT,但无济于事。
当我试图从客户端机器ssh到成员服务器时从OVPN服务器运行tcpdump :
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服务器上的networking接口:
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
成员服务器上的networking接口:
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
从我的客户端到OVPN VPN的IP也是可行的。
AWS中此VPC的路由表:
这些是我的问题:
我应该在VPC中创build“172.16.201.0”(vpn子网)的子网吗? (我有,但没有解决这个问题…这只是我尝试过的一件事)。
看起来我错过了一些东西,也许在AWS的configuration中,你可以试着find我的问题吗?
我可以想到3件事你可以看看
一个。 为您的VPN子网select不同的地址范围
湾 确保路由表中有路由通过VPN设备将stream量路由到该子网