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


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

Автор Тема: как проверить работоспособность интернета на НЕдефолтовом шлюзе..?  (Прочитано 3903 раз)

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

Оффлайн Rom@n

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Парни, всем привет. Есть вопрос, буду очень признателен за помощь...

деспозиция:
есть два интерфейса (получающие адрес динамически)
нужно написать  скрипт который проверяет интерфейс_0 на предмет доступности интернета, если интернета нет - то меняем дефолтовый шлюз на интерфейс_1(точнее тягаем из ifconfig айпишник и ставим его дефолтовым)
..
А после востановления работоспособности "интернета" на интерфейсе_0 - востановить дефолтовый шлюз обратно...


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

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

Оффлайн Tokh

  • Активист
  • *
  • Сообщений: 705
    • Просмотр профиля
как проверить есть ли интернет на порту, который не является дефолтовым ( не прописывая в таблицах маршрутизации ничего нового специально для этого интерфейса, в таблице маршрутизации можно менять только дефолтовый шлюз) ???????

Пинговать дефолтный шлюз 2. Если пингуется, то есть TCP/IP соединение до этого шлюза. А вот чтобы проверить что там доступно позади этого шлюза 2, надо дописывать в таблицу маршрутизации, что запрещено постановкой вопроса... Или временно удалять дефолтный шлюз 1, ставить шлюз 2, пинговать, и возвращать настройки обратно. При этом для локальных программ работающих с "интеретом" обычно "интернет" даст сбой в моменты "переключений".

ping 2.2.2.2
принять решение
route del default gw 1.1.1.1 dev eth0
route add default gw 2.2.2.2 dev eth0
ping 4.4.4.4
принять решение
ping www.ubuntu.com
принять решение
route del default gw 2.2.2.2 dev eth0
route add default gw 1.1.1.1 dev eth0

Где 4.4.4.4 адрес DNS сервера провайдера 2.
1.1.1.1 и 2.2.2.2 шлюзы пров-ов 1 и 2.

Как-то так.

Но вообще-то можно настроить резервный маршрут и оно само будет переключаться.
Первое что попалось:

http://www.opennet.ru/base/net/int_switcher.txt.html

http://www.google.ru/search?hl=ru&sitesearch=ubuntu.ru&newwindow=1&q=%D0%A0%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D1%8B%D0%B9+%D0%BA%D0%B0%D0%BD%D0%B0%D0%BB+%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=
« Последнее редактирование: 27 Января 2010, 21:49:35 от Somewhere there out there »
StarDict и Mueller помогут против английского мануала.

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Я вижу несколько путей:
1. Выделить какой-нибудь хост в инете для пингования и прописать до него собственный маршрут через чего надо.
2. Запускать пинговалку под определённым UID, маркировать пакеты данного UID с помощью iptables и далее, с помощью iproute2 направлять данные пакеты по специальному маршруту.
3. Дописать функциональность ping до возможности пинговать через указанный шлюз.

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
В порядке бреда: а если первый канал поднялся, то должен пинговаться адрес первого интерфейса через второй, нет? (если IP белые, конечно)
« Последнее редактирование: 27 Января 2010, 22:22:52 от Karl500 »

Оффлайн Tokh

  • Активист
  • *
  • Сообщений: 705
    • Просмотр профиля
Через обратную петлю?... Не даёт инфо о работоспособности внешних каналов.
StarDict и Mueller помогут против английского мануала.

Оффлайн Karl500

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

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28365
    • Просмотр профиля
Никакого бреда :) Я так свой сайт тестирую.
route myexternalip1/32 via gw2
Соответственно, пингование моего внешнего имени/IP изнутри будет свидетельствовать о работоспособности обоих каналов.
Конечно, нужны проверки на случай если один из каналов работать не будет.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн Rom@n

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
будем считать что есть... )

и еще.. есть ли принципиальное отличие , если интерфейсы не ethX  а PPPx ?
если есть - подскажите какое?)

Пользователь решил продолжить мысль 28 Января 2010, 11:30:35:
возник еще один вопрос..... (((

как выудить какой шлюз был назначен DHCP-провайдера этим интерфейсам?
т.е.:
к примеру стоит у меня какойто дефолтовый шлюз.. от провайдера_0
и я хочу сменить "шлюз по умолчанию"на шлюз , адрес которого выдал, DHCP-провайдера интерфейсу_1
как это сделать? (((
« Последнее редактирование: 28 Января 2010, 11:30:35 от Rom@n »

Оффлайн Tokh

  • Активист
  • *
  • Сообщений: 705
    • Просмотр профиля
ppp0 может появляться и исчезать, тогда как связь с провайдером не пропадает. "Интернет" исчезнет вместе с ppp0, но связь остаётся. При этом ранее добавленные маршруты ли иные настройки могут исчезать и т.п. Полезно помнить об этом, при написании скрипта проверять такие вещи, например.

Цитировать
как выудить какой шлюз был назначен DHCP-провайдера этим интерфейсам?

Можно примерно так (демка для скрипта, можно в ком.строку попробовать обе строки поочереди):
gate_ip="$( route -n | grep UG | awk '{print $2}' )"
echo "Def.gate ip = $gate_ip"
Можно расширять варианты, в зависимости от "что ловить":
route -n | grep UG | grep eth0 | awk '{print $2}'

Это же можно применять к ifconfig. Например, MAC адрес:
ifconfig -a | grep eth0 | awk '{print $5}'

P.S. Если кто знает более красивые и правильные варианты - пишите.
« Последнее редактирование: 28 Января 2010, 14:37:49 от Somewhere there out there »
StarDict и Mueller помогут против английского мануала.

 

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