===[ И снова здравствуйте ]=== #post-id: 5844-16-53 #original-date: 26.07.2016 Tue #original-time: 4:53 PM #original-day: 5844 #original-host: WinXP Prof SP3 (Build 2600) История из серии «One thing lead to another». Прихожу на обед и решаю что-то сделать с планшетом. Попутно с него пытаюсь заглянуть на многострадальный GoFlex Home. Не пускает, говорит, что не удаётся залогиниться. Вообще, я очень люблю в программах ошибки вида «Что-то случилось» со списком возможных причин широкого спектра: то ли ему не удалось приконнектиться к устройству, то ли пароль не подошёл, то ли процесс завис на приёме этого пароля, то ли метеорит упал... В общем, ХЗ, что происходит, но я-то догадываюсь! Иду к настольной машине, которая только что вышла из спячки. Мой компьютер висит. Ага. Открываю на буке – открывается, заходится на шары, но бука и не выключалась. Пытаюсь, раз такая оказия, открыть через айпишник – висим. В логе модема – сплошь ошибки DNS. Как обычно. Захожу на NAS по SSH. Смотрю /etc/resolv.conf – перезаписан. Только гугловские DNS вместо того, что я в прошлый раз записала. Я вчера столик, на котором всё это дело стояло, «освобождалла» – домашним не терпится уничтожить всю мебель, чтобы чувствовать, что они «собираются». Почему это нужно делать сию же минуту – не понятно. Так вот, пока искала, куда всё хозяйство переставить, вырубала NAS, потом включила, но не заметила никаких изменений. В общем, перезаписываю файл с правильными значениями, но всё всё равно отчаянно тормозит, sudo выполняется по несколько минут даже после сохранения файла. А я ещё и «sudo -E -s» не вызвала, а всё через «sudo cmd a b c» делала с соответствующей продолжительностью =_= Перезагружаю NAS. Тот отчаянно долго грузится. Смотрю /etc/resolv.conf – снова переписан. Решила пойти в настройки в вэб-интерфейсе и там вписать буку и гуглоднс, чтобы на случай таких приколов всё не ломалось. Сходила, поставила и тут выяснила, что оно упорно пишет гуглоднсы и не сохраняет другие значения. Тут обед закончился, и я решила продолжить мучения на работе. В общем, в начале /etc/resolv.conf было написано, что файл автоматом сгенерирован скриптом /sbin/dhclient-script, поэтому с него я и решила начать. Скачала, посмотрела, поняла с пятого на десятое, но нашла функцию, которая отвечает за перезапись конфига. В начало этой функции я внесла что-то вроде такого: > echo '; Generated by /sbin/dhclient-script' > /etc/resolv.conf > echo '; Modified by me! =_=' >> /etc/resolv.conf > echo 'nameserver 192.168.1.210' >> /etc/resolv.conf > echo 'nameserver 192.168.1.200' >> /etc/resolv.conf > echo 'nameserver 8.8.8.8' >> /etc/resolv.conf > echo 'nameserver 8.8.4.4' >> /etc/resolv.conf > echo 'nameserver 208.67.222.222' >> /etc/resolv.conf > echo 'nameserver 208.67.220.220' >> /etc/resolv.conf > echo 'nameserver 208.67.220.222' >> /etc/resolv.conf > echo 'nameserver 208.67.222.220' >> /etc/resolv.conf > return Остальной код я оставила на всякий пожарный, просто он не выполняется. Сам скрипт я так же удалять на стала, поскольку там что-то ещё делается помимо правки конфига. Так что теперь при его выполнении у меня каждый раз конфиг заполняется правильными значениями без необходимости ручками всё переписывать. Кстати, сильно порадовало в начале скрипта: > # dhclient-script for Linux. Dan Halbert, March, 1997. > # Updated for Linux 2.[12] by Brian J. Murrell, January 1999. > # No guarantees about this. I'm a novice at the details of Linux > # networking. Пионэр... Так вот. Перезагрузилась, залогинилась сравнительно быстро, но при попытке сделать «sudo -E -s» опять получаю долгий висюк. Долгий – это больше пяти минут =_= Смотрю конфиг, а там всё, как надо. Странно. Решаю попинговать всякие сайты, а домены не разрешаются. Пингую буку – пингуется. Пингую 8.8.8.8 – пингуется. Ещё более странно. Тут у меня появилось подозрение, что NOD32 снова начал проказничать, и как-то законфликтовал с сервером DeadWood. Иду по SSH на буку, ввожу пароль от ключа, и всё – висим. Несколько раз попробовала, но после авторизации даже консоль не появляется. Замечательно. Возвращаюсь к сессии с NAS'ом. Делаю ssh на буку – пускает. Убиваю NOD32, перезапускаю DeadWood. Выхожу – домены на NAS'е не разрешаются. Захожу обратно, и на пробу пробую попинговать что-нибудь с неё – не разрешается. Ага. Открываю конфиг DeadWood, переключаюсь обратно на DNSCrypt, перезапускаю сервер, пингую. Пинг проходит! Выхожу, пингую с NAS'а – пинг проходит! Пробую снова зайти на буку напрямик – сессия устанавливается, консоль появляется! В общем, пока что починила. Собственно, теперь – выводы боли. 1. Почему в настройках устройств так любят делать только два слота для DNS серверов? Даже если нижележащая система принимает их хоть тысячу, всё равно два слота, и крутись как хочешь. Я понимаю, что среднему идиоту тысяча не нужна, но страдают те, кому это нужно. Сделали бы хотябы как в Windows, где в настройках протокола TCP/IP два слота, а в расширенных – список с добавлением необходимого количества адресов. Если бы сделали так, мне бы не пришлось скрипт ломать =_= 2. Не поняла, почему Bitvise SSH не пускал меня к себе со сломанными DNS'ами. Пытался сделать обратный запрос и сломался? Это что-то новенькое. 3. Фуйня с DNS'ами задалбывает всё сильнее. Уже сил просто нет, ловить бесконечные ошибки и придумывать костыли. За деньги, при чём. За МОИ деньги. 4. Задалбывает эта угадайка, через что сработает DNS. Сначала отваливается прямое соединение с DNS серверами, и приходится делать запросы через DNS Crypt. Потом отваливается DNSCrypt, но поднимается прямое соединение. При этом через DNSCrypt, бывает, ещё не все адреса разрешаются – например «honda-city.lindachan.net» уже полгода как совершенно неизвестный домен для него. 5. Задолбал двухсекундный таймаут, зашитый почти везде намертво в код. Возможно, все эти костыли не пригодились бы, если бы можно было поставить таймаут в десять секунд. Но таймаут ставить нельзя, поэтому – DeadWood со своей настройкой таймаута, которая всё равно помогает лишь частично, ведь система-то не будет ждать его ответа больше двух секунд, но по крайней мере есть надежда, что адрес всёже осядет в кэше, и со второго раза всё получится. 6. Задолбало в DeadWood, что порт вышестоящего DNS сервера задаётся глобально. Ты указываешь десять вышестоящих DNS серверов, и на каждый программа будет ломиться по указанному отдельно порту. Так бы я указала клиент DNSCrypt на отдельном порту и гуглоднсы на стандартном в одном конфиге, и не мучилась бы переключениями, но нет. Либо внешние по порту 53, либо DNSCrypt по 5053 =_=