#Soho #яумамыинженер
История успеха:
После переезда в #бетон подключили местного провайдера. Первый их роутер помер, нам его заменили на более веселый. О его хаке я писал раньше по тегу Soho.
А ломать я его решил, потому что через какое-то время работы роутера к нему не возможно подключить новое устройство, старые продолжали работать без проблем. Ломал я его потому что хотел посмотреть, что же там происходит.
Первое, на что обратил внимание, что устройства, которые не могут подключиться - получают от роутера IP и маршруты. Значит dhcp работает и какие-то пакеты туда-сюда ходят.
Второе, что вызвало у меня не малое удивление, в arp таблице на роутере не было тех вновь подключеных устройств, которым он только что по dhcp ответил. Для тех, кто понимает, что ложится в arp таблицу, такое должно быть также удивительно, как и для меня.
Роутер, по классике жанра, не ведет по умолчанию системный журнал. Так что какого-нибудь особо интересного чтения не было. Все ведь любят читать логи, или это у меня только?
В процессе всех экспериментов с ректором стало понятно, что речь идет о какой-то нехватки памяти, так как после перезагрузки все работает, пусть и не очень долго.
На самом роутере крутится busybox, в котором не хватает, конечно, каких-то приятных утилит, но основное все есть. Да и строго говоря, главная утилита - это мозги.
Логично было посмотреть, что пишет в meminfo. Там свободной памяти несколько десятков метров. Файловые системы также были более чем свободны, для корректной работы системы. А значит что заканчивается что-то не очень очевидное.
Опытный инженер уже, скорей всего догадался, в чем дело и куда посмотреть. Но я на тот момент был в тупике. По этому решил сделать следующее: кинул пинг на IP устройства, которое только что подключилось и отсутствовало в arp. Вместо ожидаемого timeout я получил ошибку: No buffer space available.
Это что-то мне не знакомое, пошел гуглить. Посмотрев что пишут про эту ошибку, я понял, что это мой кейс. Заканчивается буфер wmem и нужно его уволить. В этот буфер, и в его брата rmem, пишутся активные маршруты и, в том числе, таблица arp.
Посмотрев на нынешние значения, я увеличил их в 2 раза. Роутер проработал как должен около суток и опять свалился с такими же симптомами.
Тогда я начал смотреть, что же забивает arp таблицу. Там были адреса моей скромной домашней сети, внешний интерфейс и какой-то вагон говна, на который я раньше не обращал внимания. Все говно висело на каком-то одном интерфейсе.
Начал изучать, что это за интерфейс. Он смотрел наружу, на нем работал dhcpc, и всем своим видом он изображал ещё одну внешнюю сетку. Поскольку для работы интернетов этот интерфейс не нужен, я его погасил. По нему ходит всякая муть, как и бывает с большой локалкой. Достаточно большой, чтобы выжрать все место под маршруты на роутере.
Со всей этой информацией пошел в поддержку моего провайдера. Зашел, как водится, через верх с вопросом, что это за интерфейс такой и зачем он нужен?
Выяснилось, что этот интерфейс сделан для нужд поддержки, за ним одна большая сетка на весь провайдер, одним сегментом. Поскольку заходил через верх, "технические специалисты" получили пиздюлей, так как это старая проблема, которую они отрицали и не могли собрать достаточно диагностической информации.
В качестве приятного бонуса - получил бесплатный интернет в награду за диагностику и выявление причины проблемы. Так как задело это не только меня, но mojo найти проблему было, похоже, только у меня.
История, наверное, без морали. Сейчас, смотря назад, становится очевидно, где можно было срезать, но все сильны задним умом.
На все я потратил несколько вечеров, это была интересная головоломка, которую я успешно разгадал.
Смотрите "[Проза] Уильям Гибсон - Нейромант" на YouTube
Великолепно сделанная работа.
#личное
Из чисто спортивного интереса хочется узнать, что и как случилось с rutube.
#хаускипинг
Даем нашего робота мойщика окон соседям.
#личное надо домен паркануть
#хаускипинг
Вчера, в процессе выноса хлама наткнулся на свои пропуск в Институт. Сломал пополам и выкинул
probably human