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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

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

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

Оффлайн badfiles

  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #105 : 16 Ноября 2009, 15:28:31 »
Ну ведь работает, я же пакеты запостил.

У меня есть 2 варианта, либо у меня есть какое-то теоретическое недопонимание процесса, либо это баг.

Прошу исключить первый.
« Последнее редактирование: 16 Ноября 2009, 15:43:43 от badfiles »

Оффлайн Enkil-404

  • Любитель
  • *
  • Сообщений: 53
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #106 : 16 Ноября 2009, 21:40:31 »
Таки всем снова здравствуйте!

Сегодня вышел с больничного и попробовал запустить скрипты, наработанные по данной теме и мануалам.
Результат мне не понравился - прошу помощи в разборе вопроса.

Задача
2 внешних интерфейса на разных провайдеров
1 внутренний инт-с

необходимо разделить траффик следующим образом
80,8080,443,5190 пустить на одного прова
110,25 и остальное - на другого

что было
утром запустил скрипты, скрипт фаера отработал с ошибкой(банально синтаксис), инет и подключение к серваку исчезли. Локально запустил старые скрипты, и до вечера не трогал(до 18-00 низзяяя чтоб инета не было)
Вечером запустил поправленные скрипты, они отработали без ошибок, инет у клиентов был, НО без разделения траффика=(((
невзначай повторил чей-то "умный" шаг
Цитировать
ip route flush table main
сервак еще раз оборвал все подключения и стал недоступен(логично), после этого я тащу сервак к себе и локально запускаю неизмененные скрипты, потом тащу обратно(2 перезагрузки получилось), включаю и о, чудо - инет есть и он идет через нужного прова(80,8080 и 443), но почта не ходит вообще, извне по 2 интерфейсу не подключится ни по ssh ни по vpn(настроены на этот инт-с).
Еще раз проверяю скрипты, ненайдя объяснений проиходящему, перезапускаю их - итог, снова инет через старого прова по всем протоколам(но заработала почта и подключения).

Прошу помощи!!!

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

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

Подскажите, где я чего не доглядел!

ЗЫ подробное описание задач
(Нажмите, чтобы показать/скрыть)
https://forum.ubuntu.ru/index.php?topic=60258.30
« Последнее редактирование: 17 Ноября 2009, 00:59:12 от Enkil-404 »

Оффлайн fhieos

  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #107 : 16 Ноября 2009, 22:17:48 »
badfiles, возьмите любой веб-сервер, имеющий единственный ip и делайте наподобие:
tcpdump -ne -i any host ip_веб_сервераШлите этому серверу запрос любым удобным способом и смотрите.
И еще раз проверьте скрипты - метка 111 это далеко не метка 1

Пользователь решил продолжить мысль 16 Ноября 2009, 21:00:53:
Enkil-404
Цитировать
Задача
- Обеспечить выход в и-нет клиентам из локальной сети с распределением трафика как описано ниже
- Пустить трафик по портам 80, 8080, 443, 5190 через eth3(WebPlus), а 110 и 25(а также все что не подходит под eth3) через eth0(Futers).
- Организовать проброс входящих запросов по портам 80,444,443 на интерфейс 1го провайдера(Futers) на сервер с установленным и настроенным SBS(Small Bisness Server)
- Организовать возможность настройки почтовых клиентов не из локальной сети на работу с внутренним почтовым сервером(проброс запросов извне по портам 110 и 25)
для 1,2 сделайте по ссылке, что я выше приводил
3,4 не требует никаких настроек, если соединения происходят через default gateway
« Последнее редактирование: 16 Ноября 2009, 23:01:52 от fhieos »

Оффлайн Enkil-404

  • Любитель
  • *
  • Сообщений: 53
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #108 : 16 Ноября 2009, 23:20:56 »
Цитировать
Цитировать
Задача
- Обеспечить выход в и-нет клиентам из локальной сети с распределением трафика как описано ниже
- Пустить трафик по портам 80, 8080, 443, 5190 через eth3(WebPlus), а 110 и 25(а также все что не подходит под eth3) через eth0(Futers).
- Организовать проброс входящих запросов по портам 80,444,443 на интерфейс 1го провайдера(Futers) на сервер с установленным и настроенным SBS(Small Bisness Server)
- Организовать возможность настройки почтовых клиентов не из локальной сети на работу с внутренним почтовым сервером(проброс запросов извне по портам 110 и 25)
для 1,2 сделайте по ссылке, что я выше приводил
3,4 не требует никаких настроек, если соединения происходят через default gateway

Простите, а вы мои конфиги сначала посмотрели перед тем как советовать сделать по ссылке?
начнем с того, что у меня нет ни одного внешнего инт-са, получающего адрес по dhcp
во-вторых, пункты 3 и 4 вообще то требуют настроек iptables, так как само внешнее подключение например по 80 порту на шлюз не пробросится на другую машину.

Оффлайн badfiles

  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #109 : 17 Ноября 2009, 00:20:30 »
fhieos, вы просто невнимательно читали мои скрипты. вы лучше смотрите вывод таблиц. В скриптах все правильно.
Метка 111 -- это атавизм от двухтабличного скрипта, в моем случае вообще не используется.
Метка 1 вообще нигде не упоминается ни в каком виде.

tcpdump запускал именно с такими параметрами. его вывод в вольном изложении представлен выше.
Все больше склоняюсь к мысли, что это надо в багрепорт.

Пользователь решил продолжить мысль 16 Ноября 2009, 22:24:26:
Enkil-404, а у вас какое ядро?
« Последнее редактирование: 17 Ноября 2009, 00:30:58 от badfiles »

Оффлайн Enkil-404

  • Любитель
  • *
  • Сообщений: 53
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #110 : 17 Ноября 2009, 00:37:46 »
Linux  2.6.28-11-server
Ubuntu Server 9.04

Оффлайн fhieos

  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #111 : 17 Ноября 2009, 03:35:33 »
badfiles
Сделайте вывод именно tcpdump и именно с теми ключами, что я написал

Вот это:
14   1722.582111   172.19.106.144   94.25.208.252   TCP   57112 > https [SYN] Seq=0 Win=5840 Len=0 MSS=1460 TSV=1409780 TSER=0 WS=6
15   1723.141393   94.25.208.252   172.19.106.144   TCP   https > 57112 [SYN, ACK] Seq=0 Ack=1 Win=8190 Len=0 MSS=1380
16   1723.141426   172.19.106.144   94.25.208.252   TCP   57112 > https [ACK] Seq=1 Ack=1 Win=5840 Len=0
17   1762.553447   172.19.106.144   94.25.208.252   SSL   Continuation Data
18   1765.553405   172.19.106.144   94.25.208.252   SSL   [TCP Retransmission] Continuation Data
19   1766.121389   94.25.208.252   172.19.106.144   TCP   https > 57112 [RST] Seq=1 Win=9838 Len=0
не дает нужной информации, тк. нет имени интерфейса.
Вы напрасно упрямитесь, считая, что написанного выше за глаза хватит, чтобы делать выводы о баге в ядре.
Ошибка в том, что Вы думаете будто 172.19.106.144 "прибит гвоздями" к Вашему eth0 или ppp0, поэтому делаете неправильные выводы о маршрутизации.

Кстати, Вы делали
ping -I eth0 ya.ru
ping -I ppp0 ya.ru

Проверьте (и проверяйте каждый раз после манипуляций с таблицами).
Если у вас любой из таких пингов не работает, то ясно, что крутить мечеными пакетами рановато

Оффлайн badfiles

  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #112 : 17 Ноября 2009, 09:15:55 »
fhieos, вы опять невнимательно читаете. "Вот это" -- нормальный правильный сеанс связи, который я привел для иллюстрации того факта, что связь через другой шлюз возможна в принципе, и что у меня правильные маршруты во всех таблицах. Этот сеанс не имеет никакого отношения к обсуждаемой теме.
Если бы я действительно считал что это баг, уже давно бы оформил.
Но тем не менее, вы возможно правы. Я обязательно приведу вывод tcpdump для транзитного и для локального пакетов. С GPRS связываться больше не буду, все пойдет с боевого сервера.

Еще раз, все по порядку, с пояснениями и примерами.

cat rt_tables  (без комментариев)
(Нажмите, чтобы показать/скрыть)

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

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

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

Чтобы не постить сюда iptables, сделаем криминальное действие и проверим транзитную и локальную связь (при этом никаких меток никуда не ставим)
криминальное действие такое ip route add default via 92.105.36.1 dev eth3

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

локальный
(Нажмите, чтобы показать/скрыть)

Какой из этого следует вывод?  Вывод такой: у меня правильно работает шлюз, правильно транслируются адреса, правильно настроен второй провайдер, и вообще все правильно.
Убираем лишний дефолтный гейтвэй, и метим пакеты в таблице mangle, prerouting так:
(Нажмите, чтобы показать/скрыть)

локальный сеанс, он именно такой, какой должен быть
(Нажмите, чтобы показать/скрыть)

транзитный сеанс, здесь самое интересное. Что мы видим? Пакет уходит с правильного интерфейса с правильным source ip. (то есть он таки уходит в желаемую таблицу маршрутизации), и удаленный сервер отвесает на этот интерфейс и на этот ip. И все. система на это никак не реагирует, и начинает устанавливать связь с начала.
(Нажмите, чтобы показать/скрыть)

контрольный выстрел. заворачиваем локальный сеанс так
(Нажмите, чтобы показать/скрыть)

имеем уходящий с правильного интерфейса  и ip пакет, и никакой реакции системы.
(Нажмите, чтобы показать/скрыть)


Ну, как вам такой расклад?
« Последнее редактирование: 17 Ноября 2009, 10:59:03 от badfiles »

Оффлайн Enkil-404

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

что сделал
- поменял дефаулт гэйт на
ip route add default via [b]$GW_INET2[/b]
траффик по портам 80,8080,443 и 5190 пошел по нужным маршрутам(т.е. через 2го провайдера

Однако осталась пока непонятная проблема
не работает почта(почтовый сервер на MS Small Bisness Server 2003), т.е. не работает проброс 110 и 25го портов на шлюзе.
А также не работает проброс 80го 443го и 444го портов извне на этотже виндовый сервер.
Раньше при работе с одним провом работало и то и другое.

Часть скрипта iptables.
Раньше(когда работало) было тоже самое но только для $IP_INET1 и $IF_INET1(адрес и интерфейс старого прова)
(Нажмите, чтобы показать/скрыть)

заполнение таблиц маршрутизации
(Нажмите, чтобы показать/скрыть)

часть iptables где идет NAT
(Нажмите, чтобы показать/скрыть)

В чем проблема?

Оффлайн badfiles

  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #114 : 17 Ноября 2009, 12:52:47 »
- поменял дефаулт гэйт на
Так этого вполне достаточно, можно больше ничего не делать.
Задача то у нас стоит другая -- завернуть только определенный трафик через другой гейт.
Я тоже пробовал 2 дефолт рута в главную таблицу пехать -- ничего путного из этого не вышло.

Оффлайн Enkil-404

  • Любитель
  • *
  • Сообщений: 53
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #115 : 17 Ноября 2009, 12:58:56 »
просто в выше приведенных рабочих конфига от Nesmit, было по другому(так как было у меня до изменения дефолт гейта)

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

вот почему так и как это исправить я пока не разобрался


Проверил, поменял метки чтобы аська через нового прова, а 80,8080,443 через старого
не заработало - все равно все через нового идет, т.е. только по дефолт маршруту.
Получается что метки у меня не работают.

Почему?
« Последнее редактирование: 17 Ноября 2009, 13:05:56 от Enkil-404 »

Оффлайн badfiles

  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #116 : 17 Ноября 2009, 13:02:17 »
Товарищи_у_которых_все_работает, можно глянуть ваше дерево /proc/sys/net?
если надумаете дать, то там много секретного, замаскируйте айпишники, я предупредил ))

Пользователь решил продолжить мысль 17 Ноября 2009, 11:09:04:
Проверил, поменял метки чтобы аська через нового прова, а 80,8080,443 через старого
не заработало - все равно все через нового идет, т.е. только по дефолт маршруту.
Получается что метки у меня не работают.

Почему?
Я вас поздравляю, коллега, у вас скорее всего таже фигня. Метки работают, тут что-то другое.
« Последнее редактирование: 17 Ноября 2009, 13:11:38 от badfiles »

Оффлайн Enkil-404

  • Любитель
  • *
  • Сообщений: 53
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #117 : 17 Ноября 2009, 13:43:05 »
я начинаю сомневаться что метки работают, потому что если весь траффик(включая почтовый) пометить для работы через нового прова, то почта все равно не отправляется.
Однако, меня смутило что если в скрипте где метки расставляются снова вернуть дефаулт гейт на старого прова, инет пропадает(при работающих метках логично, т.к. они идут через нового), но почему он раньше не пропадал?(т.е. я просто попробовал откатить)

как проверить работают ли метки, идет ли трафик по по их условиям?

Оффлайн badfiles

  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #118 : 17 Ноября 2009, 13:52:07 »
tcpdump-ом

Оффлайн Enkil-404

  • Любитель
  • *
  • Сообщений: 53
    • Просмотр профиля
Re: IPROUTE2 + 2 провайдера
« Ответ #119 : 17 Ноября 2009, 14:09:13 »
хм, логично)))
ток как там увидеть что именно по метке идет пакет?
ЗЫ не очень умею читать tcpdump(понимаю что надо)

 

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