Рейтинг:1

TcpDump показывает ответ ICMP, но время ожидания PING истекает

флаг pr

Я пытаюсь перенаправить сетевой трафик для определенной учетной записи пользователя (vpnnet) на сервер OpenVPN. Туннель работает нормально, когда подтягивается маршрут по умолчанию, но я не хочу направлять весь трафик через VPN, только для процессов, запущенных с заданным UID. Поэтому я отключил автоматическое подтягивание маршрута по умолчанию и получил следующее:

iptables -t mangle -A ВЫВОД -m owner --uid-owner vpnnet -j MARK --set-mark 42
ip route добавить по умолчанию через 10.1.1.1 таблица 42
ip правило добавить fwmark 42 таблица 42
iptables -t nat -A POSTROUTING -o tun0 -m mark --mark 42 -j SNAT --to-source 10.1.1.100

Местный адрес 10.1.1.100 и 10.1.1.1 является удаленным шлюзом.

ifconfig
tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
        инет 10.1.1.100 сетевая маска 255.255.255.0 пункт назначения 10.1.1.100
        inet6 ****::****::****::****::**** prefixlen 64 scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 100 (UNSPEC)
        Пакеты RX 128 байт 10032 (9,7 КиБ)
        Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
        Пакеты TX 108 байт 8832 (8,6 КиБ)
        Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0
IP-маршрут показать
по умолчанию через 172.31.1.1 dev eth0 proto dhcp metric 100
10.1.1.0/24 dev tun0 proto kernel scope link src 10.1.1.100 метрика 50
172.31.1.0/24 dev eth0 proto kernel scope link src 172.31.1.100 метрика 100
172.31.1.1 dev eth0 proto static Scope Link метрика 100
ip route показать таблицу 42
по умолчанию через 10.1.1.1 dev tun0

При запуске оболочки под пользователем vpnuser и пропинговать DNS-сервер Google 8.8.8.8 пинг имеет 100% потерю пакетов. TcpDump показывает, что запросы отправляются, а ответы приходят на правильный интерфейс:

tcpdump -nn -vv -i tun0
tcpdump: прослушивание на tun0, тип ссылки RAW (Raw IP), размер захвата 262144 байт
20:33:28.938772 ip: (tos 0x0, ttl 64, id 7713, смещение 0, флаги [DF], proto ICMP (1), длина 84)
    10.1.1.100 > 8.8.8.8: Эхо-запрос ICMP, идентификатор 5078, последовательность 1, длина 64
20:33:29.029533 ip: (tos 0x48, ttl 115, идентификатор 0, смещение 0, флаги [нет], прототип ICMP (1), длина 84)
    8.8.8.8 > 10.1.1.100: эхо-ответ ICMP, идентификатор 5078, последовательность 1, длина 64
20:33:29.938962 ip: (tos 0x0, ttl 64, id 7790, смещение 0, флаги [DF], proto ICMP (1), длина 84)
    10.1.1.100 > 8.8.8.8: Эхо-запрос ICMP, идентификатор 5078, последовательность 2, длина 64
20:33:30.029685 ip: (tos 0x48, ttl 115, идентификатор 0, смещение 0, флаги [нет], прототип ICMP (1), длина 84)
    8.8.8.8 > 10.1.1.100: эхо-ответ ICMP, идентификатор 5078, последовательность 2, длина 64
20:33:30.938838 ip: (tos 0x0, ttl 64, id 8152, смещение 0, флаги [DF], proto ICMP (1), длина 84)
    10.1.1.100 > 8.8.8.8: Эхо-запрос ICMP, идентификатор 5078, последовательность 3, длина 64
20:33:31.029179 ip: (tos 0x48, ttl 115, идентификатор 0, смещение 0, флаги [нет], прототип ICMP (1), длина 84)
    8.8.8.8 > 10.1.1.100: эхо-ответ ICMP, идентификатор 5078, последовательность 3, длина 64
пинг 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56 (84) байт данных.
^ С
--- 8.8.8.8 статистика пинга ---
12 пакетов передано, 0 получено, 100% потери пакетов, время 11001 мс

Журнал iptables не показывает отброшенных пакетов.

Операционная система CentOS 7.

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

флаг mx
Опубликуйте решение в ответе ниже, а не в вопросе.
Рейтинг:0
флаг pr

Чтобы ответить на мой собственный вопрос и помочь другим, у которых возникла эта проблема... Фильтрация обратного пути сработала и rp_filter сбросил пакеты, см. объяснение. Решение заключалось в том, чтобы установить значение rp_filter в 2 для тун0 интерфейс.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.