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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Переназначение маршрута по умолчанию, после падения интерфейса  (Прочитано 3289 раз)

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

Оффлайн ivsatel

  • Автор темы
  • Активист
  • *
  • Сообщений: 336
    • Просмотр профиля
eth0 = LAN
ppp0 = WAN
ppp1 = WAN

Есть скрипт, который поднимает два маршрута по умолчанию, если оба конекта активны. Находится в папке /etc/ppp/ip-up.d
(Нажмите, чтобы показать/скрыть)
Второй скрипт, находится в папке /etc/ppp/ip-down.d и предназначен для назначения одного дефолтного маршрута, при падении одного из них.
(Нажмите, чтобы показать/скрыть)
Вот содержимое rt_tables:
(Нажмите, чтобы показать/скрыть)
При поднятых 2-х интерфейсах ppp+

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

И после падения одного из них

(Нажмите, чтобы показать/скрыть)
(Нажмите, чтобы показать/скрыть)
При этом связь со шлюзом есть, а вот ping наружу
ping ya.ru
ping: unknown host ya.ru
Соответственно инета ни на шлюзе ни в локалке нет.
Я понимаю что проблема в скрипте ip-down.d но в чем не пойму.
« Последнее редактирование: 23 Июня 2012, 12:00:06 от ivsatel »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28365
    • Просмотр профиля
Проблема в DNS...
Если возможно, постарайтесь сделать так, чтобы ваш DNS сервер не зависел от падений ppp соединений.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн ivsatel

  • Автор темы
  • Активист
  • *
  • Сообщений: 336
    • Просмотр профиля
Проблема в DNS...
Если возможно, постарайтесь сделать так, чтобы ваш DNS сервер не зависел от падений ppp соединений.
Я тоже так думал, и убирал все сторонние скрипты из папок ip-up.d и ip-down.d такие как 0000userpeerdns 0dns-down bind9. А какая связь с dns сервером может быть еще не пойму.
На сколько я понимаю, при одном активном соединении картина маршрутизации должна быть такой:

195.2.238.11 dev ppp0  proto kernel  scope link  src 109.196.76.252
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.1
default dev ppp0  scope link

А у меня напрочь отсутствует маршрут default
195.2.238.16 dev ppp0  proto kernel  scope link  src 195.2.238.226
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.1

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
DNS тут явно не причем. В скриптах ip-down.d : 0000userpeerdns 0dns-down bind9 - вообще нет намёка на роутинг, что не удивительно. Мы разбирали этот скрипт с тобой в ЛС. Что было поправили, но я смотрю тут новое, что-то. flash - это не flush :)
Смотри при опускании интерфейса, отрабатывает ли сброс ip rule, очищаются ли таблицы маршрутизации функцией flushtbl. Тут надо понять отрабатывают ли условия if [];then fi. По-хорошему, конечно надо было через оператор case делать. Но это сути не меняет.
OpenWrt 19.07

Оффлайн ivsatel

  • Автор темы
  • Активист
  • *
  • Сообщений: 336
    • Просмотр профиля
Получается что не отрабатывает:
(Нажмите, чтобы показать/скрыть)

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

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28365
    • Просмотр профиля
ip route list table all
....
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Вот еще чего вспомнил. Название скрипта не должно содержать точки.
OpenWrt 19.07

Оффлайн ivsatel

  • Автор темы
  • Активист
  • *
  • Сообщений: 336
    • Просмотр профиля
(Нажмите, чтобы показать/скрыть)

(Нажмите, чтобы показать/скрыть)
Вот правильный листинг.
Название точек не содержит.
« Последнее редактирование: 10 Марта 2012, 22:43:33 от ivsatel »

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Ну окэ. Давай по-другому. Удали все что тебе ip-up.d понаписал. Во всех таблицах.
Просто, но сурово.
Код: (bash) [Выделить]
#!/bin/sh
# file: /etc/ppp/ip-down.d/route
ip rule del from $(ip a |grep ppp1 | tail -1 |awk '{print $2}') table provider2
ip rule del from $(ip a |grep ppp0 | tail -1 |awk '{print $2}') table provider1
ip route flush table provider1
ip route flush table provider2
ip route flush cache
ip r d default
ip r a default dev ppp1
ip r a default dev ppp0
Такая конструкция отрабатывает?
OpenWrt 19.07

Оффлайн ivsatel

  • Автор темы
  • Активист
  • *
  • Сообщений: 336
    • Просмотр профиля
Сохранил этот скрипт, запустил его. Вообще непонятное произошло:
sudo /home/ivsatel/text
RTNETLINK answers: No such file or directory
RTNETLINK answers: File exists
Смотрю ip r
(Нажмите, чтобы показать/скрыть)
Думаю востановить и запускаю:
sudo /etc/ppp/ip-up.d/ip-upДалее смотрю ip r
(Нажмите, чтобы показать/скрыть)
Вот как. Что-бы вернуть все обратно, sudo reboot.

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Непонятные вещи ты делаешь. Этот скрипт не руками запускается, а ifupdown'ом.
И все таки переименуй на всякий случай - без дефиса.
OpenWrt 19.07

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28365
    • Просмотр профиля
Дефис в порядке.

If  neither  the  --lsbsysinit  option nor the --regex option is given then the names must consist entirely of upper and lower case letters, digits, underscores, and hyphens.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн ivsatel

  • Автор темы
  • Активист
  • *
  • Сообщений: 336
    • Просмотр профиля
1 - Переименовал оба скрипта в обеих папках, исключив дефис из их названий.
2 - В скрипте поднятия интерфейсов заменил содержимое, на то что предложил ты.
3 - Отключаю один интерфейс sudo poff dsl-provider2
4 - Смотрю маршруты ip r
195.2.238.16 dev ppp0  proto kernel  scope link  src 195.2.238.226
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.1
5 - Думаю поднять интерфейс, чтобы посмотреть результат работы нового скрипта sudo pon dsl-provider2
Plugin rp-pppoe.so loaded.
RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5
6 - Смотрю маршруты ip r
208.100.61.101 dev ppp0  scope link
195.82.146.114 dev ppp0  scope link
85.25.118.35 dev ppp0  scope link
212.117.174.172 dev ppp0  scope link
94.100.191.201 dev ppp0  scope link
94.100.191.202 dev ppp0  scope link
217.20.154.42 dev ppp0  scope link
94.100.191.203 dev ppp0  scope link
217.20.154.43 dev ppp0  scope link
94.100.191.204 dev ppp0  scope link
217.20.154.44 dev ppp0  scope link
195.2.238.16 dev ppp0  proto kernel  scope link  src 195.2.238.226
195.2.238.16 dev ppp1  proto kernel  scope link  src 46.148.129.235
95.66.185.86 dev ppp0  scope link
217.20.154.45 dev ppp0  scope link
176.31.107.75 dev ppp0  scope link
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.1
default dev ppp1  scope link
Так тоже самое

7 - Заменяю содержимое скрипта ipup на старое содержимое
8 - sudo reboot

The system is going down for reboot NOW!


Пользователь решил продолжить мысль 11 Марта 2012, 00:11:28:
На всякий случай конфиги предоставлю:

(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 11 Марта 2012, 00:11:28 от ivsatel »

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Да причем тут ip-up.d? Я же выделил, в скрипте
# file: /etc/ppp/ip-down.d/route
Скрипт в ip-up.d нормально отрабатывает.
OpenWrt 19.07

Оффлайн ivsatel

  • Автор темы
  • Активист
  • *
  • Сообщений: 336
    • Просмотр профиля
Отключаю ppp1   sudo poff dsl-provider2
ip r
195.2.238.18 dev ppp0  proto kernel  scope link  src 195.2.238.226
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.1
default dev ppp0  scope link

Включаю ppp1   sudo pon dsl-provider2
Plugin rp-pppoe.so loaded.
RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5

ip r
208.100.61.101 dev ppp0  scope link
195.82.146.114 dev ppp0  scope link
85.25.118.35 dev ppp0  scope link
212.117.174.172 dev ppp0  scope link
94.100.191.201 dev ppp0  scope link
94.100.191.202 dev ppp0  scope link
217.20.154.42 dev ppp0  scope link
94.100.191.203 dev ppp0  scope link
217.20.154.43 dev ppp0  scope link
94.100.191.204 dev ppp0  scope link
217.20.154.44 dev ppp0  scope link
195.2.238.16 dev ppp1  proto kernel  scope link  src 31.135.232.126
95.66.185.86 dev ppp0  scope link
217.20.154.45 dev ppp0  scope link
176.31.107.75 dev ppp0  scope link
195.2.238.18 dev ppp0  proto kernel  scope link  src 195.2.238.226
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.1
default
        nexthop dev ppp0 weight 9
        nexthop dev ppp1 weight 7

Работает!

 

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