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


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

Автор Тема: Два ppp интерфейса Webсервер и iproute  (Прочитано 2530 раз)

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

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: Два ppp интерфейса Webсервер и iproute
« Ответ #15 : 11 Февраля 2014, 15:18:20 »
/etc/iproute2/rout0079 шелл со роутами, я правильно понял?
OpenWrt 19.07

Оффлайн Scherkhan

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
  • Глюк — любимый композитор всех программистов
    • Просмотр профиля
    • NET.ScherkhanLab
Re: Два ppp интерфейса Webсервер и iproute
« Ответ #16 : 11 Февраля 2014, 15:23:53 »
/etc/iproute2/rout0079 шелл со роутами, я правильно понял?
Да, именно так.
(Нажмите, чтобы показать/скрыть)
--
Первая компьютерная война началась после того, как пингвин разбил яблоком окно.
Совершенство достигнуто не тогда, когда нечего добавить, а когда нечего удалить.

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: Два ppp интерфейса Webсервер и iproute
« Ответ #17 : 11 Февраля 2014, 17:57:34 »
А вот теперь этот скрипт уберите из rc.local, и положите туда, где ему положено быть. ЭТОТ провайдер обрывает сессию, поэтому вместе интерфейсом удаляются маршруты в таблицах. Чтобы этого избежать нужно вызывать скрипт при поднятии/падении ppp-линка в /etc/ppp/ip-{up,down}.d/
Ну и причесать немного.
(Нажмите, чтобы показать/скрыть)
Да, в таблице 0079 достаточно одной записи — маршрута по умолчанию.

Пользователь решил продолжить мысль 11 Февраля 2014, 18:01:05:
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 11 Февраля 2014, 18:01:05 от KT315 »
OpenWrt 19.07

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Два ppp интерфейса Webсервер и iproute
« Ответ #18 : 11 Февраля 2014, 22:12:10 »
Что за патч?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: Два ppp интерфейса Webсервер и iproute
« Ответ #19 : 12 Февраля 2014, 00:25:39 »
« Последнее редактирование: 12 Февраля 2014, 00:27:45 от KT315 »
OpenWrt 19.07

Оффлайн Scherkhan

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
  • Глюк — любимый композитор всех программистов
    • Просмотр профиля
    • NET.ScherkhanLab
Re: Два ppp интерфейса Webсервер и iproute
« Ответ #20 : 12 Февраля 2014, 04:09:26 »
Что то не заладилось.
Пошагово - что и как делал:

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

Перезагрузка -полёт нормальный. В смысле загрузилось, таблицы созданы, при обрыве - всё по старому.
Отключил его в rc.local
Создал два файла:

/etc/ppp/ip-up.d/route0079
/etc/ppp/ip-down.d/route0079

Доступ на них: root:root 0755

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

ip r $ACTION default via $PPP_REMOTE dev $PPP_IFACE table 0079
ИМХО наверно так?
ip route $ACTION default via $PPP_REMOTE dev $PPP_IFACE table 0079Затем /etc/ppp/peers/dsl-provider:
(Нажмите, чтобы показать/скрыть)

Соответственно в /etc/ppp/peers/ds2-provider:

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

Соответственно:
dsl-provider для ppp0
ds2-provider для ppp1

Перезагрузка. Результат:
(Нажмите, чтобы показать/скрыть)
Таблица 0079 не создается. Где то я косячу - где не вижу.
« Последнее редактирование: 12 Февраля 2014, 04:16:20 от Scherkhan »
--
Первая компьютерная война началась после того, как пингвин разбил яблоком окно.
Совершенство достигнуто не тогда, когда нечего добавить, а когда нечего удалить.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Два ppp интерфейса Webсервер и iproute
« Ответ #21 : 12 Февраля 2014, 06:38:23 »
1. Замени апострофы на "$( )".
2. Базовый каталог для выполнения скрипта тебе НЕ НУЖЕН. Подробности http://anr-daemon.livejournal.com/2040.html
3. Тебе вообще не нужен этот скрипт в ip-up/down. Особенно в down.
Один скрипт в /etc/network/if-up.d/
(Нажмите, чтобы показать/скрыть)
br0 - локалка.

Тут немного больше слов о маршрутизации.
« Последнее редактирование: 12 Февраля 2014, 14:09:42 от AnrDaemon »
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: Два ppp интерфейса Webсервер и iproute
« Ответ #22 : 12 Февраля 2014, 19:55:45 »
Скрипт в /etc/network/if-down.d/ не подходит по причине описанной в первом топике.
В моём варианте ошибка в строке 12. Хоть бы кто аудит кода делал ;)
OpenWrt 19.07

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Два ppp интерфейса Webсервер и iproute
« Ответ #23 : 12 Февраля 2014, 19:56:50 »
Не то что не подходит - он не нужен.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Scherkhan

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
  • Глюк — любимый композитор всех программистов
    • Просмотр профиля
    • NET.ScherkhanLab
Re: Два ppp интерфейса Webсервер и iproute
« Ответ #24 : 13 Февраля 2014, 03:32:24 »
Что то, господа присяжные заседатели, лёд пока не тронулся!
Не создаётся таблица 0079 ни в первом случае, как уже писал выше, ни при таком варианте:

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

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

Насчёт второго скрипта от уважаемого AnrDaemon...
Если честно, не пробовал с ним экспериментировать, поскольку логику его (скрипта) пока не сильно понял в связи с моими пробелами в специализации ))).
--
Первая компьютерная война началась после того, как пингвин разбил яблоком окно.
Совершенство достигнуто не тогда, когда нечего добавить, а когда нечего удалить.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Два ppp интерфейса Webсервер и iproute
« Ответ #25 : 13 Февраля 2014, 03:46:10 »
Сама по себе из воздуха таблица не создастся.
Ей надо прописывать ручками в файле rt_tables.
В скрипте логика только одна - проследить, чтобы на def. gw было не больше одного правила.
Код: (bash) [Выделить]
  if [ "$FWMARK" -a "$TABLE" != "default" ]; then
    (ip rule list | grep -q "fwmark $FWMARK lookup $TABLE") || (
      ip rule delete table $TABLE > /dev/null 2>&1
      ip rule add fwmark $FWMARK table $TABLE
    )
  fi

Если определена $FWMARK и $TABLE <> 'default',
Если в списке правил отсутствует(!) правило на эту таблицу по этой марке, удалить правило на указанную таблицу (в предположении, что она могла быть в списке с другой маркировкой) и создать заново с правильной маркой.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Scherkhan

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
  • Глюк — любимый композитор всех программистов
    • Просмотр профиля
    • NET.ScherkhanLab
Re: Два ppp интерфейса Webсервер и iproute
« Ответ #26 : 14 Февраля 2014, 01:53:49 »
И так, господа присяжные заседатели - лёд тронулся! Но поплыл почему то против течения ))))
Поскольку из скриптов таблицы упорно не хотели создаваться, вначале решил хотя бы просто создать таблицу и поместить туда хоть какое нибудь правило. В /etc/ppp/ip-up.d поместил файл 00route0079 такого содержания:
(Нажмите, чтобы показать/скрыть)

Перезагруз - как ни странно все стартовало! И что самое интересное - заработало!
Попробовал передернуть соединения вначале poff/pon - чудо, опять стартует! И начинает работать, оба ppp соединения как нужно. Затем ifdown/ifup - стартует и работает.
Столкнулся с тем, о чем писал уважаемый AnrDaemon, переброс ppp соединений при старте в обратном порядке, т.е. когда ppp1 стартует раньше ppp0, то они меняются значениями (названиями).
Решилось то же просто в скрипты dsl-provider - (это ppp0) и ds2-provider - (это ppp1) дописал:
#для dsl-provider
unit 0

# для ds2-provider
unit 1
что железно заставляет принимать значение:
ppp0 для dsl-provider
ppp1 для ds2-provider

В целом, вроде все стартует и работает согласно логике, которую описал раньше. Но как всегда есть одна не понятность...

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

При таком раскладе, после каждого падения/подъема дописывается соответствующая строка. Честно - это уже выше моего понимания...
--
Первая компьютерная война началась после того, как пингвин разбил яблоком окно.
Совершенство достигнуто не тогда, когда нечего добавить, а когда нечего удалить.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Два ppp интерфейса Webсервер и iproute
« Ответ #27 : 14 Февраля 2014, 02:17:25 »
Таки не надо при каждом подъёме интерфейса эти правила создавать. Вы же их при падении не удаляете? :)
Они там всегда будут висеть, пока машина включена а вы держите свои шаловливые ручки подальше.
Если вы обратили внимание, я создаю правила при подъёме главного интерфейса. По сути один раз. (А при перезапуске - пересоздаю маршруты в таблицах, если их нету. Если есть - опять же, ничего не делаю.)
« Последнее редактирование: 14 Февраля 2014, 03:05:06 от AnrDaemon »
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Scherkhan

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
  • Глюк — любимый композитор всех программистов
    • Просмотр профиля
    • NET.ScherkhanLab
Re: Два ppp интерфейса Webсервер и iproute
« Ответ #28 : 14 Февраля 2014, 02:57:44 »
Уважаемый AnrDaemon,  таки вы абсолютно правы! Во истину одна голова хорошо, но много - лучше!

Поправил... Вот что получилось:
Добавил ещё один файл в /etc/ppp/ip-down.d под названием 00route0079 с содержанием:

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

ip rule стал уже такого вида:

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

Вдохновило! В /etc/ppp/ip-up.d файл 00route0079 причесал до такого состояния:
(Нажмите, чтобы показать/скрыть)

Результат ip rule:

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

Таки при таком густом обсуждении будем считать вопрос решенным.
AnrDaemon, ваш скрипт взял на вооружение, логику понял, поэкспериментирую с ним на другой машине, в безопасных условиях.
Личная благодарность AnrDaemon - Вам!!! KT315 - Вам!!! Спасибо за подсказки, идеи и опыт (сын моих ошибок трудных).
--
Первая компьютерная война началась после того, как пингвин разбил яблоком окно.
Совершенство достигнуто не тогда, когда нечего добавить, а когда нечего удалить.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Два ppp интерфейса Webсервер и iproute
« Ответ #29 : 14 Февраля 2014, 03:07:16 »
Вот после правки скрипта в /etc/ppp/ip-up.d можно смело удалять скрипт из ip-down - у вас дублируется функциональность. :)
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

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