The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Интернет через двух провайдеров"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Интернет через двух провайдеров"
Сообщение от Vladimir Искать по авторуВ закладки(??) on 14-Дек-04, 15:37  (MSK)
наша организация подключена в Инет через dsl модем, периодически - примерно два раза в месяц интернет отваливается на периоды в несколько часов. Встал вопрос о втором провайдере, но и от первого не хотим оказываться, как будет выглядеть вся схема работы: надо постоянно пинговать к примеру раз в 1-10 мин., и смотреть на резултаты пинга, по резуьтатам менять шлюз? Поделитесь - кто как работает по схеме в Интернет через двух провайдеров. Как организовать сквид? Как рабоатает почта при этой схеме?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Интернет через двух провайдеров"
Сообщение от Eugene Искать по авторуВ закладки(??) on 14-Дек-04, 16:55  (MSK)
У меня на двух провайдеров работает. Ниже показал свои настройки для всеобщей критики и советов.
Если у кого руки дошли написать скрипт, чтобы отключать провайдера из таблицы маршрутизации при его пропадании и включать при появлении - БУДУ ОЧЕНЬ БЛАГОДАРЕН.

У меня 1.X.X.1 - шлюз провайдера 1
1.X.X.2 - IF eth0 на провайдера 1
2.X.X.1 - шлюз провайдера 2
2.X.X.2 - IF eth4 на провайдера 2


Мой конфиг:
#!/bin/sh

#Добавить в /etc/iproute2/rt_tables строки примерно такого содержания:
#1      uplink_1
#2      uplink_2

#Задание правил маршрутизации IP по источнику для радоканала
ip rule add from 1.X.X.2 lookup 1;
ip route add 192.168.0.0/24 via 192.168.0.1 table 1;
ip route add 192.168.1.0/24 via 192.168.1.1 table 1;
ip route add 192.168.2.0/24 via 192.168.2.1 table 1;
ip route add 0/0 via 1.X.X.1 table 1;

#Задание правил маршрутизации IP по источнику для модемного соединения
ip rule add from 2.X.X.2 lookup 2;
ip route add 192.168.0.0/24 via 192.168.0.1 table 2;
ip route add 192.168.1.0/24 via 192.168.1.1 table 2;
ip route add 192.168.2.0/24 via 192.168.2.1 table 2;
ip route add 0/0 via 2.X.X.1 table 2;

# Добавление ip route по умолчанию с опцией equalize
ip route del default;
#ip route add default equalize nexthop via 1.X.X.1 dev eth0 nexthop via 2.X.X.1 dev eth4;
ip route add default equalize nexthop via 1.X.X.1 dev eth0 weight 2 nexthop via 2.X.X.1 dev eth4 weight 1;
#ip route add default equalize nexthop via 2.X.X.1 dev eth4 nexthop via 1.X.X.1 dev eth0;
ip route flush cache

Если есть NAT:
#!/bin/sh
# SEE FILE /etc/sysctl.conf
# net.ipv4.ip_forward = 1
# Then type sysctl -p
# Check /proc/sys/net/ipv4/ip_forward (set to 1)
# Check iptables -t nat -n -L
# Mail for USERS
iptables -t nat -A POSTROUTING -d 0/0 -s 192.168.2.0/24 -o eth0 -p tcp --dport 110 -j SNAT --to-source 1.X.X.2
iptables -t nat -A POSTROUTING -d 0/0 -s 192.168.2.0/24 -o eth0 -p udp --dport 110 -j SNAT --to-source 1.X.X.2
iptables -t nat -A POSTROUTING -d 0/0 -s 192.168.2.0/24 -o eth0 -p tcp --dport 25 -j SNAT --to-source 1.X.X.2
iptables -t nat -A POSTROUTING -d 0/0 -s 192.168.2.0/24 -o eth0 -p udp --dport 25 -j SNAT --to-source 1.X.X.2
# Mail for USERS_backup
iptables -t nat -A POSTROUTING -d 0/0 -s 192.168.2.0/24 -o eth4 -p tcp --dport 110 -j SNAT --to-source 2.X.X.2
iptables -t nat -A POSTROUTING -d 0/0 -s 192.168.2.0/24 -o eth4 -p udp --dport 110 -j SNAT --to-source 2.X.X.2
iptables -t nat -A POSTROUTING -d 0/0 -s 192.168.2.0/24 -o eth4 -p tcp --dport 25 -j SNAT --to-source 2.X.X.2


  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Интернет через двух провайдеров"
Сообщение от fantom Искать по авторуВ закладки(??) on 17-Дек-04, 11:36  (MSK)
А что там писать, в скрипте-то?
#!/bin/sh
rezult=`ping -q -c 5 -I eth0 <gw1_ip> | grep '100%' | wc -l`
# Если через основной канал непингается, то rezul=1
if [ $rezult -eq 1 ]
then
  rezult=`route | grep default | grep eth0 | wc -l`
  # Если default указан на eth0, то меняем default и правила iptables
  if [ $rezult -eq 1 ]
   then
    route del default
    route add default gw <gw1_ip>
    <iptables for eth1>
  fi
else
# Если пингается то
rezult=`route | grep default | grep eth0 | wc -l`
# Если default указывает не на <gw0_ip> то меняем default и iptables
  if [ $rezult -eq 0 ]
   then
    route del default
    route add default gw <gw0_ip>
    <iptables for eth0>
  fi
fi


Вот пожалуй и весь скрипт :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру