Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: IPROUTE2 + 2 провайдера  (Прочитано 53307 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн badfiles

  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #45 : 12 Ноября 2009, 14:58:56 »
Я попробовал, наверное, все варианты, но не понимаю, почему пакеты не возвращаются.

Основная схема была такая:

ip rule list
(Нажмите, чтобы показать/скрыть)

ip route list table T2
(Нажмите, чтобы показать/скрыть)

ip route list table main
(Нажмите, чтобы показать/скрыть)


iptables -t mangle --list
(Нажмите, чтобы показать/скрыть)

iptables -t nat --list -v
(Нажмите, чтобы показать/скрыть)

Остальные таблицы очистил и ставил в default policy allow

Вайршарком вижу, что пакет уходит в $test-network c правильного интерфейса, и оттуда отвечают на $ip2, на этом всё. локальному клиенту ничего не отправляется, сломал уже всю голову себе.
« Последнее редактирование: 12 Ноября 2009, 15:11:15 от badfiles »

Оффлайн Enkil-404

  • Любитель
  • *
  • Сообщений: 53
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #46 : 12 Ноября 2009, 15:10:23 »
Вариант, как у меня пробовали?
и кстати, а почему только одна таблица(Т2) используется?
насколько я понял, если хотим разделить траффик, то нужно 2 таблицы маршрутизации(вроде логично) и iptables'ом раздавать 2 типа меток по критериям(источник или назначение и т.д.)

Оффлайн badfiles

  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #47 : 12 Ноября 2009, 15:14:04 »
щас просто делаю на живом сервере, вот все уйдут, попробую 2 таблицы, хотя в успех не особо верю уже
Так получается, что я не могу отдавать обратный пакет из не main, в таблице main все прекрасно работает
« Последнее редактирование: 12 Ноября 2009, 15:22:09 от badfiles »

Оффлайн Enkil-404

  • Любитель
  • *
  • Сообщений: 53
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #48 : 12 Ноября 2009, 15:19:46 »
вроде у товарища Nesmit все получилось, конфиги он привел на прошлой странице. Я взял его конфиги и дополнил своими из старого скрипта для одного внешнего интерфейса, распространив правила iptables где нужно на 2 внешних интерфейса. Проблема в том, что я сейчас болею, а удаленно запускать скрипт стремно  - если не заработает, то админ, который сейчас на месте, не сможет вернуть "как было", а и-нет крайне нужен для работы((((
Да и вообще без теста боязно, а тестить неначем.
Если у вас получиться, основываясь на конфигах Nesmit'а, отпишитесь пожалуйста!

Оффлайн badfiles

  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #49 : 12 Ноября 2009, 15:26:28 »
так я этими и пользовался. только брал их здесь http://www.opennet.ru/base/net/debian_multilink.txt.html
Просто я решил, что стоит для начала сделать одну таблицу дополнительную, и пропробовать в нее пакеты направить.
Направить их туда получилось, и ответы приходят, а вот дальше ответный пакет провадает.
Просто может я чего напутал

Пользователь решил продолжить мысль 12 Ноября 2009, 17:09:26:
это просто какой-то дурдом. просто поменял дефолттный гейтвей на второго прова и все работает. но только через таблице main. а вот из таблицы T2 ну никак не вываливается обратно пакет, как определить, где он там застревает(
« Последнее редактирование: 12 Ноября 2009, 17:09:26 от badfiles »

Оффлайн Enkil-404

  • Любитель
  • *
  • Сообщений: 53
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #50 : 12 Ноября 2009, 17:32:51 »
а что именно работает при смене дефолтгэйта?
траффик начал распределятся между провами по параметрам заданным тобой?

с 2 таблицами еще не пробовал?
правила iptables распространял на оба внешних интерфейса?

ЗЫ ламерский вопрос - как вернуть рабочее состояние при одном внешнем интерфейсе, если скрипт не сработает как надо?(ведь если я правильно понимаю, то то созданные таблицы маршрутизации не будут давать работать нормально если я просто воспользуюсь старым скриптом для одного интерфейса?)

Оффлайн badfiles

  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #51 : 12 Ноября 2009, 18:25:14 »
а я уже подумал что второй линк вообще дохный. Но если поменять провов местами (втогоро в таблицу main а первого в Т2), то второй начинает работать как положено, а по первому нет ответных пакетов.
Сейчас мне надо выяснить, где и почему застревают эти обратные пакеты. Пока никаких идей нет.

Ну вот, снес вообще default gatewaty, заполнил таблицу Т1 для первого прова, переключил метки в тестовой подсети, и имею точно такой же невозврат пакетов, как и со вторым провом. Все, финиш.
« Последнее редактирование: 12 Ноября 2009, 18:35:53 от badfiles »

Оффлайн Enkil-404

  • Любитель
  • *
  • Сообщений: 53
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #52 : 12 Ноября 2009, 18:34:02 »
так а с 2 таблицами почему не хочешь попробовать? вроде во всех мануалах 2 создают

Оффлайн Nesmit

  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #53 : 12 Ноября 2009, 18:34:24 »

Пользователь решил продолжить мысль 12 Ноября 2009, 13:09:26:
это просто какой-то дурдом. просто поменял дефолттный гейтвей на второго прова и все работает. но только через таблице main. а вот из таблицы T2 ну никак не вываливается обратно пакет, как определить, где он там застревает(
Вообще то иногда достаточно и одной таблички. Все что по умолчанию прется по main, а отдельное можно меткой запихнуть в таблицу. У мя удачно свелись 3 канала :) Но сам всетаки остановился на 2х табличках.

По доке нужно так.
        /etc/iproute2/rt_tables
        10      T1
        20      T2
Но копаясь в 100тый раз в скрите, поменял 20 на 11. Если рассуждать логически, погоды не делает.

а что именно работает при смене дефолтгэйта?
траффик начал распределятся между провами по параметрам заданным тобой?
ЗЫ ламерский вопрос - как вернуть рабочее состояние при одном внешнем интерфейсе, если скрипт не сработает как надо?(ведь если я правильно понимаю, то то созданные таблицы маршрутизации не будут давать работать нормально если я просто воспользуюсь старым скриптом для одного интерфейса?)
В моем случае (вариант1), если использовать скрипт, то ничего страшногоне произойдет. Достаточно удалить правила с метками и все пойдет по дефолту, скрипт только создает правила, а выполнять их или нет следует из меток. Кроме этого скрипт нормально поднимет обоих провайдеров. С внешней стороны можно заходить на сервер с любого. Потом, метки ставятся в прероутинге, значит. Метки никак не влияют на работу фаервола. Они срабатывают только в момент выбора маршрута. Сижу изучаю твои конфы.
Я довольно долго эксперементировал при живых пользователях. ;) И ничего, максимум сессии рвались.
Например, в моем случае правила в таблички загоняются из одого скрипта, в конце него расставляются метки. А правила фаервола стартуют перед ним, отдельным скриптом. В результате, если я что то меняю, мне достаточно удалить метки и перезапустить 2й скрипт с табличками.

PS: окуратно будте с "ip route del default" если команду выполнить из консоли. Сервер отвалится от инета. Обязательно нужно добавить вторую строку типа "ip route del default && ip route add default via $GW_INET1"  с нужным GW.  Разок наступил, пришлось проехать 240км. :) Локалка работает, инет нет.
« Последнее редактирование: 12 Ноября 2009, 18:39:02 от Nesmit »

Оффлайн badfiles

  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #54 : 12 Ноября 2009, 18:45:17 »
Да нет, у меня вроде все работает, я же говорю, обратные пакеты застревают непонятно где. То же самое с любой таблицей, с любым провом.
В таблице main оба прова работают прекрасно, не меняя iptables
Я прекрасно вижу, как работает routing decision, как в зависимости от наличия метки меняестя исходящий адрес и маршрут, я вижу ответ сервера на один из моих внешних ip, а далльше хана.
Если маршруты в таблице main, то есть ответ, а если в Т2 или Т1, то нет. Это я не могу понят вообще никак.

Грубо говоря, я дошел уже до того, что просто не меняю в вистеме вообще ничего, кроме названия таблицы маршрутизации. Вот если оно main, то все работает, а если не main, то все работает до момента обратного пакета с внешнего ip на локальный
« Последнее редактирование: 12 Ноября 2009, 18:48:49 от badfiles »

Оффлайн Nesmit

  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #55 : 12 Ноября 2009, 18:54:42 »
К стати откуда проверяешь? В моем случае в качестве подопытного клиента был файловый сервер. Так вот, если слать пакеты с локального шлюза, пакеты дохнут или улетают и не возвращаются. А если сделать с подопытного, то все пучком. Я пока никак немогу понять в чем петрушка.

Оффлайн badfiles

  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #56 : 12 Ноября 2009, 19:08:17 »
Проверяю с клинта внутри локальной сети. Да все уже, похоже у мня крыша съехала, все равно уже ничего не настроить.

Оффлайн Nesmit

  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #57 : 12 Ноября 2009, 19:28:51 »
ну эт нормально. :)

Оффлайн Enkil-404

  • Любитель
  • *
  • Сообщений: 53
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #58 : 12 Ноября 2009, 19:30:08 »
Цитировать
Сижу изучаю твои конфы.

можно будет потом ваше мнение узнать?

Оффлайн Nesmit

  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #59 : 12 Ноября 2009, 20:11:34 »
У меня все на много проще, но и нет таких задач как у тебя.
Единственное смущает зачем столько правок в sysctl? Стандартное чем не удовлетворяет?
Часть параметров, заставляет ядро дико жрать память. Такие параметры нужны при большом количестве пользователей 500 и > . Или в трафике в 40 или более мегабит.

 

Страница сгенерирована за 0.035 секунд. Запросов: 23.