Сервер не отвечает на пинги, направленные через vpn

Сервер не отвечает на пинги, направленные через vpn

У меня есть сервер и виртуальная машина на нем. Я размещаю 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 используют сервер в качестве шлюза по умолчанию.

Связанный контент