![]() |
Модераторы: powerfox, ZeeLax |
![]() ![]() ![]() |
|
XpaH |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 19.5.2009 Где: Набережные Челны Репутация: нет Всего: нет |
Всем привет. Если кто-то разбирается в настройке маршрутов очень прошу помочь. Итак...
Дано: Севрер: 1 железяка - чисто маршрутизатором работает. OS: Debian Сеть: В серваке 4 интерфейса - 3 провайдера и 1 локалка. PPP0 - Пров1 PPP1 - Пров2 Eth8 - Пров3 Eth2 - Lan Сервер работает нормально, все интерфейсы подняты, все у всех провайдеров работает, все маршруты по портам прокинты в Lan так как надо. Проблема: Трабла в том, что у всех провайдеров есть одна "внутренняя" пересекающаяся подсеть. 10.0.0.0/255.0.0.0 В связи с этим я route для этой подсети могу настроить только на одного провайдера, при этом другие 2 перестают работать... Например, если я пропишу следующие строки: Чтобы работал Пров1: route add -net 10.0.0.0 netmask 255.0.0.0 dev ppp1 Чтобы работал Пров2: route add -net 10.0.0.0 netmask 255.0.0.0 dev ppp0 Чтобы работал Пров3: route add -net 10.0.0.0 netmask 255.0.0.0 dev eth8 При этом работает один из провайдеров. Пользователи других двух провайдеров зайти на сервер уже не могут, т.к. их роутит не на тот интерфейс. Задача: Сделать так, чтобы работали все 3 провайдера одновременно и пакеты уходили на нужный интерфейс. Возможные решения: Люди говорят, что как-то можно нарулить все это дело через iproute2, но естественно как это сделать я сам не знаю. Еще есть вариант - подменивать ИП адреса разных провайдеров например на 20.0.0.0 и 30.0.0.0 соответственно, а там уже разруливать нормально. Дело в том, что у меня есть только 1 сервер и все надо сделать именно на нём. Желающие помочь, прошу пишите свои рекомендации здесь. Тем кто на 100% уверен, что он знает как это делается и может помочь настроить, можете стукнуть в icq 304-40пять. Спасибо за внимание! |
|||
|
||||
ZeeLax |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4388 Регистрация: 20.8.2006 Где: Алма-Ата Репутация: 7 Всего: 88 |
А 50 баксов дадите? Зря вы написали слово "внутренняя" в кавычках - она ведь в самом деле внутренняя. К тому же, определитесь с целью. Что нужно? Доступ с сетей провайдеров на сервер или доступ из вашей локальной сети в сети провайдеров? -------------------- Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none. — Doug Larson |
|||
|
||||
XpaH |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 19.5.2009 Где: Набережные Челны Репутация: нет Всего: нет |
В случае если все будет работать, то дадим.
Мне кажется, все подробно расписано было... Пользователи всех провайдеров могут попасть на наш сервер. Каждый по своему каналу, пакеты до сервера уже доходят нормально, но обратно все пакеты идут только на один из выбранных мною интерфейсов. Т.е. если я выбрал Пров1, то пакеты приходят от каждого провайдера по своим проводам, а назад уходят по Пров1, в итоге работает все только у Пров1 абонентов... Задача именно разруливать пакеты с нашего сервера на каналы провайдеров. Вариант 1: Как-то роутинг настроить хитро, чтобы пакеты пришедшие по одному интерфейсу уходили на этот же интерфейс. Вариант 2: Все приходящие пакеты от пользователей у кого IP в сети 10.0.0.0 (Пров1), меняем IP на 20.0.0.0 на самом интерфейсе... Потом пакеты гуляют по локальной сети, как 20.0.0.0, потом направляем эту сеть на интерфейс Пров1, а там обратно меняется IP адрес на 10.0.0.0 и уже по этому самому интерфейсу возвращаются пакеты к пользователю. Вариант 3: Ваш вариант. Это сообщение отредактировал(а) XpaH - 20.5.2009, 10:17 |
||||
|
|||||
ZeeLax |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4388 Регистрация: 20.8.2006 Где: Алма-Ата Репутация: 7 Всего: 88 |
Вариант 2 пока самый подходящий. Уточнения:
1) создаём три таблицы, в каждой - маршрут по умолчанию в соответствующий интерфес (/etc/iproute2/rt_tables) 2) делаем на входе SNAT (iptables) 3) ответные пакеты маркируем в зависимости от адреса назначения (fwmark в iptables) 4) по марке заставляем их пройтись по нужной таблице (правила (rules) в iproute2) 5) делаем для них DNAT. Примерно так. -------------------- Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none. — Doug Larson |
|||
|
||||
ZeeLax |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4388 Регистрация: 20.8.2006 Где: Алма-Ата Репутация: 7 Всего: 88 |
А ещё, скажите... у вас какие адреса от провайдеров? В принципе, можно и без ната обойтись. И ещё - какими сервисами пользуются клиенты на вашем сервере?
-------------------- Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none. — Doug Larson |
|||
|
||||
XpaH |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 19.5.2009 Где: Набережные Челны Репутация: нет Всего: нет |
Вот условно схема всей моей сети. Обязон такая нужна, тут без вариантов (советы типо подели сети просто не канают). К тому же данная схема работает нормально, все пашет, пользователи заходят нормально. Единственная проблема с одной "серой" подсетью (10.0.0.0).
![]() Вот схема сети и проблема пересечения подсетей провайдеров: ![]() При этом: 1) если я прописываю маршрут: route add -net 10.0.0.0 netmask 255.0.0.0 dev ppp0 То работает все у абонентов ДОМ, а абоненты ТВТ и ТТК не пашут. 2) если я прописываю маршрут: route add -net 10.0.0.0 netmask 255.0.0.0 dev ppp1 То работает у абонентов ТВТ, абоны ДОМ и ТТК не пашут 3) если я прописываю маршрут: route add -net 10.0.0.0 netmask 255.0.0.0 dev eth8 То работает у абонентов ТТК, абоны ДОМ и ТТК не пашут Это сообщение отредактировал(а) XpaH - 21.5.2009, 13:13 |
|||
|
||||
ZeeLax |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4388 Регистрация: 20.8.2006 Где: Алма-Ата Репутация: 7 Всего: 88 |
Так у вас тут типичная ситуация. В разговоре по ICQ выяснилось, что пользователи каждой сети обращаются к серверу по адресу, висящему на интерфейсе "своего" провайдера. Идём на lartc.org давим там "Dive in!" и читаем про правила. Ну, или первый вариант с баксами
![]() -------------------- Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none. — Doug Larson |
|||
|
||||
ZeeLax |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4388 Регистрация: 20.8.2006 Где: Алма-Ата Репутация: 7 Всего: 88 |
Во вчерашнем разговоре с ХраНом в ICQ выяснилось, что дела обстоят несколько по-другому - сервисы находятся на серверах в локальной сети, а не на маршрутизаторе. Это конечно следовало из фразы
но, гм...© Доступ клиентов из сети каждого провайдреа осуществляется на "свой" адрес. В общем, задача в следующем - заставить ответные пакеты от серверов из локальной сети улетать в тот интерфейс маршрутизатора, из которого прилетел запрос. Решение. Берем в руки модуль conntrack. С помощью iptables маркируем все входящие пакеты на интерфейсе eth2 в зависимости от их оригинального адреса назначения:
Создаём три таблицы для iproute2
Заполняем таблицы маршрутами к провайдерам (в нашем случае это один маршрут через езернет и два через пэ-пэ-пэ)
Добавляем правила, для каждой марки
Сбрасывем кэш
и радуемся жизни ![]() Это сообщение отредактировал(а) ZeeLax - 22.5.2009, 05:18 -------------------- Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none. — Doug Larson |
||||||||||
|
|||||||||||
XpaH |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 19.5.2009 Где: Набережные Челны Репутация: нет Всего: нет |
Ага, подтверждаю, все работает. Огромное спасибо ZeeLax`у.
|
|||
|
||||
bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 34 Всего: 317 |
ZeeLax, молодец,
если я правильно понял... это своеобразная реализация VLAN? кстати, $50 получил ? Это сообщение отредактировал(а) bilbobagginz - 23.5.2009, 21:45 -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
ZeeLax |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4388 Регистрация: 20.8.2006 Где: Алма-Ата Репутация: 7 Всего: 88 |
bilbobagginz, спасибо.
Насчёт вланов... гм.. не знаю, мо-моему тут нечто другое. P.S. Получил ![]() Добавлено через 37 секунд XpaH, тему, пожалуйста, отметьте решенной. -------------------- Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none. — Doug Larson |
|||
|
||||
bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 34 Всего: 317 |
ZeeLax,
vlan - это средство 2-го уровня (по модели OSI) для разделения физ. свичей на несколько виртуальных, а также для логического разделения на подсети. идея в том, что добавляется VLAN ID, т.е. дополнительная координата. т.е. можно по ней перекидывать сообщения. проблема в том, что это дополнительный модуль ядра. и я не знаю что будет труднее этому серверу - обозначать VLAN (на 2-м уровне), или делать маркиковку и переброс как ты сделал... -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
ZeeLax |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4388 Регистрация: 20.8.2006 Где: Алма-Ата Репутация: 7 Всего: 88 |
Что такое влан я в курсе
![]() -------------------- Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none. — Doug Larson |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Linux/UNIX: Администрирование" | |
|
Этот форум предназначен для решения вопросов по администрации *n?x-систем, в частности по настройке сложных сетей и обслуживанию серверного оборудования.
За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу). В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим. Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Администрирование *NIX систем | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |