Верстакфорум практиков
рекламаiprazon: приватные серверные адреса IPv4 и SOCKS5, безлимитный трафик, бесплатный тест до 2 часов
ФорумСвободный раздел

Резервный канал связи, когда основной лёг

netmon
netmon
Знаток
сообщений 1350
с мая
8 июня, 11:17первое сообщение

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

Утром выяснилось смешное: я не знал про аварию, потому что телефон дома цеплялся к домашней сети и тоже молчал всю ночь.

Хочу собрать нормальный запасной путь. Вводные: дома роутер с одним входом, есть телефон с раздачей, есть арендованный сервер снаружи. Задачи ночью не критичные, но обидно терять шесть часов из-за получасовой аварии.

Что бы вы сделали в таком раскладе и в каком порядке?

tcpdump_fan
tcpdump_fan
Знаток
сообщений 1010
с июн
15 ноября, 14:34#2

Начинать надо с того, чтобы вы вообще узнавали о падении. Пока уведомление идёт через упавший канал, всё остальное бессмысленно.

Проверка ставится снаружи: пусть арендованный сервер раз в минуту стучится к вам и молчит, когда всё хорошо. Пропал ответ три раза подряд, он пишет вам сам, со своей стороны, по своему каналу.

слушаю провод, а не догадки
pingpong
pingpong
Новичок
сообщений 105
с июн, второй сезон
22 апреля, 17:51#3

а куда он пишет, если дома сети нет? на телефон через мобильный интернет?

Михаил Дроботов
Михаил Дроботов
Участник
сообщений 615
с сен
1 сентября, 08:08#4

Именно так. Телефон в этот момент сам уходит на свою сеть, и сообщение доходит. Десять лет в поддержке, всё видел: половина ночных аварий тянется до утра только потому, что человек про них не знал.

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

десять лет в поддержке, всё видел
netmon
netmon
Знаток
сообщений 1350
с мая
8 февраля, 11:25#5
tcpdump_fan: пропал ответ три раза подряд, он пишет вам сам

Это делаю первым, спасибо. Роутер с двумя входами пока откладываю, попробую скриптом.

pingpong, да, телефон уходит на свою сеть, я вчера проверил специально: сообщение дошло за секунды.

Борис Лапин
Борис Лапин
Знаток
сообщений 1960
с мар
15 июля, 14:42#6

Скрипт держится на одной мысли: маршрут по умолчанию меняется по метрике, и всё переключение сводится к паре команд.

#!/bin/sh
CELI="1.1.1.1 9.9.9.9 8.8.4.4"
ZHIV=0
for c in $CELI; do
  if ping -c2 -W2 -I eth0 "$c" >/dev/null 2>&1; then ZHIV=1; break; fi
done
if [ "$ZHIV" = "0" ]; then
  ip route replace default via 192.168.8.1 dev usb0 metric 50
  logger "kanal pereklyuchen na zapasnoy"
else
  ip route replace default via 192.168.1.1 dev eth0 metric 50
fi

Три цели в списке нужны затем, что один адрес может лежать сам по себе, и вы получите ложное переключение. Проверять надо именно через нужный интерфейс, иначе пинг уйдёт по уже переключённому маршруту и обратно вы никогда не вернётесь.

Егор Пастухов
Егор Пастухов
Новичок
сообщений 78
с июл, второй сезон
22 декабря, 17:59#7

а раздача с телефона по проводу лучше, чем по вайфаю?

dev_null_ru
dev_null_ru
Ветеран
сообщений 2560
с фев
1 мая, 08:16#8

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

И не забудьте про имена. Если у вас прописан сервер имён от основного провайдера, после переключения он станет недоступен: маршрут переедет, разбор имён встанет, и выглядеть это будет как «сеть есть, ничего не работает».

nastroyka_pro
nastroyka_pro
Ветеран
сообщений 2110
с мар
8 октября, 11:33#9

Добавлю сбоку то, обо что мы споткнулись, когда собирали такую же схему на рабочей машине.

Переключение канала меняет ваш адрес на выходе. Для скачивания страниц это почти неважно, зато всё, где живёт сессия или белый список, ломается ровно в момент переключения. У нас в ту ночь переехал канал, прогон продолжился и получил отказ на каждом запросе, потому что второй конец увидел новый адрес и посчитал сессию посторонней.

Развели два уровня. Канал пусть переключается как угодно, это забота роутера. А запросы идут через посредника, и снаружи адрес остаётся одним и тем же при любом канале.

Мы под это взяли приватные серверные адреса с безлимитным трафиком: пул общий, ротация внутри него идёт сама, список отдаётся ссылкой в виде IP:PORT и обновляется на лету. Домашнее переключение после этого перестало быть событием для прогона, сессии живут дальше.

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

Слава Кудрин
Слава Кудрин
Участник
сообщений 760
с авг
15 марта, 14:50#10

Плюс держите на запасном канале урезанный режим. У меня при переключении скрипт сам сбавляет число потоков втрое и отключает скачивание картинок. Иначе запасной вход захлёбывается за десять минут.

tcpdump_fan
tcpdump_fan
Знаток
сообщений 1010
с июн
22 августа, 17:07#11

Ещё про проверку. Пинг по адресу говорит только про сеть. Был у меня день, когда канал живой, пинг идёт, страницы при этом не открываются, потому что у провайдера лёг разбор имён. С тех пор сторож проверяет две вещи сразу: пинг по адресу и запрос по имени.

две проверки вместо одной
две проверки вместо одной
слушаю провод, а не догадки
pingpong
pingpong
Новичок
сообщений 105
с июн, второй сезон
1 января, 08:24#12

записал себе всё, особенно про запрос по имени. у меня как раз так и было, а я на посредника думал

Михаил Дроботов
Михаил Дроботов
Участник
сообщений 615
с сен
8 июня, 11:41#13

И последняя мелочь, которая кусает всех. Проверьте запасной вход заранее, руками, при живом основном. Выдерните шнур днём и посмотрите, что переключилось и за сколько секунд. Запасной канал, который ни разу не пробовали, работает примерно никогда.

десять лет в поддержке, всё видел
netmon
netmon
Знаток
сообщений 1350
с мая
15 ноября, 14:58#14

Собрал у себя за выходные, отчитываюсь по пунктам.

Что сделалЧто это закрыло
Проверка снаружи и сообщение на телефонпро падение узнаю сразу
Модем в порт вместо раздачи с телефонателефон свободен, вход поднимается сам
Скрипт с тремя целями и метрикойпереключение без меня, ложных срабатываний нет
Свой сервер имён в настройкахимена разбираются на любом канале
Урезанный режим на запасномвход не захлёбывается на повторах

Выдернул шнур днём, как советовал Михаил Дроботов: переключение заняло сорок секунд, прогон этого не заметил. Обратно вернулось само через минуту после втыкания. Тему закрываю, спасибо всем.