У меня есть сервер OpenVPN, работающий на Ubuntu 12.04 в AWS VPC с 3 подсетями. Я могу подключить своего клиента и могу пинговать сервер (10.8.0.1) без проблем, однако я не могу связаться ни с одной другой машиной в VPC с моего клиента.
Немного справочной информации:
Я могу пропинговать сервер с него самого.
Я могу пинговать сервер с клиента.
Я НЕ МОГУ пропинговать клиента с сервера.
Я могу пинговать машины в VPC с сервера.
Я НЕ МОГУ пинговать машины в VPC (кроме сервера) со своего клиента.
Я включил переадресацию IPV4 на сервере.
Я отключил проверку источника/назначения.
Я настроил таблицы маршрутизации в VPC для маршрутизации трафика 10.8.0.0/16 на мой экземпляр OpenVPN.
Подсети VPC:
10.0.0.0/24
10.0.1.0/24
10.0.2.0/24
Сервер OpenVPN работает на 10.0.2.0/24, и я могу выполнить с него ping на любой сервер в других подсетях, но клиент не может получить доступ ни к чему в подсетях.
Конфигурация сервера:
port 80
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh1024.pem
server 10.8.0.0 255.255.0.0
ifconfig-pool-persist ipp.txt
push "route 10.0.0.0 255.0.0.0"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
tls-auth ta.key 0 # This file is secret
comp-lzo
max-clients 100
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log openvpn.log
verb 6
mute 20
Конфигурация клиента:
client
dev tun
proto tcp
remote xx.xx.xxx.xxx 80
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert olo-imac.crt
key olo-imac.key
tls-auth ta.key 1
comp-lzo
verb 3
Маршруты сервера:
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.0.2.1 0.0.0.0 UG 100 0 0 eth0
10.0.2.0 * 255.255.255.0 U 0 0 0 eth0
10.8.0.0 10.8.0.2 255.255.0.0 UG 0 0 0 tun0
10.8.0.2 * 255.255.255.255 UH 0 0 0 tun0
Клиентские маршруты:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.36.1 192.168.36.120 10
10.0.0.0 255.0.0.0 10.8.0.5 10.8.0.6 30
10.8.0.1 255.255.255.255 10.8.0.5 10.8.0.6 30
10.8.0.4 255.255.255.252 On-link 10.8.0.6 286
10.8.0.6 255.255.255.255 On-link 10.8.0.6 286
10.8.0.7 255.255.255.255 On-link 10.8.0.6 286
127.0.0.0 255.0.0.0 On-link 127.0.0.1 306
127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
192.168.36.0 255.255.255.0 On-link 192.168.36.120 266
192.168.36.120 255.255.255.255 On-link 192.168.36.120 266
192.168.36.255 255.255.255.255 On-link 192.168.36.120 266
224.0.0.0 240.0.0.0 On-link 127.0.0.1 306
224.0.0.0 240.0.0.0 On-link 192.168.36.120 266
224.0.0.0 240.0.0.0 On-link 10.8.0.6 286
255.255.255.255 255.255.255.255 On-link 127.0.0.1 306
255.255.255.255 255.255.255.255 On-link 192.168.36.120 266
255.255.255.255 255.255.255.255 On-link 10.8.0.6 286
решение1
В ответ на комментарии CIGuy выше.
Запустите tcpdump на вашем сервере OpenVPN. Вы сможете увидеть, действительно ли пакеты пересылаются с сервера на другие хосты в удаленной сети.
Что-то вроде:
tcpdump -i any -v host <ip>
где находится ip, который вы пытаетесь пинговать. Вы также можете записать захват пакетов в файл для последующего анализа в wireshark, добавив
-s0 -w somefile.pcap
Имейте в виду, что некоторые версии tcpdump выполняют chroot-переход, поэтому если somefile.pcap не отображается там, где вы ожидаете, проверьте /var/lib/tcpdump/