Перейти к содержанию

Вопрос

Опубликовано

У меня на кинетике через opkg установлен Debian, поэтому все команды выполняю через него. 

И получается странная ерунда с маршрутизацией. У меня подключено два(на самом деле больше) внешних интерфейсов для выхода наружу. Если я ставлю маршрутизацию безусловно на dst ip все работает, если через маркирование пакетов, то глючит :(

Создаю отдельную таблицу для маршрутов

ip rule add table 1001 priority 1001
ip route add default via zzz.zzz.zzz.zzz table 1001
ip rule add to xxx.xxx.xxx.xxx table 1001

Делаю с клиента из локальной сети трейс, все идет через интерфейс zzz.zzz.zzz.zzz и отлично работает.

Делаю немного по другому:
ip rule add fwmark 0x1 table 1001 priority 1001
ip route add default via zzz.zzz.zzz.zzz table 1001

и потом
iptables-legacy -t mangle -A PREROUTING --dst xxx.xxx.xxx.xxx -j MARK --set-mark 0x1

Все начинает работать странно, трейс показывает, что все проходит правильным маршрутом. Но при попытке получения данных после нескольких пакетов соединение зависает и потом рвется по таймаутам. Можно сделать wget с xxx.xxx.xxx.xxx скажем файла в 5Кб, это без проблем, иногда можно даже 1Мб, предугадать когда произойдет зависание соединения невозможно. Ставлю "жесткую" маршрутизацию, проблем нет. Ставлю через маркировку пакетов, и работать становится невозможно :( 

P.S. Да, это связано с попыткой обхода некоторых ограничений РКН :) Поэтому список IP адресов для альтернативной маршрутизации мне удобнее хранить в ipset. Просто чтобы не искать ошибки в других местах я упростил задачу по максимуму, я реально подключил кинетик вторым интерфейсом(без vpn), через другой маршрутизатор в сеть и пытаюсь локализовать проблему. Если смотреть на кинетике что ходит по интерфейсу zzz.zzz.zzz.zzz, то иногда там видно, что пытаются пройти пакеты на адрес локальной сети откуда идет запрос, есть предположение, что у NAT сносит крышу и он начинает дурить. Но это не точно. 

Рекомендуемые сообщения

  • 0
Опубликовано

Да вроде это вполне нормальная вещь, когда надо что либо делать с большими объемами IP адресов. Особенно, если изменения идут динамически. На обычном дебиане проблем с этим нет. 

  • 0
Опубликовано

Путем анализа tcpdump со всех сторон было выяснено, что не все пакеты маркируются как надо, соответственно не все идут по нужному маршруту, проблема решилась добавлением еще одного правила:
iptables-legacy -t mangle -A PREROUTING --dst xxx.xxx.xxx.xxx -j CONNMARK --set-mark 0x1

При этом предыдущее правило должно остаться, их должно быть два. Если убрать предыдущее и оставить только новое, то ничего работать не будет. 

Теперь осталось только найти, где в кинетике прописать добавление своих правил при применении/изменении настроек  :) 

 

  • 0
Опубликовано
4 часа назад, Something сказал:

Теперь осталось только найти, где в кинетике прописать добавление своих правил при применении/изменении настроек  :) 

 

Opkg -> netfilter.d

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.