LINUX.ORG.RU

Маршрутизация ovpn

 , ,


0

1

Добрый день!

Есть машина :

uname -a
Linux Ub-Server 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:18:00 UTC 2015 i686 i686 i686 GNU/Linux

с установленным клиентом Ovpn, при старте клиента все работает нормально - трафик идет через сервер vpn.

Изменил таблицу маршрутизации:

# ip route show table main 
default tos reliability via 10.8.2.9 dev tun0
default dev ppp0  scope link
10.8.2.0/24 dev tun0  scope link
10.8.2.9 dev tun0  proto kernel  scope link  src 10.8.2.10
10.64.64.64 dev ppp0  proto kernel  scope link  src 10.151.132.140
nnn.mmm.kkk.223 dev ppp0  scope link
192.168.0.0/24 dev eth1  proto kernel  scope link  src 192.168.0.10
Т.е. если трафик tos != 0x04 тогда идет в обход ovpn, иначе через ovpn.

Проблема в том, что по команде: # ping -Q 0x04 8.8.8.8
Ничего не происходит PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.

Хотя tcpdump ловит трафик:

#  tcpdump -v -i tun0
tcpdump: listening on tun0, link-type RAW (Raw IP), capture size 65535 bytes
17:23:08.574876 IP (tos 0x4, ttl 64, id 61998, offset 0, flags [DF], proto ICMP (1), length 84)
    10.8.2.10 > google-public-dns-a.google.com: ICMP echo request, id 5554, seq 1, length 64
17:23:08.668652 IP (tos 0x0, ttl 48, id 0, offset 0, flags [none], proto ICMP (1), length 84)
    google-public-dns-a.google.com > 10.8.2.10: ICMP echo reply, id 5554, seq 1, length 64
17:23:09.582730 IP (tos 0x4, ttl 64, id 62041, offset 0, flags [DF], proto ICMP (1), length 84)
    10.8.2.10 > google-public-dns-a.google.com: ICMP echo request, id 5554, seq 2, length 64
17:23:09.652645 IP (tos 0x0, ttl 48, id 0, offset 0, flags [none], proto ICMP (1), length 84)
    google-public-dns-a.google.com > 10.8.2.10: ICMP echo reply, id 5554, seq 2, length 64
17:23:10.590727 IP (tos 0x4, ttl 64, id 62227, offset 0, flags [DF], proto ICMP (1), length 84)
    10.8.2.10 > google-public-dns-a.google.com: ICMP echo request, id 5554, seq 3, length 64
17:23:10.657501 IP (tos 0x0, ttl 48, id 0, offset 0, flags [none], proto ICMP (1), length 84)
    google-public-dns-a.google.com > 10.8.2.10: ICMP echo reply, id 5554, seq 3, length 64
17:23:11.598732 IP (tos 0x4, ttl 64, id 62323, offset 0, flags [DF], proto ICMP (1), length 84)
    10.8.2.10 > google-public-dns-a.google.com: ICMP echo request, id 5554, seq 4, length 64
17:23:11.668639 IP (tos 0x0, ttl 48, id 0, offset 0, flags [none], proto ICMP (1), length 84)
    google-public-dns-a.google.com > 10.8.2.10: ICMP echo reply, id 5554, seq 4, length 64
17:23:12.606735 IP (tos 0x4, ttl 64, id 62430, offset 0, flags [DF], proto ICMP (1), length 84)
    10.8.2.10 > google-public-dns-a.google.com: ICMP echo request, id 5554, seq 5, length 64
17:23:12.674600 IP (tos 0x0, ttl 48, id 0, offset 0, flags [none], proto ICMP (1), length 84)
    google-public-dns-a.google.com > 10.8.2.10: ICMP echo reply, id 5554, seq 5, length 64
Т.е пакеты на интерфейс tun0 приходят и уходят.

Без tos команда проходит, все хорошо.

Если маршрут с tos заменить на 2 дефолтных 0/1 tun0; и 128.0.0.0/1 tun0 - то все работает независимо от байта tos.

В чем проблема?

****Здесь работает спойлер?


Ответ на: комментарий от vel

Спасибо помогло, но только если в ноль сбросить

/proc/sys/net/ipv4/conf/all/rp_filter

Пробовал по отдельности/вместе для своих основных интерфейсов - ppp0, tun0 и eth1 - не работало.

Barlo ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.