Jump to content

Question

Posted

У меня на кинетике через 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 сносит крышу и он начинает дурить. Но это не точно. 

4 answers to this question

Recommended Posts

  • 0
Posted

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

  • 0
Posted

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

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

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

 

  • 0
Posted
4 часа назад, Something сказал:

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

 

Opkg -> netfilter.d

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

This site uses cookies. By clicking "I accept" or continuing to browse the site, you authorize their use in accordance with the Privacy Policy.