The OpenNET Project / Index page

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

Два провайдера и default gw в Linux
Имеется сервер ASPLinux 10, с установленным postfix и 3-я сетевыми интерфейсами.

Задача: корректная работа почты через один из интерфейсов, при этом в качестве
default gw указан другой.

Реализация:

1) в /etc/iproute2/rt_tables добавляем:
   201 T1
   202 T2

2) создаём скрипт и даём права на запуск, предварительно исправив нужные параметры
IP - адреса сетевых интерфейсов
P - адреса шлюзов

   #!/bin/sh
   IP1=192.168.4.1
   IP2=217.1.1.2
   P1=192.168.4.2
   P2=217.1.1.1
   ip route add default via $P1 table T1
   ip route add default via $P2 table T2
   ip route add default via $P1
   ip rule add from $IP1 table T1
   ip rule add from $IP2 table T2

В результате получим, что если пакет пришёл на P2, то он не пойдёт через default gw P1, 
а уйдёт через тот же интерфейс с IP1
 
29.09.2006 , Автор: Dmitriy Altuhov
Ключи: linux, asplinux, route / Лицензия: CC-BY
Раздел:    Корень / Администратору / Сетевая подсистема, маршрутизация / Policy routing

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, SniZ (??), 03:18, 03/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    эм, а как сделать слияние двух каналов?
     
     
  • 2.2, x0x01 (?), 08:02, 03/10/2006 [^] [^^] [^^^] [ответить]  
  • –1 +/
    рой в стороноу bonding, http://ru.gentoo-wiki.com/HOWTO_%D0%9D%D0%B0%D1%;81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_Bonding  ибо Gentoo
     
  • 2.7, onorua (ok), 17:28, 25/10/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >эм, а как сделать слияние двух каналов?

    вот так вот:
    ========================
    ip route add default scope global nexthop via $P1 dev $IF1 weight 1 \
        nexthop via $P2 dev $IF2 weight 1
    ========================
    Только вот кеш нужно периодически очищасть а то к загруженным ресурсам будут ходить по одному и тому же маршруту, который закешировался. Делаеться это так:
    ip route flush cache

     

  • 1.3, Stingray (?), 16:22, 16/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Надо сюда мой гипер конфиг с NATом засунуть - есть 2 провайдера, 2 комплекта внешних адресов, внутри стоят тачки за NATом, нужно чтобы всё работало
    Фактически нужно чтобы ответные пакеты шли через тот же интерфейс что и пришли, а это сделать не совсем тривиально, поскольку обратная сторона дната срабатывает после маршрутизации

    Однако нет ничего невозможного, я сделал через connmark. Попозже запощу.

     
     
  • 2.5, kosh (??), 02:25, 20/10/2006 [^] [^^] [^^^] [ответить]  
  • +/
    > Фактически нужно чтобы ответные пакеты шли через тот же интерфейс что и пришли
    У меня такая же проблема.

    > Попозже запощу.
    Ждем.
    А на какой платформе все реализовывал?

     
  • 2.14, max (??), 17:45, 17/01/2008 [^] [^^] [^^^] [ответить]  
  • +/
    ((((     Надо сюда мой гипер конфиг с NATом засунуть - есть 2 провайдера, 2 комплекта внешних адресов, внутри стоят тачки за NATом, нужно чтобы всё работало
        Фактически нужно чтобы ответные пакеты шли через тот же интерфейс что и пришли, а это сделать не совсем тривиально, поскольку обратная сторона дната срабатывает после маршрутизации

        Однако нет ничего невозможного, я сделал через connmark. Попозже запощу. ))))

    я сделал маршрутизацию!! через маркера по приоритетам!! но есть маленькая проблема из 10-20   пакетов есть два потерянных!! да и ты обешял свои конфы скинуть!! скинь гляну!!

     

  • 1.4, AAndreychuk (ok), 10:22, 19/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    сделал как в посте - почта (sendmail) все равно уходит в канал по умолчанию, а не во второй канал.
     
  • 1.6, Anchovy (?), 11:30, 24/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    вот посмотрите мож поможет
    http://www.osp.ru/text/302/136078/
     
  • 1.8, 120Gr (?), 22:31, 16/11/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Уважаемый Олл возможно ли все это организовать средствами iptables?
     
     
  • 2.9, Serg (??), 13:09, 22/11/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Можно.

    Для почты
    iptables -t nat -A POSTROUTING -p tcp --dport 25 -j SNAT --to-source $IP2,
    где $IP2 - адрес второй карточки, при этом default gateway - $IP1
    По умолчанию роутинг происходит так, что если адрес отправителя в пакете (который здесь и меняется) совпадает с адресом интерфейса, через другой он уже не пойдет, если не принимать дополнительных телодвижений.
    Для пробы:
    iptables -t nat -A POSTROUTING -p tcp -d www.myipaddress.com --dport 80 -j SNAT --to-source $IP2, и смотреть, от кого пришло с включенным правилом и без.

     

  • 1.10, Artem (??), 23:12, 15/01/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Что делать если внешний ip определяется автоматически на стороне провайдера? И каждый раз - разный
     
     
  • 2.11, Krieger (??), 23:25, 06/02/2007 [^] [^^] [^^^] [ответить]  
  • +/
    Заказать у провайдера человеческий real-ip. Не так уж дорого, а пользы много.
     
  • 2.12, ice_one1 (??), 11:49, 08/02/2007 [^] [^^] [^^^] [ответить]  
  • +/
    использовать релей провайдера
     
  • 2.13, Agressor (ok), 15:10, 16/06/2007 [^] [^^] [^^^] [ответить]  
  • +/
    Смотри http://wiki.opennet.ru/Linux_ppp-oe_%28ADSL%29_Balance
    Возможно поможет
     
     
  • 3.19, max (??), 04:15, 13/07/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Смотри http://wiki.opennet.ru/Linux_ppp-oe_%28ADSL%29_Balance
    >Возможно поможет

    хорошая статья но не то!

     

  • 1.15, Random73 (ok), 15:03, 13/06/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    после выполнения скрипта выдаёт
    RTNETLINK answers: No such device
    RTNETLINK answers: No such device
    . т.е. он не понимает таблицы... хотя первый пункт выполнил (прописал 2 таблицы)
    (система Debian Etch) почему он не видит таблицы маршрутизации не пойму...
    и ещё такая прабла...
    1 провайдер - реальный ИП настроен на сетевой карте...
    2ой - настроен на циске а на линухе gw - ИП адрес циски (192.168.0.254), как быть в таком случае?
    (есть ещё неск сетевых карт которые смотрят в сетки 192,168,1,ххх/24 192,168,150,ххх/24 10,3,0,0/20)
    как правильно прописать вссе маршруты?
    и ещё 1 вопрос до кучи... как сделать так чтоб если 1 гейт не отвечает по автоматом переключаться на 2ой?(но при поднятии первого чтоб он опять включался в основную работу) , т.е. резервный канал чтоб коректно работал...
     
  • 1.16, Random73 (ok), 15:27, 13/06/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    первый вопрос - отпал... (апечатался в скрипте..)
     
  • 1.17, 3JIODEU (?), 13:15, 04/07/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    (и ещё 1 вопрос до кучи... как сделать так чтоб если 1 гейт не отвечает по автоматом переключаться на 2ой?(но при поднятии первого чтоб он опять включался в основную работу) , т.е. резервный канал чтоб коректно работал...) nтоже интересно)
     
  • 1.18, 3JIODEU (?), 13:17, 04/07/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кто нить может отписаться по данному вопросу?
    (и ещё 1 вопрос до кучи... как сделать так чтоб если 1 гейт не отвечает по автоматом переключаться на 2ой?(но при поднятии первого чтоб он опять включался в основную работу) , т.е. резервный канал чтоб коректно работал...)
     
     
  • 2.20, Pinkbyte (?), 22:14, 17/08/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Кури в сторону RIP и протоколов динамической маршрутизации
     
  • 2.27, 1 (??), 14:07, 27/09/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    если не отвечает то хз (ospf наверно), если просто отключился то достаточно сделать ещё один default gw с метрикой поболее, при отключении интерфейса правила маршрутизации на него тоже отключаются и соответственно уберётся его default gw и начнёт работать вторая запись что с метрикой поболее, а когда вернётся первый интерфес и снова пропишет себя с меньшей метрикой то снова через него пойдут пакеты. как то так в общем
     

  • 1.21, Smash (??), 17:16, 09/09/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как прописать, если по умолчанию интернет ppp0
     
  • 1.22, Денис (??), 00:35, 13/10/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Можно грабить нужный данные с ifconfig например echo 'ifconfig ppp2|grep "inet addr"|awk '{print $3}'cut -d ':' -f 2'


     
  • 1.23, Юрий (??), 12:44, 01/03/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    сделал, как написано.

    делаю ping google.com -I eth0
    пинг идет через P1

    а когда делаю ping google.com -I eth1
    пинг пытается пройти через P1, но сеть там другая и соответственно пинг не идет

     
  • 1.25, Matvey536 (ok), 01:09, 09/09/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Народ помогите.
    Есть 2 провайдера:
    1 - для выхода в инет. ppp0 который строится на eth2
    2 - для подключения emule, eth1
    И локалка eth0.
    Необходимо компу из локальной сети разрешить доступ в инет и к emule.
    Как сделать такое разделение трафика?


     
  • 1.26, 1 (??), 13:49, 27/09/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    только что осилил есть 2 провайдера г Пенза это ПНЗ МТС-Комстар на eth1 и Дом... большой текст свёрнут, показать
     
     
  • 2.28, altqqru (?), 14:09, 10/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Попробовал ваш метод настройки, у меня тоже дом.ру и еще один пров на статике, так вот все ходит через 2 прова, не могу заставить ходить через дом?!
     
     
  • 3.29, 1 (??), 10:55, 15/05/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Попробовал ваш метод настройки, у меня тоже дом.ру и еще один пров
    > на статике, так вот все ходит через 2 прова, не могу
    > заставить ходить через дом?!

    возможно, он менялся... сейчас уже не помню что, да и переехал я... пока только дом ру. потом допилю. а вообще ошибка может быть в том что в prerouting надо указать маркировку (на входе) а не в forward

     
     
  • 4.30, 1 (??), 10:56, 15/05/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> Попробовал ваш метод настройки, у меня тоже дом.ру и еще один пров
    >> на статике, так вот все ходит через 2 прова, не могу
    >> заставить ходить через дом?!
    > возможно, он менялся... сейчас уже не помню что, да и переехал я...
    > пока только дом ру. потом допилю. а вообще ошибка может быть
    > в том что в prerouting надо указать маркировку (на входе) а
    > не в forward

    как здесь http://www.linux.org.ru/forum/admin/4465481

     


     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




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

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