31 декември 2008

Коледна админска мъдрост

Принципно на празници не е хубаво да се работи. Все нещо не става като хората. Когато се съберат повечко почивни дни, както става около Коледа и Нова година, освен яденето и спането, другите неща хич не ми вървят. Въпреки натрупаният опит в такива ситуации тази Коледа реших да пипана едно рутерче Linksys WRT54GL с OpenWRT на него. Ужким настройката трябваше да е дребна. Подкарване на OpenVPN сървър (какво да се прави, като обикалям познатите им пипам техниката). Принципно всичко стана точно, създадох CA на една машина в локалната мрежа, генерирах ключовете за рутера и клиентите, ужким направих и конфигурационните файлове, пипнах iptables-а даже и OpenVPN се стартираше без проблем. Регистрирах стартиращия скрипт да се зарежда, но след рестартиране на рутера нямаше и следа от стартиран OpenVPN. Когато файловата ти система е няколко мегабайта, някак си очевидно няма log файлове. Моето предположение беше, че нещо съм прецакал автоматичното стартиране и започнах да преглеждам как е организиран процеса на зареждане в OpenWRT. От файл на файл, попаднах на едни binary файл и рутерът умря. Вече не щеше да зарежда и достъп до него имаше само във fail safe режим. При монтирането на rootfs даваше някакви странни грешки и повечето команди не работеха. Нямах си никаква идея какво стана, а вече ме чакаха на следващата маса и просто положението беше меко казано напрегнато.

Та от цялата история поне за мен останаха два нови извода:
  • Не се бъзикай с рутери по празниците, тъй като не е нужно да си гений да ги прецакаш.
  • Когато се ровиш из файлове из embedded устройства ползвай cat вместо vi.

Във вторият извод се криеше и разковничето на моята глупост. Не съм навлизал много в детайлите, но се оказа че OpenWRT по много интересен начин разхвърля 4-те MB flash, с които разполага. Има някакъв 2 MB jffs дял, в който се записват конфигурациите, а останалите неща свързани със системата се монтират в режим само за четене. Всъщност, когато се модифицира файл от системните глупости, то се създава някакво изображение в jffs дялът. Та използвайки vi вместо cat, само заемам допълнително място, защото отварям файловете и за запис. А когато съм се натресъл на големият binary файл съм препълнил jffs дялът. Това само по себе си не е някаква болка, стига въпросният файл да не е busybox (разбира се, аз бях отворил линк към него). В резултат на което съм създал нефункциониращ busybox и системата не е искала да отлепи. Форматирайки jffs дялът нещата си дойдоха на мястото, но трябваше да конфигурирам нещата от нула. Добре че не бяха чак толкова много настройките, а и предвидливо ги бях запазил.

Иначе проблемът с OpenVPN се коренеше в това, че трябва да се указва пълния път до сертификатите и ключовете. Като го направих, работите тръгнаха. Сигурно някой път като не ме мързи, трябва да напиша някакво howto как става целият номер с OpenVPN и OpenWRT.

Няма коментари: