Добрый день. Есть сервер с CentOS 7 и клиент тоже с CentOS 7. На сервере 2 сетевые карты (Локалка 192.168.0.14 и ppp-сессия с белым IP) и поднят OpenVPN сервер, на клиенте соответственно, OpenVPN клиент и одна сетевуха для локалки (192.168.137.14) и для VPN. И на сервере и на клиенте выставлена net.ipv4.ip_forward=1. Iptables, опять же, на обоих на время тестирования выключен. Защищенный канал устанавливается без проблем, с клиента до локального интерфейса сервера пинг ходит, а вот с сервера интерфейс клиента не пингуется, пакеты на стороны сервера в тоннель попадают (tcpdump логи приложу), а на стороне клиента пакеты не появляются. При этом в обратную сторону (пинг с клиента на сервер) все четко ходит по тоннелю в обе стороны.
Конфиг OpenVPN сервера:
local 7.7.7.7
port 21333
proto tcp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh.pem
server 10.0.0.0 255.255.255.0
route 192.168.137.0 255.255.255.0 # указываем подсеть, к которой будем обращаться через vpn
ifconfig-pool-persist ipp.txt # файл с записями соответствий clinet - ip
client-to-client # позволяет клиентам openvpn подключаться друг к другу
client-config-dir /etc/openvpn/ccd # директория с индивидуальными настройками клиентов
keepalive 10 120
comp-lzo
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log /var/log/openvpn/openvpn.log
verb 3
/etc/openvpn/ccd/client:
iroute 192.168.137.0 255.255.255.0
Конфиг клиента
/etc/openvpn/client.conf
dev tun
proto tcp
remote 7.7.7.7 21333
client
resolv-retry infinite
ca /etc/openvpn/ca.crt
cert /etc/openvpn/client.crt
key /etc/openvpn/client.key
route 192.168.0.0 255.255.255.0
persist-key
persist-tun
comp-lzo
verb 3
status /var/log/openvpn/openvpn-status.log 1
status-version 3
log /var/log/openvpn/openvpn-client.log
ip server:
p a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether f4:f2:6d:03:cd:03 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.14/24 brd 192.168.0.255 scope global enp2s0
valid_lft forever preferred_lft forever
3: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 74:d4:35:49:31:cf brd ff:ff:ff:ff:ff:ff
8: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc pfifo_fast state UNKNOWN qlen 3
link/ppp
inet 7.7.7.7 peer 7.7.7.6/32 scope global ppp0
valid_lft forever preferred_lft forever
26: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
link/none
inet 10.0.0.1 peer 10.0.0.2/32 scope global tun0
valid_lft forever preferred_lft forever
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp2s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 74:d4:35:f6:51:4b brd ff:ff:ff:ff:ff:ff
3: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 60:e3:27:02:30:74 brd ff:ff:ff:ff:ff:ff
inet 192.168.137.14/24 brd 192.168.137.255 scope global enp4s0
valid_lft forever preferred_lft forever
inet6 fe80::62e3:27ff:fe02:3074/64 scope link
valid_lft forever preferred_lft forever
5: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
link/none
inet 10.0.0.6 peer 10.0.0.5/32 scope global tun0
valid_lft forever preferred_lft forever
netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
10.0.0.0 10.0.0.2 255.255.255.0 UG 0 0 0 tun0
10.0.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
7.7.7.7 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 enp2s0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 enp3s0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 enp2s0
192.168.137.0 10.0.0.2 255.255.255.0 UG 0 0 0 tun0
netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.137.1 255.255.255.255 UGH 0 0 0 enp4s0
0.0.0.0 192.168.137.1 0.0.0.0 UG 0 0 0 enp4s0
10.0.0.0 10.0.0.5 255.255.255.0 UG 0 0 0 tun0
10.0.0.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
192.168.0.0 10.0.0.5 255.255.255.0 UG 0 0 0 tun0
192.168.137.0 0.0.0.0 255.255.255.0 U 0 0 0 enp4s0
tcpdump клиента 192.168.137.14 с удачным пингом к серверу 192.168.0.14
00:00:25.297860 IP (tos 0x0, ttl 64, id 47913, offset 0, flags [DF], proto ICMP (1), length 84)
10.0.0.6 > 192.168.0.14: ICMP echo request, id 4647, seq 1, length 64
00:00:00.004469 IP (tos 0x0, ttl 64, id 58091, offset 0, flags [none], proto ICMP (1), length 84)
192.168.0.14 > 10.0.0.6: ICMP echo reply, id 4647, seq 1, length 64
00:00:00.996800 IP (tos 0x0, ttl 64, id 47915, offset 0, flags [DF], proto ICMP (1), length 84)
10.0.0.6 > 192.168.0.14: ICMP echo request, id 4647, seq 2, length 64
00:00:00.002679 IP (tos 0x0, ttl 64, id 58093, offset 0, flags [none], proto ICMP (1), length 84)
192.168.0.14 > 10.0.0.6: ICMP echo reply, id 4647, seq 2, length 64
00:00:00.999285 IP (tos 0x0, ttl 64, id 47916, offset 0, flags [DF], proto ICMP (1), length 84)
10.0.0.6 > 192.168.0.14: ICMP echo request, id 4647, seq 3, length 64
00:00:00.002924 IP (tos 0x0, ttl 64, id 58094, offset 0, flags [none], proto ICMP (1), length 84)
192.168.0.14 > 10.0.0.6: ICMP echo reply, id 4647, seq 3, length 64
tcpdump -i tun0 -n -nn -ttt 'ip proto \icmp' -vv
tcpdump сервера 192.168.0.14 с удачным пингом от клиента до самого сервера:
tcpdump -i tun0 -n -nn -ttt 'ip proto \icmp' -vvvvvv
tcpdump: listening on tun0, link-type RAW (Raw IP), capture size 65535 bytes
00:00:00.000000 IP (tos 0x0, ttl 64, id 47929, offset 0, flags [DF], proto ICMP (1), length 84)
10.0.0.6 > 192.168.0.14: ICMP echo request, id 4649, seq 1, length 64
00:00:00.000032 IP (tos 0x0, ttl 64, id 58107, offset 0, flags [none], proto ICMP (1), length 84)
192.168.0.14 > 10.0.0.6: ICMP echo reply, id 4649, seq 1, length 64
00:00:01.001677 IP (tos 0x0, ttl 64, id 47930, offset 0, flags [DF], proto ICMP (1), length 84)
10.0.0.6 > 192.168.0.14: ICMP echo request, id 4649, seq 2, length 64
00:00:00.000027 IP (tos 0x0, ttl 64, id 58108, offset 0, flags [none], proto ICMP (1), length 84)
192.168.0.14 > 10.0.0.6: ICMP echo reply, id 4649, seq 2, length 64
00:00:01.001401 IP (tos 0x0, ttl 64, id 47931, offset 0, flags [DF], proto ICMP (1), length 84)
10.0.0.6 > 192.168.0.14: ICMP echo request, id 4649, seq 3, length 64
00:00:00.000027 IP (tos 0x0, ttl 64, id 58109, offset 0, flags [none], proto ICMP (1), length 84)
192.168.0.14 > 10.0.0.6: ICMP echo reply, id 4649, seq 3, length 64
Теперь пингуем с севера адрес клиента 192.168.137.14, у нас все три пакета зашли в туннель:
tcpdump сервера 192.168.0.14 с неудачным пингом до клиента
# tcpdump -i tun0 -n -nn -ttt 'ip proto \icmp' -vvvvvv
tcpdump: listening on tun0, link-type RAW (Raw IP), capture size 65535 bytes
00:00:00.000000 IP (tos 0x0, ttl 64, id 28416, offset 0, flags [DF], proto ICMP (1), length 84)
10.0.0.1 > 192.168.137.14: ICMP echo request, id 31588, seq 1, length 64
00:00:00.999646 IP (tos 0x0, ttl 64, id 28417, offset 0, flags [DF], proto ICMP (1), length 84)
10.0.0.1 > 192.168.137.14: ICMP echo request, id 31588, seq 2, length 64
00:00:00.999998 IP (tos 0x0, ttl 64, id 28418, offset 0, flags [DF], proto ICMP (1), length 84)
10.0.0.1 > 192.168.137.14: ICMP echo request, id 31588, seq 3, length 64
tcpdump клиента 192.168.137.14 с неудачным пингом от сервера до клиента
# tcpdump -i tun0 -n -nn -ttt 'ip proto \icmp' -vv
tcpdump: listening on tun0, link-type RAW (Raw IP), capture size 65535 bytes
Получается, в тоннель от сервера пакеты зашли, но на клиенте они не вышли. Как такое может быть? Подскажите, пожалуйста, куда копать дальше?