Jump to content
  • 32

Multiple WAN routing policy


Kozlov_Sergey

Question

Предлагаю добавить возможность в маршрутизаторах Keenetic использовать маршрут по умолчанию на несколько интерфейсов (для 2 подключений интернета одновременно).

  • Thanks 1
Link to comment
Share on other sites

Recommended Posts

  • 0

Так получилось что данный вариант подсчета трафика попал в две темы и в обоих показаны его реализация для подсчета вида и кол-во трафика.

Тут уже вопрос как обрабатывать данные из конечного файл для в вывода в WEB сумировать данные поля или нет.

Link to comment
Share on other sites

  • 0

Вычитал что чтоб ответы на входящие пакеты из резервного интерфейса уходили на резервный интерфейс а не на маршрут по умолчанию надо сделать это:

echo 200 isp2 >> /etc/iproute2/rt_tables
ip rule add from <interface_IP> dev <interface> table isp2
ip route add default via <gateway_IP> dev <interface> table isp2

Как проверить что работает как надо?

Link to comment
Share on other sites

  • 0

Может быть связано "поаккуратнее" с переставшим работать скриптом

Скрытый текст

~ # sh /opt/etc/ndm/wan2.sh
" is wrong: table id value is invalid
" is wrong: table id value is invalid
" is wrong: invalid table ID
" is wrong: invalid table ID
" is wrong: invalid table ID
" is wrong: invalid table ID
" is wrong: invalid table ID
" is wrong: invalid table ID
" is wrong: "table" value is invalid
" is wrong: "table" value is invalid
" is wrong: invalid table ID
" is wrong: invalid table ID
1
iptables v1.4.21: CONNMARK: trailing garbage after value for option "--set-mark".
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.21: CONNMARK: trailing garbage after value for option "--set-mark".
Try `iptables -h' or 'iptables --help' for more information.
2
"ptables v1.4.21: unknown option "--restore-mark
Try `iptables -h' or 'iptables --help' for more information.
7
".ror: ??? prefix is expected rather than "cache
ip ro flush cache

 

Скрипт:

Скрытый текст

#!/opt/bin/sh
#IP1=`ifconfig ppp0 | grep -i "inet addr:" | cut -f2 -d: | cut -f1 -d " "`
#IP2=`ifconfig ppp2 | grep -i "inet addr:" | cut -f2 -d: | cut -f1 -d " "`
#Gat1=`ifconfig ppp0 | awk '/P-t-P/ {print $3}' | cut -f2 -d: | cut -f1 -d " "`
#Gat2=`ifconfig ppp2 | awk '/P-t-P/ {print $3}' | cut -f2 -d: | cut -f1 -d " "`
ip route flush table 101
ip route flush table 102
ip rule delete table 101
ip rule delete table 101
ip rule delete table 102
ip rule delete table 102
ip rule add from `ifconfig ppp0 | grep -i "inet addr:" | cut -f2 -d: | cut -f1 -d " "` table 101
ip rule add from `ifconfig ppp2 | grep -i "inet addr:" | cut -f2 -d: | cut -f1 -d " "` table 102
ip route add default via `ifconfig ppp0 | awk '/P-t-P/ {print $3}' | cut -f2 -d: | cut -f1 -d " "` dev ppp0 table 101
ip route add default via `ifconfig ppp2 | awk '/P-t-P/ {print $3}' | cut -f2 -d: | cut -f1 -d " "` dev ppp2 table 102
ip rule add fwmark 101 table 101
ip rule add fwmark 102 table 102
echo "1"
iptables -t mangle -A INPUT -i ppp0 -j CONNMARK --set-mark 101
iptables -t mangle -A INPUT -i ppp2 -j CONNMARK --set-mark 102
echo "2"
iptables -t mangle -A OUTPUT -j CONNMARK --restore-mark
echo "7"
ip ro flush cache
echo "ip ro flush cache"

 

Хотя если команды копировать в ssh построчно команды выполняются

Edited by TheBB
баг интерфейса vs баг "прямые руки"
Link to comment
Share on other sites

  • 0
В 19.10.2016 в 11:32, Le ecureuil сказал:

mark используется в системе для IPsec и для ppe software, потому аккуратнее.

Для понимания "аккуратнее" надо знать какие маркировки уже заняты IPsec и для ppe software чтоб не пересечься,

посему хотелось бы услышать связанные ограничения поподробнее.

Link to comment
Share on other sites

  • 0
2 часа назад, r13 сказал:

Для понимания "аккуратнее" надо знать какие маркировки уже заняты IPsec и для ppe software чтоб не пересечься,

посему хотелось бы услышать связанные ограничения поподробнее.

cat ip_conntrack

cat nf_conntrack

Link to comment
Share on other sites

  • 0
7 часов назад, r13 сказал:

Для понимания "аккуратнее" надо знать какие маркировки уже заняты IPsec и для ppe software чтоб не пересечься,

посему хотелось бы услышать связанные ограничения поподробнее.

Если совсем просто, то mark нельзя трогать совсем, если настроен IPsec или включен ppe software. Если же метки менять/ставить, то в случае с IPsec могут быть рандомные глюки, в случае с ppe software он просто не будет работать.

  • Thanks 1
Link to comment
Share on other sites

  • 0
21 час назад, r13 сказал:

@Дмитрий А скрипт в винде случайно не редактировали?

Как раз только там, не встречал ограничений ранее.

Как рукой сняло, спасибо!

Edited by Дмитрий
Link to comment
Share on other sites

  • 0
В 03.11.2016 в 17:55, Le ecureuil сказал:

Если совсем просто, то mark нельзя трогать совсем...

Хотелось бы узнать как работает KeenDNS? Решить бы с ним проблему, т.к. он совсем не работает, когда два подключения.

Не понятно, например, по какому критерию определять пакеты, чтоб их засылать в нужную таблицу.

Link to comment
Share on other sites

  • 0

А официальный балансировщик планируется на NDMS? :)

А то можно было бы попросить разобрать, например, Net-ISP-Balance и скресть его с алгоритмами OSPF/EIGRP .. хороший бы зверек мог выйти .. наверное.

Link to comment
Share on other sites

  • 0
35 минут назад, IgaX сказал:

А официальный балансировщик планируется на NDMS? :)

А то можно было бы попросить разобрать, например, Net-ISP-Balance и скресть его с алгоритмами OSPF/EIGRP .. хороший бы зверек мог выйти .. наверное.

EIGRP в домашнем роутере... Не слишком ли круто?

  • Thanks 1
Link to comment
Share on other sites

  • 0
30 минут назад, Le ecureuil сказал:

Не слишком ли круто?

так с алгоритмами, не надо ведь полностью :) .. я просто представил, не более :)

Link to comment
Share on other sites

  • 0
2 минуты назад, IgaX сказал:

так с алгоритмами, не надо ведь полностью :) .. я просто представил, не более :)

Там даже алгоритмы принципиально разные, в EIGRP - плоская дистанционно-векторная маршрутизация, в OSPF - на основе алгоритма Дейкстры (с множеством зон).

Link to comment
Share on other sites

  • 0

Я тоже хочу для увеличения скорости объединить например 2х4g модема. Или одно соединение по wisp а втрое через usb. Чтобы подключения работали не как резервные а вместе. Разве это сложно сделать multiwan? на других же роутерах asus и т.п. это есть.  Вроде эта возможность есть в Openwrt прошивках?

Link to comment
Share on other sites

  • 0
1 минуту назад, Zero-C001 сказал:

Ubiquiti ER-X, стоимость порядка 3к-4к р. :)

 

Это не те те роутеры про которые я писал. Стоит может он и не дорого, но для обычного юзера это не пойдет.

Link to comment
Share on other sites

  • 0
35 минут назад, dexter сказал:

Это не те те роутеры про которые я писал. Стоит может он и не дорого, но для обычного юзера это не пойдет.

Про какие роутеры писали Вы? Этот сможет настроить и домохозяйка (визард есть), только в нем нет WiFi. Я привел достаточный пример "эконом класса" :) для тех, у кого нет желания ждать разработчиков Zyxel с их мультиваном.

Link to comment
Share on other sites

  • 0

Если тема еще жива....

Поднял multiwan, как здесь описано. Работает, но со странностями: исходящий трафик идет на оба интерфейса, но

1) skype постоянно теряет и восстанавливает соединения

2) входящие соединения (через NAT на одном из интерфейсов) постоянно рвутся. Чувствуется, что и в этих соединениях пакеты отправляются с балансировкой то на один, то на другой интерфейс.

Нет ли у кого идей, куда копать ?

конфигурация Ulta, прошивка 2.09 на сегодня последняя, Entware 3.x

Link to comment
Share on other sites

  • 0
3 часа назад, Leonid Goltsblat сказал:

Если тема еще жива....

Поднял multiwan, как здесь описано. Работает, но со странностями: исходящий трафик идет на оба интерфейса, но

1) skype постоянно теряет и восстанавливает соединения

2) входящие соединения (через NAT на одном из интерфейсов) постоянно рвутся. Чувствуется, что и в этих соединениях пакеты отправляются с балансировкой то на один, то на другой интерфейс.

Нет ли у кого идей, куда копать ?

конфигурация Ulta, прошивка 2.09 на сегодня последняя, Entware 3.x

Только в сторону жестко привязать маршрут на нужные сервера.

Link to comment
Share on other sites

  • 0

А теперь предлагаю всем, кто люто голосует за Multiwan "искаропки" описать, как же обычному человеку объяснить все эти глюки, что наблюдает @Leonid Goltsblat (и они очень логичны, и скорее всего в той или иной степени будут проявляться при Multiwan у всех). Плюс рассмотрите вариант с Multiwan, когда у человека будет WAN1 - IPoE, WAN2 - PPPoE DSL с серым адресом, WAN3 - USB свисток с двойным NAT.

На самом деле это основное ограничение для интеграции Multiwan в прошивку (а костылять с привязкой популярных сервисов к одному интерфейсу мы не хотим, это скорее на бред похоже, чем на качественное универсальное решение).

  • Thanks 4
Link to comment
Share on other sites

  • 0

Достаточно понимать формулировку - Multiwan и что в нее вкладывает пользователь.

Multiwan - это подключение к двум и более провайдерам с вариантами : распределение нагрузки по каналам или резервирование основного канала с помощью резервного. С резервированием все понятно, с распределением нагрузки опять же проблемы с пониманием - распределение нагрузки согласно созданной таблицы (ты туда, другой сюда) или random (50%/50% или 30%/70% и т.д.). Но к такому пониманию трудно "приклеить" понятие балансировка - так более подходит "random".

Для начала думаю нужно определиться с понятием, что под этим Multiwan значиться.

Link to comment
Share on other sites

  • 0

Зачем "материтесь"? Какие ещё multiwan, random, балансировка и т.д.? :) Пользователь домашний знаниями не обременённый, из всего сказанного, знает только 2-3 знакомых слова: торренты, IPTV(?), кнопка в веб-интерфейсе...

Link to comment
Share on other sites

  • 0

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

Что касается моих проблем, - неужели все так фатально? Я думаю, либо у меня недонастроено что-то, либо глюк где-то (то ли в прошивке, то ли entware - толком не понятно, как они взаимодействуют и где кончается одно, начинается другое), состоящий в том, что не выдерживается правило "если пара src|dest есть в таблице трансляции, никакие другие правила применяться не должны". Может быть, такое правило можно как-то явно задать ?

Link to comment
Share on other sites

  • 0

Если Вы "меньшевик", то

8 часов назад, Leonid Goltsblat сказал:

знания некоторые кое у кого есть

однако

8 часов назад, Leonid Goltsblat сказал:

... Я думаю, либо у меня недонастроено что-то, либо глюк где-то (то ли в прошивке, то ли entware - толком не понятно...

выходит, что Вы - "большевик"...

Link to comment
Share on other sites

  • 0
12 часа назад, TheBB сказал:

Зачем "материтесь"? Какие ещё multiwan, random, балансировка и т.д.? :) Пользователь домашний знаниями не обременённый, из всего сказанного, знает только 2-3 знакомых слова: торренты, IPTV(?), кнопка в веб-интерфейсе...

Любая техника которую он сегодня приобретает требует от него хоть каких то знаний. Мы живем в 21 веке и если он пользователь не будет знать хоть что-то то я ему не завидую.

Link to comment
Share on other sites

  • 0
15 часов назад, vasek00 сказал:

Достаточно понимать формулировку - Multiwan и что в нее вкладывает пользователь.

Multiwan - это подключение к двум и более провайдерам с вариантами : распределение нагрузки по каналам или резервирование основного канала с помощью резервного. С резервированием все понятно, с распределением нагрузки опять же проблемы с пониманием - распределение нагрузки согласно созданной таблицы (ты туда, другой сюда) или random (50%/50% или 30%/70% и т.д.). Но к такому пониманию трудно "приклеить" понятие балансировка - так более подходит "random".

Для начала думаю нужно определиться с понятием, что под этим Multiwan значиться.

В данной теме multiwan - это маршрут по умолчанию на несколько интерфейсов, о другом тут вроде и не говорят.

Link to comment
Share on other sites

  • 0
1 час назад, Le ecureuil сказал:

В данной теме multiwan - это маршрут по умолчанию на несколько интерфейсов, о другом тут вроде и не говорят.

Запомним, что на данной теме multiwan - это маршрут по умолчанию на несколько интерфейсов

Link to comment
Share on other sites

  • 0
В 14.04.2017 в 23:10, vasek00 сказал:

Только в сторону жестко привязать маршрут на нужные сервера.

Уважаемый, vasek00! Может это и костыль, но проблема решилась. Спасибо!

Собственно, что сделано: в дополнение к строке 
ip rule add from $IP1 table $T1
добавлены еще строки вида
ip rule add from 192.168.x.y table $T1
для каждого из "натируемых" серверов.

Другими словами, получается, что генерируемые ip static странные правила маршрутизации задают проброс внешних пакетов на нужные сервера, но теряют ответы на них в рамках уже установленных соединений. (Фактически, я добавил принудительное направление обратных пакетов на нужный интерфейс.) Разбирательство с содержимым таблиц iptables/netfilter пока отложил.

Link to comment
Share on other sites

  • 0

Уважаемый, vasek00, поясните, пожалуйста, почему в этой теме Вы использовали cron скрипты, а не /opt/etc/ndm/wan.d  callback - и ?

Я подложил свой скрипт именно в wan.d, все работает и не требует, по-моему, корректировок по таймеру. Более того, получилась настройка multiwan из стандартной web-морды: в качестве весов интерфейсов использую приоритеты, задаваемые со стороны прошивки (или через web), при их изменении срабатывает callback, в котором перенастраивается маршрутизация (единственное ограничение: для использования в качестве весов приоритеты интерфейсов не должны превышать 256).

В каких ситуациях этот callback может не сработать? Или cron был использован просто как привычное стандартное средство?

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

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