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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Не могу заставить работать скрипт при отключении интерфейса.  (Прочитано 1588 раз)

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

Оффлайн DexterHD

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
  • idexter.ru
    • Просмотр профиля
    • яDexter
Доброго дня, ув. сообщество. Проблема в следующем.
На ноутбуке стоит Ubuntu. По кабелю, ноутбук подключен к домашнему Роутеру.
На роутер приходит интернет от местного провайдера. Кроме того у метного провайдера, есть локальная сеть.
Ее я использую. А интернет хочу использовать от модема 3G.

Для того чтобы заблокировать интернет приходящий с рутера, я написал скрипт, который положил в /etc/network/if-up.d/
Данный скрипт удаляет маршрут по умолчанию и прописывает маршруты к локальным сетевым адресам.
При этом в какой либо настройке сети в ручную необходимость отпадает. Как только я вставляю кабель, NetworkManager
подключается к сети, подымается интерфейс, и маршруты дописываются. А стандартный удаляется.

Далее я вставляю к комп 3G Модем. В том же скрипте прописано, чтобы при поднятии интерфейса ppp0, для него добавлялся маршрут
по умолчанию. Соответственно весь трафик инета будет идти через ppp0. Все отлично работает.

Проблема возникает, когда происходит обрыв соединения по модему, или когда я отключаю модем.
Для того чтобы после отключения удалялся маршрут по умолчанию я добавил скрипт в каталог /etc/network/if-down.d/
В данном скрипте удаляется маршрут по умолчанию (default).

Суть проблемы такова, что данный скрипт почему то не срабатывает. Т.е. после отключения модема, маршрут по умолчнаию
не добавлется, а присваивается интерфейсу eth0. Вопрос, как заставить удалятся данный маршрут при отключении модема,
но не завтронув при этом сеть через кабель.

Код скрипта /etc/network/if-up.d/addroutes
if [ "$IFACE" = eth0 ] || [ "$IFACE" = wlan0 ]; then
        route delete default dev $IFACE
        # route add -host 192.168.1.1 dev $IFACE
        route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.1 dev $IFACE
        route add -net 172.22.0.0 netmask 255.255.0.0 gw 192.168.1.1 dev $IFACE
        route add -net 80.67.208.0 netmask 255.255.255.0 gw 192.168.1.1 dev $IFACE
fi

if [ "$IFACE" = ppp0 ]; then
        route delete default
route add default dev ppp0
fi
Код скрипта /etc/network/if-down.d/delroutes
# Delete default route
route del default $IFACE

Таблица маршрутов при подлключении сетевого кабеля:
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0     *               255.255.255.0   U     1      0        0 eth0
80.67.208.0     192.168.1.1     255.255.255.0   UG    0      0        0 eth0
link-local      *               255.255.0.0     U     1000   0        0 eth0
172.22.0.0      192.168.1.1     255.255.0.0     UG    0      0        0 eth0
10.0.0.0        192.168.1.1     255.0.0.0       UG    0      0        0 eth0
Таблица маршрутов при включении модема:
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
10.64.64.64     *               255.255.255.255 UH    0      0        0 ppp0
192.168.1.0     *               255.255.255.0   U     1      0        0 eth0
80.67.208.0     192.168.1.1     255.255.255.0   UG    0      0        0 eth0
link-local      *               255.255.0.0     U     1000   0        0 eth0
172.22.0.0      192.168.1.1     255.255.0.0     UG    0      0        0 eth0
10.0.0.0        192.168.1.1     255.0.0.0       UG    0      0        0 eth0
default         *               0.0.0.0         U     0      0        0 ppp0

Таблица маршрутов после отключения модема:
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0     *               255.255.255.0   U     1      0        0 eth0
80.67.208.0     192.168.1.1     255.255.255.0   UG    0      0        0 eth0
link-local      *               255.255.0.0     U     1000   0        0 eth0
172.22.0.0      192.168.1.1     255.255.0.0     UG    0      0        0 eth0
10.0.0.0        192.168.1.1     255.0.0.0       UG    0      0        0 eth0
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
« Последнее редактирование: 16 Июня 2011, 21:04:02 от DexterHD »
Mess with the best, die like the rest.

Оффлайн censor

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
кабельный интернет вообще не должен юзаться?
по кабелю должна работать только локалка провайдера?
вообще в настройках модемного соединения должны быть строки
defaultroute
replacedefaultroute
при соединении по модему дефолтный маршрут перепишется на модем, после отключения восстановится прежний шлюз.
итого останется только прописать статику для локальной сети и не надо голову морочить с дефолтными шлюзами.

Оффлайн DexterHD

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
  • idexter.ru
    • Просмотр профиля
    • яDexter
1) Кабельный инет вообще не должен юзаться. (Добиваюсь этого как раз удалением дефаултного маршрута)
2) По кабелю должна идти локалка провайдера, которая приходит на маршрутизатор (172.22.*.*,10.*.*.*,80.67.200.*).
и домашняя сеть которую этот маршрутизатор раздает (192.168.1.*). Адрес бука в моем случае (192.168.1.3), домашнего компа (192.168.1.2).
3) Ни каких настроек модема не трогал. Настроил через networkManager, стандартно из трея.
Хочется так же из трея запускать о отключать модем, и запускать и отключать сеть.
И там же видеть это все.

Пользователь решил продолжить мысль 17 Июня 2011, 21:54:04:
Проблему решил так:
# Delete default route
/sbin/route del default eth0
« Последнее редактирование: 17 Июня 2011, 21:54:04 от DexterHD »
Mess with the best, die like the rest.

 

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