
У меня есть сервер и виртуальная машина на нем. Я размещаю OpenVPN на этом сервере. Виртуальная машина имеет два интерфейса: ens18 - для публичного IP, ens19 - для внутренней сети. Я пытаюсь пинговать 10.2.0.3 (виртуальный IP-адрес машины на ens19) через VPN, но он не отвечает. Когда я запускаю tcpdump -i ens19 icmp
на виртуальной машине, он возвращает это:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens19, link-type EN10MB (Ethernet), capture size 262144 bytes
16:50:25.931910 IP 10.8.0.2 > 10.2.0.3: ICMP echo request, id 1, seq 80, length 40
16:50:29.381784 IP 10.8.0.2 > 10.2.0.3: ICMP echo request, id 1, seq 81, length 40
Вывод пинга:
Pinging 10.2.0.3 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.
Вывод tcpdump машины:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
15:58:15.007090 IP 10.8.0.2 > 10.2.0.3: ICMP echo request, id 1, seq 45, length 40
Мои правила iptables:
Chain INPUT (policy ACCEPT 2806K packets, 1097M bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- eth0 any anywhere anywhere state RELATED,ESTABLISHED
198K 27M ACCEPT udp -- vmbr0 any anywhere anywhere udp dpt:[my openvn port]
40 2429 ACCEPT all -- tun0 any anywhere anywhere
0 0 ACCEPT all -- tun+ any anywhere anywhere
0 0 ACCEPT all -- tun+ any anywhere anywhere
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
197K 16M ACCEPT all -- tun0 vmbr0 anywhere anywhere
177K 336M ACCEPT all -- vmbr0 tun0 anywhere anywhere
45 2540 ACCEPT all -- tun0 any 10.8.0.0/24 10.2.0.3
2 104 ACCEPT all -- tun0 any 10.8.0.0/24 10.2.0.0/24
0 0 ACCEPT all -- tun+ any anywhere anywhere
Chain OUTPUT (policy ACCEPT 3102K packets, 1303M bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- any tun0 anywhere anywhere
Моя таблица маршрутов:
default via [my public ip] dev vmbr0 proto kernel onlink
10.2.0.0/24 dev vmbr1 proto kernel scope link src 10.2.0.1
10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.1
[my public ip] dev vmbr0 proto kernel scope link src [my gateway]
Список правил IP:
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
Если вам нужна дополнительная информация, добавьте комментарий. Извините за мой плохой английский
решение1
Автор @TomYan
Запустите ip r add 10.8.0.0/24 via 10.2.0.1 на виртуальной машине. Для части VPN добавьте маршрут 10.2.0.0 255.255.255.0 в клиентскую конфигурацию или добавьте push "route 10.2.0.0 255.255.255.0" в серверную конфигурацию, предполагая, что вы используете client / pull в клиентской конфигурации. Обратите внимание, что эти маршруты не нужны, если и виртуальные машины, и клиенты VPN используют сервер в качестве шлюза по умолчанию.