The OpenNET Project / Index page

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

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

"Два провайдера, доступ к внешним IP сервера из локальной сети"  +/
Сообщение от Mr. Sneer on 15-Авг-12, 07:27 
Добрый день!

Есть linux сервер работающий в качестве шлюза во вне для локальной сети. На нем подняты три интерфейса:

eth0 - 192.168.1.2, шлюз 192.168.1.1; локальная сеть
eth1 - 1.1.1.2, шлюз 1.1.1.1; провайдер 1
eth2 - 2.2.2.2, шлюз 2.2.2.1; провайдер 2

Для каждого из провайдеров есть своя таблица маршрутизации, соответственно пакеты в одних IP попадают в одну таблицу, с других - в другую.

Но из локальной сети, с любого IP, не доступен ни один из внешних IP сервера. Т.е. как сделать так, что бы пакет с компа из локальной сети предназначенный для 1.1.1.2 уходил через провайдера 2? И, соответственно, наоборот?  

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

Оглавление

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


1. "Два провайдера, доступ к внешним IP сервера из локальной сети"  +/
Сообщение от 1 (??) on 15-Авг-12, 08:01 
/etc/sysctl.conf:

# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1

оно? также в iptables не надо запрещать FORWARD

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

2. "Два провайдера, доступ к внешним IP сервера из локальной сети"  +/
Сообщение от 1 (??) on 15-Авг-12, 08:02 
> /etc/sysctl.conf:
> # Uncomment the next line to enable packet forwarding for IPv4
> net.ipv4.ip_forward=1
> оно? также в iptables не надо запрещать FORWARD

это для
"Но из локальной сети, с любого IP, не доступен ни один из внешних IP сервера."

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

4. "Два провайдера, доступ к внешним IP сервера из локальной сети"  +/
Сообщение от Mr. Sneer on 15-Авг-12, 08:12 
> /etc/sysctl.conf:
> # Uncomment the next line to enable packet forwarding for IPv4
> net.ipv4.ip_forward=1
> оно? также в iptables не надо запрещать FORWARD

Это сделано, любые внешние ресурсы - доступны из локальной сети. А вот внешние IP сервера - нет.

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

3. "Два провайдера, доступ к внешним IP сервера из локальной сети"  +/
Сообщение от 1 (??) on 15-Авг-12, 08:05 
"Т.е. как сделать так, что бы пакет с компа из локальной сети предназначенный для 1.1.1.2 уходил через провайдера 2? И, соответственно, наоборот?" совсем не понятно на локальный интерфейс через другой лок интерфейс и инет?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Два провайдера, доступ к внешним IP сервера из локальной сети"  +/
Сообщение от Mr. Sneer on 15-Авг-12, 08:15 
> "Т.е. как сделать так, что бы пакет с компа из локальной сети
> предназначенный для 1.1.1.2 уходил через провайдера 2? И, соответственно, наоборот?" совсем
> не понятно на локальный интерфейс через другой лок интерфейс и инет?

Т.е. как сделать, что из локальной сети, например с 192.168.3.3 я мог, например, пинговать 1.1.1.2 (внешний IP сервера выданный провайдером 1) и 2.2.2.2 (внешний IP сервера выданный провайдером 2) ?

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

6. "Два провайдера, доступ к внешним IP сервера из локальной сети"  +/
Сообщение от ivb (??) on 15-Авг-12, 09:52 
ip ru a from 192.168.3.0/24 to  1.1.1.2 t main
и наоборот, видимо.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Два провайдера, доступ к внешним IP сервера из локальной сети"  +/
Сообщение от Mr. Sneer on 15-Авг-12, 11:04 
>[оверквотинг удален]
> На нем подняты три интерфейса:
> eth0 - 192.168.1.2, шлюз 192.168.1.1; локальная сеть
> eth1 - 1.1.1.2, шлюз 1.1.1.1; провайдер 1
> eth2 - 2.2.2.2, шлюз 2.2.2.1; провайдер 2
> Для каждого из провайдеров есть своя таблица маршрутизации, соответственно пакеты в одних
> IP попадают в одну таблицу, с других - в другую.
> Но из локальной сети, с любого IP, не доступен ни один из
> внешних IP сервера. Т.е. как сделать так, что бы пакет с
> компа из локальной сети предназначенный для 1.1.1.2 уходил через провайдера 2?
> И, соответственно, наоборот?

В общем косяк в таблицах был, исправил, спасибо за ответы всем! Теперь из локалки пингуется любой из двух внешних IP. Но! Пакет дальше самого сервера не уходит. Т.е. можно сделать, что бы пакеты предназначаемые IP провайдера 1 уходили на шлюз провайдера 2 ?

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

8. "Два провайдера, доступ к внешним IP сервера из локальной сети"  +/
Сообщение от 1 (??) on 15-Авг-12, 13:58 
скорее всего уходят (tcpdump посмотри) а вот куда вернуться зависит от твоей маhшрутизации. ты приведи все свои таблицы + main и выложи ip rule list . буквально  вчера сделал у себя маршрутизацию на 2 провайдера.
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Два провайдера, доступ к внешним IP сервера из локальной сети"  +/
Сообщение от Mr. Sneer on 16-Авг-12, 08:17 
> скорее всего уходят (tcpdump посмотри) а вот куда вернуться зависит от твоей
> маhшрутизации. ты приведи все свои таблицы + main и выложи ip
> rule list . буквально  вчера сделал у себя маршрутизацию на
> 2 провайдера.

# ip route list table main

192.168.0.0/16 via 192.168.1.1 dev eth0
default via 1.1.1.1 dev eth1
1.1.1.0/24 dev eth1  proto kernel  scope link  src 1.1.1.2

# ip route list table PROV2

192.168.0.0/16 via 192.168.1.1 dev eth0
default via 2.2.2.1 dev eth2

# ip rule list

0:    from all lookup local
32752:    from 192.168.3.3 lookup PROV2
32753:    from 2.2.2.2 lookup PROV2  
32766:    from all lookup main
32767:    from all lookup default

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

10. "Два провайдера, доступ к внешним IP сервера из локальной сети"  +/
Сообщение от 1 (??) on 16-Авг-12, 08:34 
на первый взгляд сейчас у тебя prov1 является основным и единственным для исходящих кроме 192.168.3.3, c prov2 работает адрес 192.168.3.3 + входящие с него тоже нормально отрабатываться будут.
какую конечную цель ты преследуешь? мож просто не верной дорогой идешь...
вот пример моих таблиц:

#ip ru li
0:      from all lookup local
100:    from *ip1 lookup mts
200:    from *ip2 lookup domru
32766:  from all lookup main
32767:  from all lookup default

#ip ro li ta mts
default via *gw1 dev eth1  proto static
*net1/24 dev eth1  scope link  src *ip1
127.0.0.0/8 dev lo  scope link
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.1
192.168.120.0/24 dev vm-net  proto kernel  scope link  src 192.168.120.1

#ip ro li ta domru
default via *gw2 dev ppp0
127.0.0.0/8 dev lo  scope link
*gw2 dev ppp0  scope link  src *ip2
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.1
192.168.120.0/24 dev vm-net  proto kernel  scope link  src 192.168.120.1

#ip ro
default
        nexthop dev eth1 weight 1
        nexthop dev ppp0 weight 1
default dev eth1  scope link  metric 100
default dev ppp0  scope link  metric 200
*net1/24 dev eth1  proto kernel  scope link  src *ip1
*gw2 dev ppp0  proto kernel  scope link  src *ip2
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.1
192.168.120.0/24 dev vm-net  proto kernel  scope link  src 192.168.120.1

*ip1 *gw1 *net1 *ip2 *gw2 это скрытые реальные адреса. этот конфиг ровно использует оба прова и переключается полностью на одного если другого отключили. в принципе всё это делается скриптами... там ещё в main прописываются все сетки того прова к которому указан шлюз (к клиенту мтс пойдет через мтс канал и соотв к домру).

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

11. "Два провайдера, доступ к внешним IP сервера из локальной сети"  +/
Сообщение от Mr. Sneer on 16-Авг-12, 10:51 
>[оверквотинг удален]
> default dev ppp0  scope link  metric 200
> *net1/24 dev eth1  proto kernel  scope link  src *ip1
> *gw2 dev ppp0  proto kernel  scope link  src *ip2
> 192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.1
> 192.168.120.0/24 dev vm-net  proto kernel  scope link  src 192.168.120.1
> *ip1 *gw1 *net1 *ip2 *gw2 это скрытые реальные адреса. этот конфиг ровно
> использует оба прова и переключается полностью на одного если другого отключили.
> в принципе всё это делается скриптами... там ещё в main прописываются
> все сетки того прова к которому указан шлюз (к клиенту мтс
> пойдет через мтс канал и соотв к домру).

Вопрос вот в чем: если ты запустишь у себя с какого-нибудь адреса *ip1 трэйсроут до внешнего IP твоего шлюза выданного domru, то каким образом пакет пойдет? Покинет он твой шлюз и уйдет на шлюз MTS или нет?

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

12. "Два провайдера, доступ к внешним IP сервера из локальной сети"  +/
Сообщение от 1 (??) on 16-Авг-12, 11:01 
> Вопрос вот в чем: если ты запустишь у себя с какого-нибудь адреса
> *ip1 трэйсроут до внешнего IP твоего шлюза выданного domru, то каким
> образом пакет пойдет? Покинет он твой шлюз и уйдет на шлюз
> MTS или нет?

*ip1 это мой нешний адрес на этом роутере - это для него локальный адрес пинг до него всегда будет локальным (смотри таблицу маршрутизации local). если из свой внутренней сети я пингую шлюз мтс (*gw1) то он по правилу (*net1/24 dev eth1  proto kernel  scope link  src *ip1) в main уйдёт через *ip1 (мтс) _всегда_, пока не будет отключен этот канал. *gw1 находится внутри сети *net1.

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

13. "Два провайдера, доступ к внешним IP сервера из локальной сети"  +/
Сообщение от 1 (??) on 16-Авг-12, 11:03 
если я изнутри пингую шлюз домру то для него тоже есть правило (*gw2 dev ppp0  proto kernel  scope link  src *ip2) и пакет _всегда_ пойдёт по нему, пока есть этот линк
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

14. "Два провайдера, доступ к внешним IP сервера из локальной сети"  +/
Сообщение от 1 (??) on 16-Авг-12, 11:14 
может ты это имел ввиду
ping *ip2 -I eth1
вообще icmp приходит по второму интерфейсу (ppp0), но обратно идёт по таблице local ( не через инет ) она самая первая и главная и потому теряется пингом (он ждёт ответа с eth1) думаю также обстоит дело с трейсом.
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

15. "Два провайдера, доступ к внешним IP сервера из локальной сети"  +/
Сообщение от 1 (??) on 16-Авг-12, 11:18 
> может ты это имел ввиду
> ping *ip2 -I eth1
> вообще icmp приходит по второму интерфейсу (ppp0), но обратно идёт по таблице
> local ( не через инет ) она самая первая и главная
> и потому теряется пингом (он ждёт ответа с eth1) думаю также
> обстоит дело с трейсом.

это я делал с самого роутера. а если из локалки то пакет пойдёт по таблице local сразу кратчайшим маршрутом на интерфейс не доходя до твоих rule.

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

16. "Два провайдера, доступ к внешним IP сервера из локальной сети"  +/
Сообщение от Mr. Sneer on 16-Авг-12, 11:28 
>> может ты это имел ввиду
>> ping *ip2 -I eth1
>> вообще icmp приходит по второму интерфейсу (ppp0), но обратно идёт по таблице
>> local ( не через инет ) она самая первая и главная
>> и потому теряется пингом (он ждёт ответа с eth1) думаю также
>> обстоит дело с трейсом.
> это я делал с самого роутера. а если из локалки то пакет
> пойдёт по таблице local сразу кратчайшим маршрутом на интерфейс не доходя
> до твоих rule.

Спасибо! Сейчас посмотрел, все верно - таблица local "всему виной" :)

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

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

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




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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