Автор Тема: Два канала в интернет, маршрутизация - как?  (Прочитано 4071 раз)

Оффлайн flint1975

  • Участник
  • *
  • Сообщений: 1 443
Собственно в http://forum.altlinux.org/index.php/topic,4623.msg64990.html#msg64990 все доступно написано.

Однако есть потребность поделить сервисы по разным каналам.
Есть ли возможность через etcnet прописать условные маршруты?

Или только руками через iptables?
Просто не хотелось бы ломать стандартную схему настроек файрвола

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 370
Вообще, можно использовать пользовательские сценарии post и pre

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 984
    • Пошаговые инструкции
Однако есть потребность поделить сервисы по разным каналам.
Есть ли возможность через etcnet прописать условные маршруты?

А какие сервисы надо делить?
Есть отработанный пример, когда все ходят по одному каналу, а прозрачный или простой прокси получает страницы по второму. Для этого в прокси есть  опция  tcp_outgoing_address.
Также просто связывать внешний IP с конкретным каналом. Так делаю: Банки работают через скоростной.
Можно отправлять почту по одному, а получать по второму.
Есть пример делить по источнику
http://forum.altlinux.org/index.php/topic,5569.msg82320.html#msg82320
Назовите сервисы поподробней, может уже есть готовое решение.
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн flint1975

  • Участник
  • *
  • Сообщений: 1 443
основной канал - МТС модем с динамически выделяемыми ip, плюс они там вообще серые
и есть выделенка со статическим внешним IP

нужно перенаправление портов rdp: 3389 с внешнего ip на внутренний сервак, так чтобы ответы этого сервака шли тоже по выделенке, а то сейчас запрос на внешний IP перенаправляется на внутренний сервер, а ответ от него идет по стандартному маршруту через MTC. Соответственно соединение не устанавливается.
И аналогично - radmin доступ по порту 4899 к серверу видеонаблюдения


Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 984
    • Пошаговые инструкции
основной канал - МТС модем с динамически выделяемыми ip, плюс они там вообще серые
и есть выделенка со статическим внешним IP

нужно перенаправление портов rdp: 3389 с внешнего ip на внутренний сервак, так чтобы ответы этого сервака шли тоже по выделенке, а то

сейчас запрос на внешний IP перенаправляется на внутренний сервер, а ответ от него идет по стандартному маршруту через MTC. Соответственно соединение не устанавливается.
И аналогично - radmin доступ по порту 4899 к серверу видеонаблюдения

Пусть будет МТС основной, но надо настроить по примеру чтобы по второму адресу сервер был виден снаружи. Тогда если вы зашли на сервер по каналу со статическим внешним IP, он вам и через этот канал ответит.
Для начала надо добиться этого.
Он не будет посылать ответ "по стандартному маршруту через MTC". По этому пришло, по нему и уйдет. И дойдет. Проверить командой снаружи
traceroute Ваш_IPТеперь если как в обыкновенном роутере настроить проброс всех портов, то все будут уходить внутрь сети на видеорегистратор и обратно возвращаться через канал, со статическим IP.
Уже потом протестировать только один порт.
Проблема с этим 3389 может быть со всем по другому. По этому порту проходит первичный сеанс связи, а потом регистратор переходит на другой порт. Также как с Веб- сервером. Первичный по 80 порту, а потом они разговаривают по другим портам, оставляя свободным 80 для следующих обращений. А вот тут уже сервер не знает что делать с пакетом другого порта (допустим 50008), куда его перенаправлять.  Директива у него задана только на 3389.
То есть обратно пакет то уходит нормально. Приходит пакет на другой порт и остается на сервере. На этом все рвется. Тут многое зависит от протокола регистратора.           
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн flint1975

  • Участник
  • *
  • Сообщений: 1 443
Цитировать
А вот тут уже сервер не знает что делать с пакетом другого порта (допустим 50008), куда его перенаправлять.
Если сделать ifdown ppp1 , то все прекрасно работает!
Да и сейчас работает, если для выделенки - у меня стоит принудительный маршрут на мой домашний IP

85.113.*.* via 192.168.0.1 src 192.168.0.4
где 85.113** -мой домашний IP
192.168.0.1 - адрес шлюза выделенки - синоним внешнего адреса 193.33.*.* (Тут стоит модем zyxel, и на нем NAT всех портов на 192.168.0.4, т.е. он используется как ppp "звонилка")
192.168.0.4 - адрес интерфейса моего роутера, который смотрит в модем zyxel (выделенку)

Но суть в том, что мне надо зайти туда с неизвестного заранее мне адреса, например с модема мегафоновского.
т.е. мне нужно, чтобы все пакеты с портом источника 3389 отправлялись через шлюз выделенки.
Да и сомневаюсь я, что пакеты изнутри сети идут тем же маршрутом, которым пришли запросы на открытие соединения.

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 984
    • Пошаговые инструкции

85.113.*.* via 192.168.0.1 src 192.168.0.4
где 85.113** -мой домашний IP
192.168.0.1 - адрес шлюза выделенки - синоним внешнего адреса 193.33.*.* (Тут стоит модем zyxel, и на нем NAT всех портов на 192.168.0.4, т.е. он используется как ppp "звонилка")

Ничего не понятно. У вас сколько сетевых карт на сервере? Как выдается статический внешний IP, Какой шлюз для него? Как его провайдер дает DNS?
Пришлите в личку более точное описание соединение каждого провайдера.
Понятно что по одному соединения работают.
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн flint1975

  • Участник
  • *
  • Сообщений: 1 443
Структура сети во вложении

Оффлайн flint1975

  • Участник
  • *
  • Сообщений: 1 443
Как его провайдер дает DNS?
А причем тут DNS?

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 984
    • Пошаговые инструкции
Настройки провайдера adsl
file /etc/net/ifaces/eth1/ipv4address
192.168.0.4/24
#ответ на входящий на eth1 трафик снаружи
file /etc/net/ifaces/eth1/ipv4route
default via 192..168.0.1 src 192.168.0.4 table adsl
#посылаем весь трафик с адреса 192.168.0.4 в таблицу adsl
file /etc/net/ifaces/eth1/ipv4rule
from 192.168.0.4 table adsl 

Добавляем таблицу маршрутизации  adsl
file /etc/iproute2/rt_tables
#
# reserved values
#
255 local
254 main
253 default
200 adsl
0 unspec
#
# local
#
#1 inr.

#service network restart
Сервер виден снаружи по статическому IP. С любого внешнего адреса приходит пакет и отправляется ответ обратно через этот же канал.
Изнутри все ходят в инет по ppp1

Дальше пробрасывается 3389 на нужный комп. 

Но так поступать совсем не обязательно. В вашем случае надо adsl модем ставить в сеть 192.168.1.0/24

Даем модему не 192.168.0.4, а 192.168.1.254 и втыкаем сразу в Switch, т.е  в локальную сеть.

Настройки провайдера adsl
file /etc/net/ifaces/eth0/ipv4address
192.168.1.1/24
#ответ на входящий на eth0 трафик снаружи
file /etc/net/ifaces/eth0/ipv4route
default via 192..168.1.254 src 192.168.1.1 table adsl
#посылаем весь трафик с адреса 192.168.1.254 в таблицу adsl
file /etc/net/ifaces/eth1/ipv4rule
from 192.168.1.254 table adsl 

Добавляем таблицу маршрутизации  adsl
file /etc/iproute2/rt_tables
#
# reserved values
#
255 local
254 main
253 default
200 adsl
0 unspec
#
# local
#
#1 inr.

#service network restart
Сервер виден снаружи по статическому IP. С любого внешнего адреса приходит пакет и отправляется ответ обратно через этот же канал.
Изнутри все ходят в инет по ppp1

DSL MODEM пробрасывает все порты на 192.168.1.1, а порт 3389 на 192.168.1.20 напрямую
 и у вас все рабтает.
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн flint1975

  • Участник
  • *
  • Сообщений: 1 443
Огромное СПАСИБО, пытаюсь пока разобраться, хотя все очень доступно, однако второй путь не получится,
потому как:
Цитировать
DSL MODEM пробрасывает все порты на 192.168.1.1, а порт 3389 на 192.168.1.20 напрямую
 и у вас все рабтает.
Модем так не умеет
Либо все порты куда-то, либо 16 пробросов по одному порту.
Причем очень желательно, чтобы при обрыве ррр, инет был через адсл
Сейчас это выполняется. поэтому пойду по первому пути.

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 984
    • Пошаговые инструкции
однако второй путь не получится,
потому как:

Mодем так не умеет
Либо все порты куда-то, либо 16 пробросов по одному порту.
Получится. Вы не путайте проброс портов и раздавать инет в локалную сеть.
Вам зачем на сервер вообще что-то пробрасывать? У вас там работает Веб-сервер или FTP? Если ничего не работает и не сомтрит наружу, то можете все пробросить на регистратор.
Потом проверить и пробросить только 3389, если заработает, то вот вам 15 портов для других целей.
Причем очень желательно, чтобы при обрыве ррр, инет был через адсл
При обрыве ppp вы все равно вручную default меняете, тут точно таrже, поменяете на это время и все, сервер будет за инетом ходить через dsl,
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн flint1975

  • Участник
  • *
  • Сообщений: 1 443
При обрыве ppp вы все равно вручную default меняете
А вот и нет! :) у меня там default и там и там !
А поскольку, в ppp1 стоит "Restore_defaultroute=yes" и стартует он последним - пока поднят ppp дефолтом стоит его маршрут, а вот если "ifdown ppp1" - автоматом встает адсл-ный маршрут. Это проверено, правда не проверено на обрыв - удаленно не знаю как :)

Насчет перенаправить только некоторые порты: ssh, rdp, radmin, 8080 - с этим согласен, остальные забанить.
Да и безопаснее так, zyxel сломать малореально!

Оффлайн flint1975

  • Участник
  • *
  • Сообщений: 1 443
Собственно рекомендованный путь - не прокатил!
Я попробовал следующее:
1. В file /etc/iproute2/rt_tables
...
253 default
202 mapserv
0 unspec
...
2. Скрипт:
iptables -A PREROUTING -i eth0 -t mangle -p tcp -m multiport --sport 3389,4899 -j MARK --set-mark 2
iptables -A PREROUTING -i eth0 -t mangle -p udp -m multiport --sport 3389,4899 -j MARK --set-mark 2
ip rule add fwmark 2 table mapserv
Теперь надо добавить маршрут типа:
ip route add default via 192.168.0.1 src 192.168.0.4 table mapservтолько он не добавляется, пишет:
[root@gtw ppp1]# ip route add default via 192.168.0.1 src 192.168.0.4 table mapserv
RTNETLINK answers: File exists
И это тоже понятно, потому что:

[root@gtw ppp1]# ip r
10.64.64.65 dev ppp1  proto kernel  scope link  src 10.86.105.7
85.113.58.189 via 192.168.0.1 dev eth1  src 192.168.0.4
85.113.41.39 via 192.168.0.1 dev eth1  src 192.168.0.4
85.113.58.202 via 192.168.0.1 dev eth1  src 192.168.0.4
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.1
192.168.0.0/24 dev eth1  proto kernel  scope link  src 192.168.0.4
default dev ppp1  scope link
И еще, я подозреваю, что его надо NAT-ить, а не просто перенаправлять в интерфейс, а как это сделать я не знаю!
У кого какие мнения?