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


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Объединение пропускной способности двух интернет каналов и простая отказоустойчи  (Прочитано 1489 раз)

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

Оффлайн vismuth

  • Автор темы
  • Активист
  • *
  • Сообщений: 272
    • Просмотр профиля
Вопрос такой как объединить два провайдера и локальную сеть через UbuntuServer 12.04?
Схема подключение такая:
eth0 подключен провайдер №1 и он подключается тупа через dhcp не логина и пароля, как обычная локалка
eth1 подключен провайдер №2 он подключается с помощью dhcp и по протоколу PPPoE в интернет там и логин и пароль
eth2 подключается не посредственно к локальной сети и у него стоит статик

нашел скрипт на оф.сайте ubuntu

вот оригинал
cat /etc/balance/vars

#!/bin/bash
 
# LAN interface
IF0="eth1"
 
# WAN interface 1
IF1="eth0"
 
# WAN interface 2
IF2="ppp0" # А здесь что нужно писать? pppoe
 
IP1="194.9.xx.xx" #Вот здесь что нужно писать dhcp если нету статика?
IP2="`ip addr show $IF2 | grep inet | awk '{print $2}'`"
 
# gateway 1
P1="194.9.xx.xx"
# gateway 2
P2="195.5.xx.xx"
 
# LAN netmask
P0_NET="192.168.0.0/24"
# WAN1 netmask
P1_NET="194.9.xx.xx/xx"
# WAN2 netmask
P2_NET="195.5.xx.xx/xx"
 
 
TBL1="provider1"
TBL2="provider2"
 
# Realtive weight of channels bandwidth
W1="2"
W2="1"

/etc/iproute2/rt_tables

echo "1 provider1" >> /etc/iproute2/rt_tables
echo "2 provider2" >> /etc/iproute2/rt_tables

/etc/balance/routing.sh

#!/bin/bash
 
. /etc/balance/vars
 
echo "1" > /proc/sys/net/ipv4/ip_forward
 
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 $P0_NET   dev $IF0 table $TBL1 > /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 $P0_NET   dev $IF0 table $TBL2 > /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
iptables -t nat -A POSTROUTING -s $P0_NET -o $IF1 -j MASQUERADE       
iptables -t nat -A POSTROUTING -s $P0_NET -o $IF2 -j MASQUERADE


cat /etc/balance/check.sh
 
#!/bin/bash
. /etc/balance/vars
 
OLDIF0=0
OLDIF1=0
 
. /etc/balance/routing.sh
while true; do
 
 
ping -c 3 -s 100 $P0 -I $IF0 > /dev/null
if [ $? -ne 0 ]; then
echo "Failed IF0!"
NEWIF0=0
else
NEWIF0=1
fi
 
ping -c 3 -s 100 $P1 -I $IF1 > /dev/null
if [ $? -ne 0 ]; then
  echo "Failed IF1!"
  NEWIF1=0
else
  NEWIF1=1
fi
 
if (( ($NEWIF0!=$OLDIF0) || ($NEWIF1!=$OLDIF1) )); then
  echo "Changing routes"
 
  if (( ($NEWIF0==1) && ($NEWIF1==1) )); then
  echo "Both channels"
  ip route delete default
  ip route add default scope global nexthop via $P0 dev $IF0 weight $W0 \
    nexthop via $P1 dev $IF1 weight $W2
  elif (( ($NEWIF0==1) && ($NEWIF1==0) )); then
  echo "First channel"
  ip route delete default
  ip route add default via $P0 dev $IF0
  elif (( ($NEWIF0==0) && ($NEWIF1==1) )); then
  echo "Second channel"
  ip route delete default
  ip route add default via $P1 dev $IF1
  fi
 
else
  echo "Not changed"
fi
 
OLDIF0=$NEWIF0
OLDIF1=$NEWIF1
sleep 3
done

вот как переделать под мою конфигурацию подключения?

Уже трети сутки ни как((( ставлю любого сайт пинг отключаю механически шнурок с eth0 порта и пинг прекращается(((

Помогите а то мозг в зарвется уже
BitFenix Shinobi Black / Corsair CX430M 430W / intel S1200RPS / Intel Xeon E3-1220V3 / DDR3L 4x8Gb PC3-12800 / LSI MegaRAID SAS 9240-8i / HDD 4x500Gb RAID10 / HotSwap  Icy DOCK mb994sp-4s 4 /

Оффлайн Lipton_lan

  • Новичок
  • *
  • Сообщений: 38
  • Lipton это не только чай...
    • Просмотр профиля
по моему все гораздо проще, можно настроить сетевки через нетворк менеджер, а управлять ими с помощью 2х скриптов... Алгоритм такой:
1й скрипт \script1.sh\:
#!/bin/bash
ifconfig eth1 down
while :; do
ping www.ru -c 4
if [ "$?" != "0" ]; then
ifconfig eth0 down
ifconfig eth1 up
sh script2.sh &
fi
sleep 300 #ну, тут можно любое время задать
done

2й скрипт \script2.sh\
#!/bin/bash
ifconfig eth0 down
while :; do
ping www.ru -c 4
if [ "$?" != "0" ]; then
ifconfig eth1 down
ifconfig eth0 up
sh script1.sh &
fi
sleep 300 #ну, ты понял :)
done
то есть смысл в том, что если инет отпал на одной сетевке, она гасится и поднимается другая и наоборот.
при поднятии интерфейсов нетворк менеджер будет автоматом настройки подсовывать... Как то так :)
UPD Не вчитывался, тут только отказоустойчивость, объединения каналов нет...
« Последнее редактирование: 03 Июля 2013, 17:37:48 от Lipton_lan »
"Я нашел 1000 неправильных способов обугливания нити накаливания. Осталось найти еще один правильный..." (с) Томас Эдисон.

Оффлайн vismuth

  • Автор темы
  • Активист
  • *
  • Сообщений: 272
    • Просмотр профиля
А где это Network manager?

и куда кидать эти два файла в /etc?

А локальная сеть будет работать?
« Последнее редактирование: 03 Июля 2013, 18:47:30 от vismuth »
BitFenix Shinobi Black / Corsair CX430M 430W / intel S1200RPS / Intel Xeon E3-1220V3 / DDR3L 4x8Gb PC3-12800 / LSI MegaRAID SAS 9240-8i / HDD 4x500Gb RAID10 / HotSwap  Icy DOCK mb994sp-4s 4 /

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12134
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Lipton_lan, чуточку не прав - NM в сервере нет (это десктопная утилита). Он просто заменяет настройку через /etc/network/interfaces

Но, в целом, все, что касается самих соединений (WAN1, Wan2, LAN) надо настроить в /etc/network/interfaces.
А вот роутинг, переключение гейтов - это надо настраивать уже по готовым соединениям (там уже надо оперировать линками, а не их параметрами).

Идея двух скриптов, предложенных Lipton_lan, в том что они вызывают друг друга в бесконечном цикле и мониторят линки. Кинуть их можно куда угодно - главное в один каталог и запускать (любой из них) надо с рутовыми привелегиями.


В скриптах которые вы нашли используется утилита balance - ее можно поставить и почитать маны - думаю многое станет яснее.
« Последнее редактирование: 03 Июля 2013, 18:57:36 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн vismuth

  • Автор темы
  • Активист
  • *
  • Сообщений: 272
    • Просмотр профиля
В скриптах которые вы нашли используется утилита balance - ее можно поставить и почитать маны - думаю многое станет яснее.

Читал только я не въехал как и чего(((
вот и не получается не как уже четвертые сутки
BitFenix Shinobi Black / Corsair CX430M 430W / intel S1200RPS / Intel Xeon E3-1220V3 / DDR3L 4x8Gb PC3-12800 / LSI MegaRAID SAS 9240-8i / HDD 4x500Gb RAID10 / HotSwap  Icy DOCK mb994sp-4s 4 /

Оффлайн Lipton_lan

  • Новичок
  • *
  • Сообщений: 38
  • Lipton это не только чай...
    • Просмотр профиля
А где это Network manager?
Lipton_lan, чуточку не прав - NM в сервере нет (это десктопная утилита). Он просто заменяет настройку через /etc/network/interfaces
собственно тогда просто туда и прописать настройки.
Цитировать
А локальная сеть будет работать?
да, ее скрипты не касаются, только eth0 и eth1
Скрипты можешь кинуть в любой каталог, главное их запускать от рута. Можно для автозагрузки прописать любой из них в /etc/rc.local таким образом
sh /путь/до/скрипта/script1.sh &
« Последнее редактирование: 04 Июля 2013, 13:29:47 от Lipton_lan »
"Я нашел 1000 неправильных способов обугливания нити накаливания. Осталось найти еще один правильный..." (с) Томас Эдисон.

Оффлайн vismuth

  • Автор темы
  • Активист
  • *
  • Сообщений: 272
    • Просмотр профиля
Не работает Ваш скрипт я все сделал как Вы написали

/etc/route/script1.sh
#!/bin/bash
ifconfig eth1 down
while :; do
ping www.ru -c 4
if [ "$?" != "0" ]; then
ifconfig eth0 down
ifconfig eth1 up
sh script2.sh &
fi
sleep 3
done

/etc/route/script2.sh
#!/bin/bash
ifconfig eth0 down
while :; do
ping www.ru -c 4
if [ "$?" != "0" ]; then
ifconfig eth1 down
ifconfig eth0 up
sh script1.sh &
fi
sleep 3
done

/etc/rc.local
sh /etc/route/script1.sh &
И когда пинг делаешь и во время пинга выдергиваешь основной шнурок пинг прекращается и все((
BitFenix Shinobi Black / Corsair CX430M 430W / intel S1200RPS / Intel Xeon E3-1220V3 / DDR3L 4x8Gb PC3-12800 / LSI MegaRAID SAS 9240-8i / HDD 4x500Gb RAID10 / HotSwap  Icy DOCK mb994sp-4s 4 /

 

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