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

Вопрос

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

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

  • Спасибо 1
  • Ответы 227
  • Создана
  • Последний ответ

Лучшие авторы в вопросе

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

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

Понятно, я думал на  Ultra или Giga 2. На  Ultra2 c gw у меня работало. Хочу с работы Giga 2 принести попробовать заработает или нет.

  • 0
Опубликовано (изменено)

 

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

2016-06-23 16-04-58.JPG

 

Изменено пользователем Kozlov_Sergey
Это схема сети: прямоугольники - маршрутизаторы, а линии со стрелками - подключения интернета.
  • 0
Опубликовано
В ‎22‎/‎08‎/‎2016 в 17:18, r13 сказал:

Вопреки этой рекомендации так не завелось, писал об этом выше, с указанием gateway все завелось :D

 

В ‎22‎/‎08‎/‎2016 в 17:24, dexter сказал:

Понятно, я думал на  Ultra или Giga 2. На  Ultra2 c gw у меня работало. Хочу с работы Giga 2 принести попробовать заработает или нет.

Так у кого работает, может поделитесь уже описанием-скриптами толково, так и глядишь, все срастется и вдруг добавят фичку в прошивку ? И всем хорошо будет?

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

@Roman_Petrov Со скриптами пока не понятно откуда брать гейт резервного канала

поэтому у меня пока просто хардкод, благо ip меняются редко.

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

Протестировал на крайней 2.06 на Giga 2. Результат следующий.

С ноутбука из локалки пакеты ходят только через один шлюз. Другой доступен и пингуется.

С самого кинетика пакеты ходят с разных интерфейсов, но в основном через один и тот же.

При этом бук через один шлюз, а кинетик в основном через другой. Вес шлюзов был 50/50. 

Ultra 2 это же отрабатывала штатно.

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

Пример

Есть "ifconfig" и "ip" с помощью этих команд и берете нужные вам переменные (а именно зная имена интерфейсов без разницы ppp0 он или ppp1).
У меня один pppoe другой pptp => подняты два ppp интерфейса (два проводных провайдера) => ppp0 и ppp1. Теперь сами варианты

ppp0      Link encap:Point-to-Point Protocol  
          inet addr:хх.хх.хх.204  P-t-P:хх.хх.хх.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:1346 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1120 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:622677 (608.0 KiB)  TX bytes:122811 (119.9 KiB)

ppp1      Link encap:Point-to-Point Protocol  
          inet addr:yy.yy.yy.52  P-t-P:yy.yy.yy.25  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1400  Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1015 (1015.0 B)  TX bytes:1635 (1.5 KiB)

/ # ndmq -p 'show interface PPTP0' -P address

yy.yy.yy.52

/ # ndmq -p 'show interface PPPoE0' -P address
xx.xx.xx.204

...
R_nexthop=`ip route | awk '/nexthop via / {print $1}'`
if [ "$R_nexthop" == "" ]; then
 echo "No router nexthop"
 inet_addr1=`ifconfig ppp0 | grep -i "inet addr:" | cut -f2 -d: | cut -f1 -d " "`
 inet_addr2=`ifconfig ppp1 | grep -i "inet addr:" | cut -f2 -d: | cut -f1 -d " "`
 PtoP_1=`ifconfig ppp0 | awk '/P-t-P/ {print $3}' | cut -f2 -d: | cut -f1 -d " "`
 PtoP_2=`ifconfig ppp1 | awk '/P-t-P/ {print $3}' | cut -f2 -d: | cut -f1 -d " "`
 ...
 route del default
 ip ro flush cache
 ip ro add default scope global nexthop via $inet_addr1 dev ppp0 weight 10 nexthop via $inet_addr2 dev ppp1 weight 10
 echo "Yes router nexthop"
 exit;
fi
...

...

Для прямого аналогично только имена интерфейсов другие. В Cron проверка.

 

  • 0
Опубликовано (изменено)

Я не понимаю: неужели так трудно запрограммировать?

 

Читаешь конфигурацию и bind (привязку сокета) делаешь на нужном интерфейсе и отправляешь данные.

Данные идут в нужном направлении через нужное соединение (соответствующее интерфейсу) к следующему маршрутизатору.

По моему рисунку выше, только нужно учесть, что пакет может прийти по круговому маршруту опять к отправляющему маршрутизатору, путём анализа ip адреса источника или чего-то подобного (уже это делали (есть реализация в допотопных ZyXEL 600 серии)).

 

Это же элементарно на C++ том же сделать.

Вобщем две недели на программирование и тестирование вполне достаточно. Особенно учитывая, что программируется это меньше чем за один рабочий день.

Изменено пользователем Kozlov_Sergey
Дополнил и исправил часть текста
  • 0
Опубликовано (изменено)
15 часов назад, r13 сказал:

@vasek00 с прямым не так, нужен гейт, а его в выводе ifconfig нету

Какая разница, прямой он или "кривой". Смотрим конфиг и пробуем брать от туда  (на данном интерфейсе должен быть маршрут по default ) :
 

interface FastEthernet0/Vlan3
    description VLAN3
    security-level public
    ip address хх.хх.хх.52 255.255.224.0
    ip dhcp client hostname My-Keen
    ip dhcp client dns-routes
    ip dhcp client name-servers
    ip mtu 1500
    ip global 700
    up
!
interface FastEthernet0/3
    name 3
    role inet for FastEthernet0/Vlan3
    switchport mode access
    switchport access vlan 3
    up
!

...

!
ip route default хх.хх.хх.1 FastEthernet0/Vlan3

...

или их будет два, так как два интерфейса для провайдера
 

...

ip route default хх.хх.хх.1 FastEthernet0/Vlan3
ip route default 10.10.10.1 ISP

...

Взять можно прочитав конфиг и взять из него нужные переменные
 

/ # ndmq -p "show running-config" -P message | awk '/^ip route default/'
ip route default хх.хх.хх.1 FastEthernet0/Vlan3
ip route default 10.10.10.1 ISP
/ #

Прогнать по "FastEthernet0/Vlan3" и по "ISP", как душе угодно через awk c grep

/ # ndmq -p "show running-config" -P message | awk '/^ip route default/ {print $4}'
хх.хх.хх.1
10.10.10.1
/ # 

 

Изменено пользователем vasek00
  • 0
Опубликовано

@vasek00 нет его в running-config, есть только роут с основного подключения следующего содержания:

ip route xx.xx.xx.xx ISP auto

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

Имеем два провода от провайдера подключенные к WAN и LAN порту со стат IP адресами для выхода в интернет, в конфиге записи :
 

# ndmq -p "show running-config" -P message
...
!interface FastEthernet0/Vlan2
    name ISP
    description "Broadband connection"
...

   ip address 10.10.10.100 255.255.255.0
...

   up

!interface FastEthernet0/Vlan3
    description VLAN3
 ...
    ip address хх.хх.хх.52 255.255.224.0
....
    up
!

...

!
ip route default хх.хх.хх.1 FastEthernet0/Vlan3
ip route default 10.10.10.1 ISP

...

по маршрутам, по умолчанию у кого приоритет выше там и default

/dev # ip ro | grep default
default via хх.хх.хх.1 dev eth2.3
/dev #

Ваш вид второго подключения, с первым понятно на WAN порту и ISP?

  • 0
Опубликовано (изменено)

@vasek00 У меня 2 Dynamic IP  и ни одной записи вида ip route default в running-config нет,

Видимо в этом разница, для static шлюз указывается в настройках

Изменено пользователем r13
  • 0
Опубликовано

Не покажите выполнение двух команд при одинаковом приоритете, не выключая интерфейс

route del default

ip ro

через некоторое время еще раз

route del default

ip ro

через некоторое время еще раз

route del default

ip ro

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

@vasek00

Было:

default via 95.220.192.1 dev eth2.4
10.1.30.0/24 dev br1  proto kernel  scope link  src 10.1.30.1
10.2.30.0/24 dev br2  proto kernel  scope link  src 10.2.30.1

после удаления через некоторое время проставился роут с 2го интерфейса:

 ip ro
default via 178.140.196.1 dev eth3
10.1.30.0/24 dev br1  proto kernel  scope link  src 10.1.30.1
10.2.30.0/24 dev br2  proto kernel  scope link  src 10.2.30.1

После следующего удаления снова перещелкнулось на 1й интерфейс:

ip ro
default via 95.220.192.1 dev eth2.4
10.1.30.0/24 dev br1  proto kernel  scope link  src 10.1.30.1
10.2.30.0/24 dev br2  proto kernel  scope link  src 10.2.30.1

 

  • 0
Опубликовано (изменено)
1 час назад, r13 сказал:

@vasek00

Было:


default via 95.220.192.1 dev eth2.4

после удаления через некоторое время проставился роут с 2го интерфейса:


default via 178.140.196.1 dev eth3

После следующего удаления снова перещелкнулось на 1й интерфейс:


default via 95.220.192.1 dev eth2.4

 

Ну и определите тогда путем удаления маршрута (командой удаления) и определением из "ip ro" нужного шлюза или если не ждать некоторое время то дополнительно команда

# ip route get 8.8.8.8

покажет интерфейс и его шлюз при текущем default.

ip route | awk '/default/ {print $4}' # тек интерфейс например eth2.4
if [текущ_шлюз=eth2.4] then
ip route | awk '/defualt/ {print $3}' # тек IP шлюза
ip route get 4.4.4.4 # получить тек.IP шлюза
ip route del default
ip route add default dev eth3
ip route get 8.8.8.8 # получить тек.IP шлюз для eth3 
else
...
fi

 

Или смотреть переменные при текущем маршруте default в /opt/etc/ndm/wan.d при запуске в данном каталоге скрипта.

Изменено пользователем vasek00
  • Спасибо 1
  • 0
Опубликовано (изменено)

Нарисовал себе такой скрипт,

Так как провайдеры передают свои DNS в таблице маршрутов, дергаю шлюз из этих записей

#!/opt/bin/sh

dev3_route=`ip route | awk '/77.37.251.33/ {print $3}'`#DNS провайдера на интерфесе eth3
dev2_4_route=`ip route | awk '/212.1.224.6/ {print $3}'`#DNS провайдера на интерфесе eth2.4
R_nexthop=`ip route | awk '/nexthop via / {print $1}'`

if  test "$R_nexthop" = '' && test "$dev3_route" != '' && test "$dev2_4_route" != '' ; then
 echo "Multiwan not running, setting up..."
 ip route del default
 ip ro add default scope global nexthop via $dev3_route dev eth3 weight 10 nexthop via $dev2_4_route dev eth2.4 weight 10
 ip ro flush cache
elif  test "$R_nexthop" != ''; then
 echo "Multiwan already active. Nothing to do."
else
 echo "There is no multiple connections active this time. Exiting."
fi

Теперь вопрос куда его лучше запихнуть? В wan.d?

Изменено пользователем r13
  • 0
Опубликовано

Для ДНС лучше жестко прописать свой маршрут на свой интерфейс, второе при пропадании одного из каналов роутер его поднимет и опять же настройки слетят (будет обычный default, который роутер восстановит согласно своих настроек) => вывод лучше в cron, только для быстроты его работы нужно минимально использовать команды - ip ro и первая проверка на наличие

test "$R_nexthop"

а уже потом все остальное. 

  • Спасибо 1
  • 0
Опубликовано (изменено)
В 02.08.2016 в 18:18, zyxmon сказал:

В Entware-3x собрали свежий вариант. Если что не так - маякните....

etc/iproute2/rt_tables не существует, какой-то др механизм создания таблиц?

что-то непонятное ls /etc/iproute2 не существует, хотя папка в ФС есть

Изменено пользователем Дмитрий
  • 0
Опубликовано
1 час назад, Дмитрий сказал:

etc/iproute2/rt_tables не существует, какой-то др механизм создания таблиц?

что-то непонятное ls /etc/iproute2 не существует, хотя папка в ФС есть

Прям по номеру создавайте и по номеру с ней работайте. Ни в какие файлы прописывать не надо.

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

Хорошая тема, но мне нужно немного другое.

При резервировании второе подключение соединено, как я понимаю, только оно в покое. Как бы пустить трафик с одной машины в локальной сети к серверу шаринга через второе подключение, то бишь 3G usb modem, а весь остальной трафик (youtube, торрент, веб серфинг и т.д.) через основное (проводное) подключение?

Интервал проверки в keenetic минимум 3 сек. Скорей всего потеря пакетов, при которой идут затыки телевидения и является этим интервалом (3 сек). Не шибко уверен и в интервал 1 секунду, что он как то исправит бесшовное (без потери пакетов) переключение на резервный 3G. Но ситуация пускать трафик шаринга постоянно без всякого переключения через 3G модем было б идеальным решением. Что для этого нужно установить, какие команды ввести и т.д.?

Роутер Ultra ii, прошивка v2.08(AAUX.0)A6

 

  • 0
Опубликовано (изменено)

Еще раз проверил на K-II ( v2.06(AAFG.2)C1 ) маршрутизацию через "ip ro add default scope global nexthop", нашел не стыковку в выводах команд WEB и "ip ro", так как все ПО разработка Zyxel то возможно ли что данная не стыковка влиять на работу. В данном режиме активен канал ppp1 получился.

В cat ip_conntrack обнаружено, что только запросы на DNS сервер идут по каналу PPPoEo так как он описан в действующих маршрутах, а все остальные запросы идут на PPTP0 (он в global nexthop строке идет вторым.

Без имени-1.jpg

Без имени-2.jpg

Изменено пользователем vasek00
  • 0
Опубликовано
4 минуты назад, vasek00 сказал:

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

То что на скринах - трафик будет ходить всегда или только при переключении на нужный канал? Если только при переключении, то как сделать через entware на постоянной основе?

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

Все что на скринах трафик ходит по тем маршрутам которые есть в таблице, при пропадании его из таблице трафик ходить естественно не будет.

  • 0
Опубликовано (изменено)
15 минут назад, vasek00 сказал:

Все что на скринах трафик ходит по тем маршрутам которые есть в таблице

Задал я хождение трафика через usb модемное подключение в статит. маршрутах - трафик ходит через него, но потери пакетов и пинг вместо 150-170мс вот такой:

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

ping srv2.utgard.tv
PING srv2.utgard.tv (149.202.240.42) 56(84) bytes of data.
64 bytes from 149.202.240.42: icmp_seq=1 ttl=51 time=729 ms
64 bytes from 149.202.240.42: icmp_seq=2 ttl=51 time=352 ms
64 bytes from 149.202.240.42: icmp_seq=3 ttl=51 time=372 ms
64 bytes from 149.202.240.42: icmp_seq=4 ttl=51 time=332 ms
64 bytes from 149.202.240.42: icmp_seq=5 ttl=51 time=352 ms
64 bytes from 149.202.240.42: icmp_seq=6 ttl=51 time=450 ms
64 bytes from 149.202.240.42: icmp_seq=7 ttl=51 time=428 ms
64 bytes from 149.202.240.42: icmp_seq=8 ttl=51 time=430 ms
64 bytes from 149.202.240.42: icmp_seq=9 ttl=51 time=371 ms
64 bytes from 149.202.240.42: icmp_seq=10 ttl=51 time=410 ms
64 bytes from 149.202.240.42: icmp_seq=11 ttl=51 time=448 ms
64 bytes from 149.202.240.42: icmp_seq=12 ttl=51 time=408 ms
64 bytes from 149.202.240.42: icmp_seq=13 ttl=51 time=410 ms
64 bytes from 149.202.240.42: icmp_seq=14 ttl=51 time=411 ms
64 bytes from 149.202.240.42: icmp_seq=15 ttl=51 time=431 ms
64 bytes from 149.202.240.42: icmp_seq=16 ttl=51 time=470 ms
^C
--- srv2.utgard.tv ping statistics ---
17 packets transmitted, 16 received, 5% packet loss, time 16001ms
rtt min/avg/max/mdev = 332.238/425.788/729.850/87.284 ms
 

Один адрес не прописывал, указал лишь подключение http://joxi.ru/LmG4nRNC9d3Y2l

Изменено пользователем blackride
  • 0
Опубликовано

Ping — утилита для проверки целостности и качества соединений в сетях. TCP - это протокол управления для передачи данных

Цитата

Механизм TCP предоставляет поток данных с предварительной установкой соединения, осуществляет повторный запрос данных в случае потери данных и устраняет дублирование при получении двух копий одного пакета, гарантируя тем самым, в отличие от UDP, целостность передаваемых данных и уведомление отправителя о результатах передачи.

 

Не путайте ping и работу протокола.

  • 0
Опубликовано (изменено)
1 час назад, vasek00 сказал:

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

Большое Вам Спасибо! Почему я сам не догадался пустить так трафик через модем?!)))
Хотя пинг и выходит временами вот такой:
 

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

64 bytes from 149.202.240.42: icmp_seq=359 ttl=51 time=408 ms
64 bytes from 149.202.240.42: icmp_seq=360 ttl=51 time=367 ms
64 bytes from 149.202.240.42: icmp_seq=361 ttl=51 time=687 ms
64 bytes from 149.202.240.42: icmp_seq=362 ttl=51 time=8527 ms
64 bytes from 149.202.240.42: icmp_seq=363 ttl=51 time=7521 ms
64 bytes from 149.202.240.42: icmp_seq=364 ttl=51 time=6531 ms
64 bytes from 149.202.240.42: icmp_seq=365 ttl=51 time=5545 ms
64 bytes from 149.202.240.42: icmp_seq=366 ttl=51 time=4539 ms
64 bytes from 149.202.240.42: icmp_seq=367 ttl=51 time=3567 ms
64 bytes from 149.202.240.42: icmp_seq=368 ttl=51 time=2582 ms
64 bytes from 149.202.240.42: icmp_seq=369 ttl=51 time=1612 ms
64 bytes from 149.202.240.42: icmp_seq=370 ttl=51 time=643 ms
64 bytes from 149.202.240.42: icmp_seq=371 ttl=51 time=562 ms
64 bytes from 149.202.240.42: icmp_seq=372 ttl=51 time=503 ms
 

Но ТВ показывает без сбоев, тьфу тьфу))
Даже не понадобилась entware

Один только вопрос, что то другое не может тратить трафик с 3G, если он постоянно находится в подключенном состоянии? Ну, кроме того что ключи получаю с шаринг сервера, когда смотрю ТВ.

Изменено пользователем blackride
  • 0
Опубликовано (изменено)

Если вы все развернули на Zyxel (так как точно без знания схемы и ваших подключ. устройств в дом.сети) опять же все зависит от маршрута, если он на один сервер то естественно любые обновления или любые приложения будут брать данные из default а не с него. Когда же у вас пропадет основной канал, то система (которая как говориться из коробки) пере настроится на резервный канал и тогда он будет default (от 3G), а вы и не заметите как он им стал.

Изменено пользователем vasek00
  • 0
Опубликовано

Здравствуйте,

Вопрос, насколько критична для использования данной функции моя проблемка с постоянно переподключающемся резервным IPoe каналом? http://forum.keenetic.net/topic/722-----/

Кеш маршрутов чистится этим:

ip ro flush cache

Я так понимаю еще conntrack надо чистить?

Чем грозит если не чистить?

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

Добрый день,

 

Вот задумался о подключении 2-х провайдеров в паре (100+200=300).

Почитал данную тему, и не совсем понял текущую ситуацию по настройке балансировки двух активных WAN... Поясните пожалуйста:
1) Настроить можно, через OPKG?

2) Через UI такой функционал не планируется?

3) Может кто показать пошагово какие команды/скрипты писать?

Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

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

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

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