Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Объединение двух интернет каналов в один.  (Прочитано 3407 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн gaterkik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Есть два сетевых интерфейса eth0 и wlan0. Подключены к двум разным роутерам разных провайдеров.
Хочется добиться суммирования скорости и в случае падения одного из каналов нагрузка полностью ложилась на оставшийся.
Нашел замечательную, похожую на нужную статью https://help.ubuntu.ru/wiki/ip_balancing . Выбрал Способ2.
Но т.к. я новичек в Linuxе, сложно понять что нужно отредактировать под мои условия.
В этом собственно и прошу помощи.

ifconfig -a
(Нажмите, чтобы показать/скрыть)
route
(Нажмите, чтобы показать/скрыть)
cat /etc/resolv.conf
(Нажмите, чтобы показать/скрыть)


Первые эксперименты. При запуска routing.sh выдает "RTNETLINK answers: Invalid argument".

Оффлайн fli

  • Активист
  • *
  • Сообщений: 257
    • Просмотр профиля
Re: Объединение двух интернет каналов в один.
« Ответ #1 : 24 Сентября 2013, 10:32:19 »
Покажите файл с переменными /etc/balance/vars, используя тэг "код".

Оффлайн gaterkik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: Объединение двух интернет каналов в один.
« Ответ #2 : 24 Сентября 2013, 20:00:06 »
cat /etc/balance/vars

#!/bin/bash
 
# LAN interface

 
# WAN interface 1
IF1="wlan0"
 
# WAN interface 2
IF2="eth0"
 
IP1="192.168.1.17"
IP2="192.168.1.15"
 
# gateway 1
P1="192.168.1.1"
# gateway 2
P2="192.168.1.2"
 
# LAN netmask

# WAN1 netmask
P1_NET="192.168.1.0/24"
# WAN2 netmask
P2_NET="192.168.1.0/24"
 
 
TBL1="provider1"
TBL2="provider2"
 
# Realtive weight of channels bandwidth
W1="1"
W2="1"

Оффлайн fli

  • Активист
  • *
  • Сообщений: 257
    • Просмотр профиля
Re: Объединение двух интернет каналов в один.
« Ответ #3 : 24 Сентября 2013, 22:05:06 »
После запуска скрипта  routing.sh покажите вывод команды
ip rИ добавьте в этот скрипт после строчки
echo "1" > /proc/sys/net/ipv4/ip_forward
ip rule del from $IP1 table $TBL1 > /dev/null 2>&1
ip rule del from $IP2 table $TBL2 > /dev/null 2>&1

Оффлайн gaterkik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: Объединение двух интернет каналов в один.
« Ответ #4 : 24 Сентября 2013, 22:25:30 »
Добавил. Ошибка теперь RTNETLINK answers: File exists

ip r
(Нажмите, чтобы показать/скрыть)

Оффлайн fli

  • Активист
  • *
  • Сообщений: 257
    • Просмотр профиля
Re: Объединение двух интернет каналов в один.
« Ответ #5 : 24 Сентября 2013, 22:30:24 »
показывайте еще:
ip rule list
ip route show table provider1
ip route show table provider2
метрику вы ставили?
Что за сеть 169.254.0.0/16 ?

Оффлайн gaterkik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: Объединение двух интернет каналов в один.
« Ответ #6 : 24 Сентября 2013, 22:35:56 »
ip rule list
(Нажмите, чтобы показать/скрыть)

ip route show table provider1
(Нажмите, чтобы показать/скрыть)

ip route show table provider2
(Нажмите, чтобы показать/скрыть)

provider1 через wlan0 должен получаться, а там eth0 указан.
Метрику не ставил.
Что за сеть и откуда там это взялось не представляю.

Оффлайн fli

  • Активист
  • *
  • Сообщений: 257
    • Просмотр профиля
Re: Объединение двух интернет каналов в один.
« Ответ #7 : 24 Сентября 2013, 22:45:51 »
ip route show table provider2
(Нажмите, чтобы показать/скрыть)
Исправьте в скрипте на $IF1 (wlan)

Оффлайн gaterkik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: Объединение двух интернет каналов в один.
« Ответ #8 : 24 Сентября 2013, 22:50:39 »
Что в скрипте исправить на $IF1 (wlan)?

Вот routing.sh
#!/bin/bash
 
. /etc/balance/vars
 
echo "1" > /proc/sys/net/ipv4/ip_forward
 
ip rule del from $IP1 table $TBL1 > /dev/null 2>&1
ip rule del from $IP2 table $TBL2 > /dev/null 2>&1

ip route add $P1_NET dev $IF1 src $IP1 table $TBL1 > /dev/null 2>&1
ip route add default via $P1 table $TBL1 > /dev/null 2>&1
ip route add $P2_NET dev $IF2 src $IP2 table $TBL2 > /dev/null 2>&1
ip route add default via $P2 table $TBL2 > /dev/null 2>&1
 
ip route add $P1_NET dev $IF1 src $IP1 > /dev/null 2>&1
ip route add $P2_NET dev $IF2 src $IP2
 
ip route add default via $P1 > /dev/null 2>&1
 
ip rule add from $IP1 table $TBL1 > /dev/null 2>&1
ip rule add from $IP2 table $TBL2 > /dev/null 2>&1
 
 
ip route add $P2_NET   dev $IF2 table $TBL1 > /dev/null 2>&1
ip route add 127.0.0.0/8 dev lo  table $TBL1 > /dev/null 2>&1
ip route add $P1_NET   dev $IF1 table $TBL2 > /dev/null 2>&1
ip route add 127.0.0.0/8 dev lo  table $TBL2 > /dev/null 2>&1
 
iptables -t nat -F POSTROUTING

Оффлайн fli

  • Активист
  • *
  • Сообщений: 257
    • Просмотр профиля
Re: Объединение двух интернет каналов в один.
« Ответ #9 : 24 Сентября 2013, 23:30:36 »
Цитировать
default via 192.168.1.1 dev eth0

а нужно wlan.

ip route add default via $P1 table $TBL1 > /dev/null 2>&1
ip route add default via $P2 table $TBL2 > /dev/null 2>&1
Попробуйте указать явно:
ip route add default dev $IF1  via $P1 table $TBL1 > /dev/null 2>&1
ip route add default dev $IF2  via $P2 table $TBL2 > /dev/null 2>&1
« Последнее редактирование: 24 Сентября 2013, 23:32:41 от fli »

Оффлайн gaterkik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: Объединение двух интернет каналов в один.
« Ответ #10 : 24 Сентября 2013, 23:46:13 »
Добавил эти строки в скрипт.
Вывод команды ip route show table provider1 после запуска скрипта не меняется.
default via 192.168.1.1 dev eth0
127.0.0.0/8 dev lo  scope link
192.168.1.0/24 dev wlan0  scope link  src 192.168.1.17

Оффлайн fli

  • Активист
  • *
  • Сообщений: 257
    • Просмотр профиля
Re: Объединение двух интернет каналов в один.
« Ответ #11 : 24 Сентября 2013, 23:53:59 »
Нужно было изменить процитированные.
попробуйте их в терминале выполнить, заменив переменные значениями.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28515
    • Просмотр профиля
Re: Объединение двух интернет каналов в один.
« Ответ #12 : 25 Сентября 2013, 00:08:47 »
Если вам надо не добавлять, а заменять маршрут, я бы на вашем месте использовал
ip route replace ...

Впрочем, я не вчитывался особо в вашу переписку, и допускаю, что мой ответ ни к селу, ни к городу...
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн gaterkik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: Объединение двух интернет каналов в один.
« Ответ #13 : 25 Сентября 2013, 00:11:36 »
Выполнил в терминале
ip route add default dev wlan0 via 192.168.1.1 table provider1 > /dev/null 2>&1
ip route add default dev eth via 192.168.1.2 table provider2 > /dev/null 2>&1
Ошибок не выдало.
Вот результат команд iproute show table
(Нажмите, чтобы показать/скрыть)

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28515
    • Просмотр профиля
Re: Объединение двух интернет каналов в один.
« Ответ #14 : 25 Сентября 2013, 00:19:41 »
gaterkik, вы меня извините, но у вас тихий ужас в таблицах творится.
ЗАЧЕМ в них пишется всякое... непонятное?
В каждой провайдерской таблице должен быть один маршрут - дефолтный через свой шлюз. ВСЁ.

Пользователь решил продолжить мысль 25 Сентября 2013, 00:22:32:
Вот кстати текущая позиция со шлюза с аналогичной настройкой (правда, там задача обратная, но принцип настройки маршрутизации идентичен.)
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 25 Сентября 2013, 00:22:32 от AnrDaemon »
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.027 секунд. Запросов: 21.