The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Раздел полезных советов: Два провайдера и default gw в Linux"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Два провайдера и default gw в Linux"  +/
Сообщение от auto_tips (??) on 03-Окт-06, 03:18 
Имеется сервер 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


URL:
Обсуждается: https://www.opennet.ru/tips/info/1179.shtml

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "Два провайдера и default gw в Linux"  +/
Сообщение от SniZ email(??) on 03-Окт-06, 03:18 
эм, а как сделать слияние двух каналов?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Два провайдера и default gw в Linux"  –1 +/
Сообщение от x0x01 on 03-Окт-06, 08:02 
рой в стороноу bonding, http://ru.gentoo-wiki.com/HOWTO_%D0%9D%D0...ибо Gentoo
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Два провайдера и default gw в Linux"  +/
Сообщение от Stingray email on 16-Окт-06, 16:22 
Надо сюда мой гипер конфиг с NATом засунуть - есть 2 провайдера, 2 комплекта внешних адресов, внутри стоят тачки за NATом, нужно чтобы всё работало
Фактически нужно чтобы ответные пакеты шли через тот же интерфейс что и пришли, а это сделать не совсем тривиально, поскольку обратная сторона дната срабатывает после маршрутизации

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Два провайдера и default gw в Linux"  +/
Сообщение от AAndreychuk (ok) on 19-Окт-06, 10:22 
сделал как в посте - почта (sendmail) все равно уходит в канал по умолчанию, а не во второй канал.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Два провайдера и default gw в Linux"  +/
Сообщение от kosh email(??) on 20-Окт-06, 02:25 
> Фактически нужно чтобы ответные пакеты шли через тот же интерфейс что и пришли
У меня такая же проблема.

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

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "Два провайдера и default gw в Linux"  +/
Сообщение от Anchovy on 24-Окт-06, 11:30 
вот посмотрите мож поможет
http://www.osp.ru/text/302/136078/
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Два провайдера и default gw в Linux"  +/
Сообщение от onorua (ok) on 25-Окт-06, 17:28 
>эм, а как сделать слияние двух каналов?

вот так вот:
========================
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 | Наверх | Cообщить модератору

8. "Два провайдера и default gw в Linux"  +/
Сообщение от 120Gr on 16-Ноя-06, 22:31 
Уважаемый Олл возможно ли все это организовать средствами iptables?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

9. "Два провайдера и default gw в Linux"  +/
Сообщение от Serg (??) on 22-Ноя-06, 13:09 
Можно.

Для почты
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, и смотреть, от кого пришло с включенным правилом и без.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "Два провайдера и default gw в Linux"  +/
Сообщение от Artem email(??) on 15-Янв-07, 23:12 
Что делать если внешний ip определяется автоматически на стороне провайдера? И каждый раз - разный
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

11. "Два провайдера и default gw в Linux"  +/
Сообщение от Krieger (??) on 06-Фев-07, 23:25 
Заказать у провайдера человеческий real-ip. Не так уж дорого, а пользы много.
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "Два провайдера и default gw в Linux"  +/
Сообщение от ice_one1 (??) on 08-Фев-07, 11:49 
использовать релей провайдера
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

13. "Два провайдера и default gw в Linux"  +/
Сообщение от Agressor (ok) on 16-Июн-07, 15:10 
Смотри http://wiki.opennet.ru/Linux_ppp-oe_%28ADSL%29_Bal...
Возможно поможет
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

14. "Два провайдера и default gw в Linux"  +/
Сообщение от max email(??) on 17-Янв-08, 17:45 
((((     Надо сюда мой гипер конфиг с NATом засунуть - есть 2 провайдера, 2 комплекта внешних адресов, внутри стоят тачки за NATом, нужно чтобы всё работало
    Фактически нужно чтобы ответные пакеты шли через тот же интерфейс что и пришли, а это сделать не совсем тривиально, поскольку обратная сторона дната срабатывает после маршрутизации

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

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

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

15. "Два провайдера и default gw в Linux"  +/
Сообщение от Random73 email(ok) on 13-Июн-08, 15:03 
после выполнения скрипта выдаёт
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ой?(но при поднятии первого чтоб он опять включался в основную работу) , т.е. резервный канал чтоб коректно работал...
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

16. "Два провайдера и default gw в Linux"  +/
Сообщение от Random73 email(ok) on 13-Июн-08, 15:27 
первый вопрос - отпал... (апечатался в скрипте..)
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

17. "Два провайдера и default gw в Linux"  +/
Сообщение от 3JIODEU email on 04-Июл-08, 13:15 
(и ещё 1 вопрос до кучи... как сделать так чтоб если 1 гейт не отвечает по автоматом переключаться на 2ой?(но при поднятии первого чтоб он опять включался в основную работу) , т.е. резервный канал чтоб коректно работал...) nтоже интересно)
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

18. "Два провайдера и default gw в Linux"  +/
Сообщение от 3JIODEU email on 04-Июл-08, 13:17 
Кто нить может отписаться по данному вопросу?
(и ещё 1 вопрос до кучи... как сделать так чтоб если 1 гейт не отвечает по автоматом переключаться на 2ой?(но при поднятии первого чтоб он опять включался в основную работу) , т.е. резервный канал чтоб коректно работал...)
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

19. "Два провайдера и default gw в Linux"  +/
Сообщение от max email(??) on 13-Июл-08, 04:15 
>Смотри http://wiki.opennet.ru/Linux_ppp-oe_%28ADSL%29_Bal...
>Возможно поможет

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

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

20. "Два провайдера и default gw в Linux"  +/
Сообщение от Pinkbyte on 17-Авг-08, 22:14 
Кури в сторону RIP и протоколов динамической маршрутизации
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

21. "Два провайдера и default gw в Linux"  +/
Сообщение от Smash email(??) on 09-Сен-08, 17:16 
Как прописать, если по умолчанию интернет ppp0
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

22. "Два провайдера и default gw в Linux"  +/
Сообщение от Денис (??) on 13-Окт-08, 00:35 
Можно грабить нужный данные с ifconfig например echo `ifconfig ppp2|grep "inet addr"|awk '{print $3}'cut -d ':' -f 2`


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

23. "Два провайдера и default gw в Linux"  +/
Сообщение от Юрий (??) on 01-Мрт-10, 12:44 
сделал, как написано.

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

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

25. "Два провайдера и default gw в Linux"  +/
Сообщение от Matvey536 (ok) on 09-Сен-11, 01:09 
Народ помогите.
Есть 2 провайдера:
1 - для выхода в инет. ppp0 который строится на eth2
2 - для подключения emule, eth1
И локалка eth0.
Необходимо компу из локальной сети разрешить доступ в инет и к emule.
Как сделать такое разделение трафика?


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

26. "Два провайдера и default gw в Linux"  +/
Сообщение от 1 (??) on 27-Сен-11, 13:49 
только что осилил. есть 2 провайдера г.Пенза это ПНЗ(МТС-Комстар)(на eth1) и Дом.ру(Эр телеком)(на ppp0)
у пнз 8 мбит у дома 20. сделано доступность по обоим интерфейсам сервисов из интернета и динамическое распределение (!)соединений по каналам при соединении из внутренней сети (eth0) с одинаковой вероятностью на мегабит. к тому же все соединения во внутренние сети каждого провайдера уходят через родной интерфейс (в пнз через линк с пнз в домру через домру). Прововские подсети выбирал ручками с прововских ASок через сайт http://bgp.he.net (если интересно например http://bgp.he.net/AS41754#_asinfo). ipv6 шлюз (от he.net) привязан к пнз.
5 дней копал инет... много чего перепробовал пока не разобрался как должно работать потом только и получилось :). рад до .опы.
все скрипты:
sysctl:
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.rp_filter=0

cat /etc/iproute2/rt_tables
#
# reserved values
#
255     local
254     main
253     default
0       unspec
#
# local
#
#1      inr.ruhep
10      pnz
20      domru

ip route:
default via 82.209.x.1 dev eth1  metric 100
default via 91.144.144.88 dev ppp0  metric 110
82.209.x.0/24 dev eth1  proto kernel  scope link  src 82.209.x.x
91.144.144.88 dev ppp0  proto kernel  scope link  src 94.181.x.x
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.1

cat /etc/ppp/ip-up.d/routing
#!/bin/sh -e

LOCAL_IP=$4
GATE_IP=$5

#local
ip route flush table domru
ip route add $GATE_IP dev ppp0 src $LOCAL_IP table domru
ip route add default via $GATE_IP table domru
ip route add 192.168.0.0/24 dev eth0 table domru
ip route add 127.0.0.0/8 dev lo table domru
ip rule del table domru priority 15
ip rule add fwmark 2 table domru priority 15
ip route replace default via $GATE_IP dev ppp0 metric 110

exit 0

cat /etc/network/interfaces (тут только часть что относится к прову pnz на eth1)
auto eth1
iface eth1 inet static
  address 82.209.х.х
  netmask 255.255.255.0
  network 82.209.х.0
  broadcast 82.209.х.255
  gateway 82.209.х.1
  post-up /etc/network/config/v4rules (это скрипт фаера, сам скрипт ниже)
  post-up ip route replace 192.168.0.0/24 dev eth0 table pnz
  post-up ip route replace 127.0.0.0/8 dev lo table pnz
  post-up ip route add 82.209.х.1 dev eth1 src 82.209.х.х table pnz
  post-up ip route add default via 82.209.х.1 table pnz
  post-down ip rule delete fwmark 1 lookup pnz priority 10
  post-up ip rule add fwmark 1 lookup pnz priority 10

cat /etc/network/config/v4rules (часть что относится к маршрутизации)
iptables -t mangle -F MARK_CONN
iptables -t mangle -X MARK_CONN

#routing
iptables -t mangle -N MARK_CONN

iptables -t mangle -A MARK_CONN -d 192.168.0.0/16 -j RETURN
iptables -t mangle -A MARK_CONN -d 10.0.0.0/8 -j RETURN

iptables -t mangle -A MARK_CONN -m connmark ! --mark 0 -j RETURN
#povolzhe AS41754
iptables -t mangle -A MARK_CONN -d 91.144.144.0/22 -j CONNMARK --set-mark 2
iptables -t mangle -A MARK_CONN -d 91.144.176.0/22 -j CONNMARK --set-mark 2
iptables -t mangle -A MARK_CONN -d 94.181.128.0/18 -j CONNMARK --set-mark 2
iptables -t mangle -A MARK_CONN -d 109.194.128.0/19 -j CONNMARK --set-mark 2
iptables -t mangle -A MARK_CONN -d 188.187.250.0/24 -j CONNMARK --set-mark 2
#perm AS12768
iptables -t mangle -A MARK_CONN -d 46.146.0.0/16 -j CONNMARK --set-mark 2
iptables -t mangle -A MARK_CONN -d 46.147.0.0/18 -j CONNMARK --set-mark 2
iptables -t mangle -A MARK_CONN -d 79.141.48.0/20 -j CONNMARK --set-mark 2
iptables -t mangle -A MARK_CONN -d 92.255.128.0/19 -j CONNMARK --set-mark 2
iptables -t mangle -A MARK_CONN -d 92.255.241.0/24 -j CONNMARK --set-mark 2
iptables -t mangle -A MARK_CONN -d 188.187.222.0/24 -j CONNMARK --set-mark 2
iptables -t mangle -A MARK_CONN -d 188.187.255.0/24 -j CONNMARK --set-mark 2
iptables -t mangle -A MARK_CONN -d 212.33.224.0/19 -j CONNMARK --set-mark 2
#pnz
iptables -t mangle -A MARK_CONN -d 77.108.192.0/18 -j CONNMARK --set-mark 1
iptables -t mangle -A MARK_CONN -d 82.209.64.0/18 -j CONNMARK --set-mark 1
iptables -t mangle -A MARK_CONN -d 85.234.32.0/19 -j CONNMARK --set-mark 1
iptables -t mangle -A MARK_CONN -d 92.246.160.0/19 -j CONNMARK --set-mark 1
iptables -t mangle -A MARK_CONN -d 95.83.64.0/18 -j CONNMARK --set-mark 1
#ipv6
iptables -t mangle -A MARK_CONN -d 216.66.84.46/32 -j CONNMARK --set-mark 1

iptables -t mangle -A MARK_CONN -m connmark ! --mark 0 -j RETURN
iptables -t mangle -A MARK_CONN -j CONNMARK --set-mark 1
iptables -t mangle -A MARK_CONN -m statistic --mode random --probability 0.28 -j RETURN
iptables -t mangle -A MARK_CONN -j CONNMARK --set-mark 2

iptables -t mangle -A PREROUTING -i eth1 -m state --state NEW,RELATED -j CONNMARK --set-mark 1
iptables -t mangle -A PREROUTING -i ppp0 -m state --state NEW,RELATED -j CONNMARK --set-mark 2
iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark
iptables -t mangle -A OUTPUT -m state --state NEW,RELATED -j MARK_CONN
iptables -t mangle -A OUTPUT -j CONNMARK --restore-mark
iptables -t mangle -A FORWARD -m state --state NEW,RELATED -j MARK_CONN
iptables -t mangle -A FORWARD -j CONNMARK --restore-mark

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

27. "Два провайдера и default gw в Linux"  +1 +/
Сообщение от 1 (??) on 27-Сен-11, 14:07 
если не отвечает то хз (ospf наверно), если просто отключился то достаточно сделать ещё один default gw с метрикой поболее, при отключении интерфейса правила маршрутизации на него тоже отключаются и соответственно уберётся его default gw и начнёт работать вторая запись что с метрикой поболее, а когда вернётся первый интерфес и снова пропишет себя с меньшей метрикой то снова через него пойдут пакеты. как то так в общем
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

28. "Два провайдера и default gw в Linux"  +/
Сообщение от altqqru email on 10-Янв-12, 14:09 
Попробовал ваш метод настройки, у меня тоже дом.ру и еще один пров на статике, так вот все ходит через 2 прова, не могу заставить ходить через дом?!
Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

29. "Два провайдера и default gw в Linux"  +/
Сообщение от 1 (??) on 15-Май-12, 10:55 
> Попробовал ваш метод настройки, у меня тоже дом.ру и еще один пров
> на статике, так вот все ходит через 2 прова, не могу
> заставить ходить через дом?!

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

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

30. "Два провайдера и default gw в Linux"  +/
Сообщение от 1 (??) on 15-Май-12, 10:56 
>> Попробовал ваш метод настройки, у меня тоже дом.ру и еще один пров
>> на статике, так вот все ходит через 2 прова, не могу
>> заставить ходить через дом?!
> возможно, он менялся... сейчас уже не помню что, да и переехал я...
> пока только дом ру. потом допилю. а вообще ошибка может быть
> в том что в prerouting надо указать маркировку (на входе) а
> не в forward

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

Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору


Архив | Удалить

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




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

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