Kto tu jest adminem?

W zapowiedziano mi, że w czwartek dostanę access-pointy i switcha do
skonfigurowania na radiołącze na pewnym kominie w Rudzie Śląskiej. W czwartek
sprzęt przyszedł… o godzinie 15:00 (pracuję do 16:00) i szef powiedział że
muszę to jeszcze tego dnia zrobić. Fajnie… sprzęt, którym nigdy się nie
bawiłem — więc go nie znam, do tego dwóch różnych firm (Proxim i
DLink), a mam go skonfigurować do poprawnego (uwzględniając separację VLANami
itp.) i bezpiecznego działania w godzinę (jak nie będzie działało, to będę się
wdrapywał na komin, żeby poprawiać). Zrobiłem to nawet. Napewno nie optymalnie,
ani nie w pełni bezpiecznie, ale działało.

W piątek dostaliśmy do tego switcha, więc mogliśmy też go skonfigurować i
sprawdzić radiołącze z VLANami. Działało. Na komin nie poszło — widać nie
było to tak pilne. Ale to by było za pięknie, więc pod koniec godzin pracy, po
zwisie innej radiolini szef postanowił to naprawiać. Zrobił upgrade na
access-pointach, po którym siadało wszystko, nawet łącze modemowe do centrali
(po chwilowym odłączeniu AP z radiolini od switcha do którego podłączony był
modem). Jak wychodziłem z pracy (już trochę po 16:00) to niby wszystko działało,
ale szef kontynuował psucie (właściwie naprawianie — przez downgrade
firmware’u do poprzeniej wersji) i jeszcze wieczorem coś trzebabyło przez
telefon ustalać. Dobrze, że przynajmniej nie musiałem więcej osobiście przy tym
grzebać.

Bałem się, że w weekend będę musiał jeździć naprawiać te radiówki, ale na
szczęście nie było to konieczne, więc sobotnia impreza (nie nadająca się do
opisania na tym poziomie) odbyła się praktycznie bez zawodowych zakłóceń.

W poniedziałek w pracy spotkała mnie niespodzianka. Szef przyniósł mi karteczkę
z nazwami i adresami access-pointów ze szkieletu naszej sieci radiowej —
tak jak je skonfigurował po kolejnych zmianach firmware.. Były to
nazwy i adresy zupełnie inne niż ja z drugim adminem ustaliłem i udokumentowałem
w naszych materiałach. Do tego jeden AP miał adres należący do switcha (którego
adresu szef nie zmienił — to switch też ma IP?). No kurde —
kto w tej firmie w końcu jest adminem?

Z jednej strony to nawet fajnie, że sam z tym firmware nie musiałem walczyć i
zajął się tym ktoś inny. Trochę nawet mnie to zaskoczyło, bo ostatnio szef nawet
nie zaglądał do serwerowni, bo prezesowi przecież nie wypada np. restartować
modemów (kiedyś czasem jeździł, bo miał znacznie bliżej niż ja). Z drugiej
jednak strony, to w końcu ja jestem odpowiedzialny za działanie całej
infrastruktury sieci i ja ustalam zasady adresacji, podziału łącza
(przyzwyczaiłem już się do tego, że szef regularni podnosi ponad rozsądny poziom
ograniczenie przepustowości łącza do sieci w której jest podpięty) itp. i raczej
nie powinno tak być, żebym o zmianach dowiadywał się ostatni (przecież mogłem
pół nocy stracić zastanawiając się dlaczego gdzieś pingi nie dochodzą).

Prezent?

Mojej żonie obcy facet (jej znajomy z Internetu) kupił prezent na urodziny. I to
nie taki całkiem drobny prezent. Ja nawet wierzę, że bezinteresownie i wiem, że
facet od tego raczej nie zbiedniał, ale nie wiem co o tym myśleć. Głupia
sytuacja, dla żony też.

Dopiąłem do swojego Joggerka skrypt zbierający informacje o odwiedzających. Co
prawda użyta metoda — obrazkowa, ze wspomaganiem JavaScriptu — nie jest
idealna i trochę fałszuje wyniki (olewane są przeglądarki tekstowe — w tym
wiele moich wejść), ale i tak ciekawe co z tego wyniknie. Na razie najciekawsze
są zapytania Google używane do wejścia na mój blog. W każdym razie inwigilacja
trwa…

A w pracy się wkurzyłem nieco, aż o mało nie nawymyślałem szefowi. Dostałem
godzinę na skonfigurowanie urządzenia. Urządzenie takie miałem pierwszy raz w
rękach, opcji cała masa, do tego miało działać z urządzeniem innej firmy. Żeby
to zrobić porządnie potrzebowałbym przynajmniej jeden cały roboczy dzień.
Skonfigurowałem, ale na pewno nie optymalnie ani najbezpieczniej. Jak się sypnie
będę musiał jeździć niewiadomogdzie, żeby to naprawiać. Nie lubię takiej
roboty.

Dzień ojca

Dzisiaj w pracy dokończyłem paczkowanie Postfix 2.1 dla PLD. Dzięki temu mogłem
skonfigurować SPF (dopisałem też odpowiednie regułki dla wszystkich 131
obsługiwanych domen) i umożliwić amavisowi (amavisd-new) odrzucanie zawirusionej
poczty kodem 5xx już w sesji SMTP. W międzyczasie przyszła do mnie „wirtualna
kartka”, oczywiście od córeczki.

Kartka to jeszcze nic. Tego się przecież mogłem spodziewać. Znacznie większą
niespodzianką była dla mnie wizyta córki i żony u mnie w pracy. Byłem w takim
szoku, że zamiast okazać radość miałem raczej przerażenie na twarzy
:-). Dobrze, że dziewczyny nie zrozumiały źle.

Oczywiście pochwaliłem się córeczką wszystkim koleżankom i kolegom z pracy.
Dzidzi pokazałem serwer — serwer gier, stojący u mnie na biurku, bo do
serwerowni bała się wejść. Jednak zrozumiała że tam też jest serwer i nawet
zauważyła selwel – zamknom. no!, gdy sprzątaczka zamykała serwerownię.
Selwel jest obiektem zainteresowania dziecka odkąd tatuś pewnej niedzieli
pojechał go naprawiać zamiast pójść z córeczką na spacer.

Z pracy wróciłem wyjątkowo szybko i wygodnie — z żoną i córką samochodem.
Byłem w domu wcześniej niż bym się normalnie doczekał tramwaju (urwałem się z
pracy też trochę szybciej). Po pracy i obiadku trochę poleniuchowaliśmy, a potem
skorzystaliśmy z zaproszenia na działkę Kubusia (oczywiście Kubuś też tam
pojechał). Dzieci szalały na działce, potem w parku — coraz chętniej się
razem bawią. Pod koniec spacerku już Krysia dostawała głupawki.
Przebiegając pod zjeżdżalnią walnęła się głową w rurkę, ale po chwili płaczu
dalej szalała. Do mieszkania po schodach (na trzecie piętro) wchodziła na
czworakach, głośno szczekając i twierdziła, że jest konik. Potem była
trochę marudna, ale jak się można było spodziewać wykończona i szybko poszła
spać.

Zaginiona entropia i stary Python musi odejść

Wczoraj w firmie przeżyliśmy chwilę grozy. Zaczęło się niewinnie. Nie mogłem
commitnąć zmian w systemie zarządzania użytkownikami. svn commit
zawisał, strace pokazywało, że na dostępie do /dev/random. Nie
było to pilne, więc bardzo się tym nie przejąłem. Potem dzwonił gościu, że
poczty nie może odebrać. Chwila śledztwa wykazała, że zacina się na autoryzacji
DIGEST-MD5. Od razu skojarzyłem to z problemami z /dev/random.
Potem było już tylko gorzej — przy niedziałającym /dev/random posłuszeństwa
odmówił też PostgreSQL. A ja ciągle nie wiedziałem co się dzieje.
/proc/sys/kernel/random/entropy_avail pokazywało 0 i nie chciało
nawet drgnąć. Nie pomogło też wybicie procesów korzystających z /dev/random i
/dev/urandom. Wyglądało na to, że coś się zacieło. Ten serwer już długo działał,
a jeszcze nie było takich problemów.

Pomyślałem o sprzętowym generatorze liczb losowych — podobno niektóre płyty
takie coś mają. find /lib/modules -name "*rng*" pokazało dwa
moduły. Jeden (amd768_rng) miał nazwę podobną do chipsetu płyty.
Załadowałem i nawet działa — cat /dev/misc/amd768_rng pokazywało
krzaczki. Jednak aplikacje odwoływały się do /dev/random, a tam
dalej bez zmian. Spróbowałem ln -s /dev/misc/amd768_rng /dev/random
Permission denied, mv /dev/random /dev/random.orig — to
samo. Cholerny devfs – próbuje być mądrzejszy ode mnie! Zawsze lubiłem ideę
devfs — w /dev/ jest tylko to co mam w komputerze, a dysk o
konkretnym SCSI-id podłączony do konkretnego kontrolera ma zawsze tę samą nazwę,
a nie zależną od tego co jeszcze jest podłączone. Jednak implementacja jest
fatalne, a ten przypadek przeważył — devfs wyleciał z tego serwera. I tak
robiliśmy reboot, bo innych pomysłów nie było.

Po reboocie okazało się, że /dev/amd768_rng nie jest całkiem
zgodny z /dev/random — po podlinkowaniu niektóre aplikacje (w
szczególności SVN) zawisały przy próbie korzystania z tegoż. Jednak
/proc/sys/kernel/random/entropy_avail było już większe od zera,
więc problem chwilowo zniknął. Jednak nie na długo — entropy_avail
zaczęło się zmniejszać i znowu doszło do zera blokując wiele usług. Zamiany
/dev/random na /dev/urandom nie brałem pod uwagę – po
to używam SSL, SASL itp. żeby było bezpiecznie, a /dev/urandom bez
entropii generuje liczby bardzo pseudolosowe, a więc do kryptografii
niespecjalnie się nadające. Na szczęście kumpel znalazł winowajcę —
iptables -m random. Jedna taka regułka była w naszym firewallu i po
podłączeniu któregoś klienta najwyraźniej zabrakło na nią entropii. Po zamianie
tego na coś innego entropy_avail urosło do sensownej wartości i
wszystko zaczęło znowu działać. Ufff…

W PyXMPP i CJC obsługa MUC zaczyna działać. Można już wejść na takiego czata
i pogadać. Ale pierwszym felerem, który się rzuca w oczy, są niewłaściwe czasy
przy wiadomościach z historii pokoju. Jest tam czas aktualny, zamiast tego
podanego w <x xmlns="jabber:x:delay"/>. JEP-91 jest banalnie prosty,
więc postanowiłem go od razu zaimplementować. Oczywiste było, że przydałby się
typ opisujący czas, którego w Pythonie zawsze brakowało. Zwykle używałem
mx.Datetime, ale nie chciałem dla takiej dupereli do PyXMPP dodawać
kolejnej zależności. Więc użyłem modułu time, ale on jest do bani.
Można pobrać aktualny czas, przedstawić ją w postaci UTC, czy czasu lokalnego,
czy skonwertować tekst o znanym formacie na czas — ale tylko w czasie lokalnym.
Na zamianę czasu UTC w postaci tekstowej na czas lokalny nie znalazłem sposobu.
Poczytałem dokumentację — z niej wynikało że %Z w formacie
dla time.strptime czasem może działać — u mnie nie działa.
Pogooglałem i okazało się że moje wiadomości na temat braku typu dla czasu są
nieaktualne. W Pythonie 2.3 jest moduł datetime, który daje
wszystko co potrzebuję wraz z sensownym interfejsem. Dotychczas jednak PyXMPP
działało także na pythonie 2.2.x. Chyba przestanie — już dawno zastanawiałem się
nad porzuceniem wsparcia dla Pythona 2.2 — chociażby dlatego, że nie ma w nim
obsługi stringprep, czy IDN (oba standardy wymagane przez XMPP). Teraz PyXMPP
zawiera moją własną implementację stringprep dla Pythona 2.2 (wraz z wymaganą przez nią
normalizacją Unicode — to było sporo roboty), a IDN po prostu nie są obsługiwane gdy używany jest Python 2.2
(użycie znaku nie-ASCII w domenie JID powoduje bład). Ciekawe dla ilu
użytkowników takie podniesienie wymagań będzie dużym kłopotem. A może w ogóle
się tym nie przejmować? W końcu już teraz użytkownicy Debiana muszą kombinować,
żeby z PyXMPP skorzystać, bo standardowo mają historyczne wersje Pythona i
libxml2. Chyba jednak wywalę obsługę pythona 2.2 — kodowi wyjdzie to tylko na
dobre.

Wreszcie jakiś release, a nawet trzy

Dość tego ukrywania moich wypociń przed światem. Szczególnie że ostatnie wydanie PyXMPP
(0.3) nie działało z ostatnimi wydaniami libxml2 (>=2.6.7). Nawet w PLD Ac był taki
niedziałający zestaw. Wczoraj siadłem do kompa i wydałem kolejne wersje wszystkich moich
aktywnych Jabberowych projektów: PyXMPP
0.4
, CJC 0.4 i JJIGW 0.1. Wszystkim im jeszcze wiele
brakuje, ale używać się dają. CJC ma już nawet paru swoich wiernych użytkowników, a po
wczorajszym wydaniu już pojawił się nowy bugreport.

Dzisiaj dostałem polecenie służbowe od szefa: zainstalować
TeamSpeak na naszym serwerze gier.
Szkoda że to zamknięte binarki, ale w końcu i tak większość gierek które tam mamy
to też zamknięty soft, nawet bardziej. Serwerek zainstalowałem i zacząłem się zastanawiać
nad kupnem słuchawek z mikrofonem do zabawy z tym w domu. Ale szef nas zaskoczył i przywiózł
5 kompletów takich (niestety nie za darmo). W firmie już testowaliśmy i fajnie jest. Może
sobie kupię takie słuchaweczki, a może nie.

Praca, praca, praca…

We wtorek pojechałem do Dąbrowy Górniczej instalować serwerek linuksowy
(katalog udostępniony w sieci lokalnej plu s Neostrada) w pewnej firmie.
Serwerek przygotowałem już wcześniej, ale niezbyt dobrze i kupę czasu straciłem
na walce z tą Neostradą. Okazało się, że pakiet speedtouch w PLD zawiera
sterownik kernelowy, ale dokumentację do sterowników userspace – jednego z
drugim nie dało się pogodzić. Dopiero gdy podłączyłem modem do jakiegoś Windowsa
(błe) i wygooglałem właściwe HOWTO udało mi się to odpalić (na sterowniku
kernelowym). Przy okazji przekonałem się na własne oczy że hotplug jest do d….
Coś takiego jak hotplug jest potrzebne i byłoby to super gdyby działało jak
należy – podobnie do pcmcia-cs. Ale jak po podłączeniu modemu odpalało mój
skrypt do inicjalizacji tegoż kilka razy równolegle, to ja dziękuję.

Serwerek miał też robić backupy udostępnionego katalogu na ZIPa. Wymyśliłem
sobie, że będę tam robił też backup całego systemu i zrobię to tak, żeby się
wszystko odtwarzało prawie bezobsługowo. Pracowałem nad tym dzień wcześniej w
firmie. Nie udało mi się zabootować Linuksa z FATowej (dla przenośności danych z
backupu) partycji na tym ZIPie, więc zrobiłem bootowanie z dodatkowej dyskietki.
Wszystko ładnie działało, nie zdążyłem tylko do końca przetestować odtwarzania
danych. Na miejscu też nie przetestowałem, bo walczyłem z tą Neostradą. A w
końcu się okazało, że nic z takiego kompletnego backupu – poza kopią systemu na
tą dyskietkę ZIP nie wiele wchodzi, a w końcu backup danych jest ważniejszy.

W środe siedziałem normalnie w firmie. W czwartek wyjechałem tylko do jednego
klienta sieci osiedlowej w Zabrzu. Normalnie do klientów tych sieci nie jeżdżę,
ale ten był wyjątkowy – była to firma i ich sieć lokalna była odseparowana od
całej sieci osiedlowej routerkiem linuksowym, oczywiście postawionym przez nas.
Chodziło tylko o aktywowanie internetu w nowym komputerze (inna karta sieciowa),
ale że już za cholerę nie pamiętałem co właściwie było na tym routerku
(instalowany z 2 lata tem), ani jakie tam może być hasło roota, to musiałem tam
pojechać. Pojechałem, zrobiłem, wróciłem. W sumie warte odnotowania tylko
dlatego, że zwykle z biura nie ruszam się dalej niż na serwerownię. Tego samego
dnia dowiedziałem się jeszcze, że w piątek w Dąbrowie na tym serwerku muszę
zrobić jeszcze serwer drukarki dla Windowsów (podobno powinienem już dawno o tym
wiedzieć, bo byłem przy tym jak było to ustalane). Ostatnio robiłem coś takiego
parę lat temu, gdy jeszcze nie było CUPSa, a i samba miała nieco mniejszy
numerek. Wygooglałem jakieś HOWTO na ten temat i poczytałem sobie. Nie wyglądało
na banalną sprawę, ale oczywiście do zrobienia.

W piątek więc znowu do Dąbrowy. Nie z samego rana, więc zdążyłem przynajmniej
pocztę poczytać. Po drodze kumpel z którym jechałem musiał coś w Actionie
załatwić. Dobrze że wziąłem książkę, bo długo tam musiałem czekać. Gdy już
dojechaliśmy na miejsce zabrałem się za robotę i właściwie poszło to bez
problemu. I to nawet w trybie normalnego serwera drukowania, a nie tylko
spooler-only. Dobrze że drukarka była PostScriptowa. Skonfigurowałem klientowi
konta pocztowe na naszych serwerach, zrobiłem jakieś inne drobiazgi których już
nie pamiętam, ale jak zbieraliśmy się do wyjazdu to było już po 15:00 (pracę
normalnie kończę o 16:00). Po drodze jeszcze raz mieliśmy zajrzeć do Actiona, po
obudowę. Zabraliśmy obudowę, jedziemy dalej, gdy byliśmy pod rondem w Katowicach
dzwoni telefon, że jeszcze po coś do Action trzeba wstąpić. Sprowrotem, znowu
czekanie, znowu rondo, gdzie straszny korek… i w firmie byliśmy o 16:15. Nawet
nie tak źle, tyle że ja od rana nic nie jadłem, a do domu jeszcze 45 minut jazdy
tramwajem. Wróciłem głodny i straszliwie zmęczony (właściwie nie wiadomo
czym).

Dobrze że w domu czekał pyszny obiadek – musiałem tylko go sobie odgrzać. Po
obiadku się położyłem, ale nie długo było mi dane leżeć, bo szef dzwoni z firmy,
że jest problem z jedną siecią i mam posprawdzać czy to nic u nas. Sprawdzam
(resztkami sił) i nie wygląda żeby to był router, modemy czy coś innego za co
odpowiadam. Drugi admin też sprawdzał i doszedł do tych samych wniosków. Na 90%
coś w sieci lokalnej. Niestety trochę później znowu mnie telefon wyciąga z łóżka
– mam to zgłosić na Błękitną Linię. Nie sądzę, żeby to była dzierżawka, ale
cóż… szef każe, to się robi. Zgłosiłem, zjadłem kolację i poszedłem spać (dużo
wcześniej niż zwykle, bo około 21:00).

Wczoraj jeszcze dzwonił Tato, że w Katowicach jest jakiś festyn i może nas
zabrać. Umówiliśmy się, że jak będzie ładna pogoda to jedziemy, a dokładniej się
umówimy dzisiaj około 10:00. Gdy dzisiaj zadzwonił ustaliliśmy że jedziemy –
będzie po nas o 11:05. Jednak wcześniej zadzwonił szef, że trzeba coś z tą
niedziałającą siecią zrobić – przepiąć ją na radiolinię. Drugi admin, najpierw
nie odbiera telefonu, potem jest „nieosiągalny”. Muszę sam się tym zająć, a
nawet nie znam do końca aktualną konfigurację tej radiolinii – jej testowaniem
zajmował się raczej ten drugi admin. Skonfigurowałem router i switche, ale
okazało się, że ktoś musi pojechać do firmy i access pointa wpiąć do prądu i
odpowiedniego portu w switchu. Zanim to wszystko się udało załatwić, to było już
dawno po 11:05, a wycieczka nam przepadła, ech… :-(

Testowanie, poprawianie…

W zeszłym tygodniu postawiliśmy w firmie serwer gier. To znaczy, nie całkiem
tak… działał już od dłuższego czasu, ale mało kto o nim wiedział, był tam
tylko Quake 3 (na życzenie kilku naszych klientów, którzy długo za mną chodzili,
żeby to postawić) i netpanzer. To drugie prymitywne, mało znane i niedorobione
(nawet jak nikt nie gra to zżera 100% procka, a po jednej grze potrafi się
zawiesić). Od zeszłego tygodnia zaczęliśmy robić z tym porządek – wywaliliśmy tego
nieszczęsnego netpanzera, zmieniliśmy maszynkę z Pentium II 300MHz, na Durona
1Ghz (koledzy serwisanci odstąpili swój komputer – wiedzą co dla firmy ważne
;-)), dorobiliśmy statystyki (takie).

Odkąd postawiliśmy tam RtCW Enemy Territory, to cała firma ostro
testuje ten serwer. Nie ma to jak darmowa, jednak bardzo przyjemna,
gierka FPS chodząca na nienajnowszych maszynkach (moje ATI Rage 128 Pro prawie
wystarcza) i pod Linuxem. Na początku wszystkim nam szło równie kiepsko (inni
gracze pisali co za idioci, ROTFL, z takimi lamerami jeszcze
nie grałem
), więc byłem nienajgorszy. Teraz kolegom idzie dużo lepiej, a ja
prawie nie robię postępów :-(. W domu mogę to przynajmniej
tłumaczyć tym co wyprawia mój ISP (pingi bywają ładne – 30-80ms, ale gdy mam
czas i ochotę na granie, to potrafią przekroczyć 600ms), ale w pracy (całe
szczęście, że mamy tak tolerancyjnego szefa) przy pingach 1ms, też dostaję w
d…

Postawiłem tam sobie też serwer Crossfire, ale w to nikt nie chce
grać. Może jak zrobię do tego stronkę ze statystykami i może jakieś specjalne
questy od Dungeon Mastera, to serwerek zyska popularność. Zresztą część
oskryptowania do statystyk (łącznie z prostym botem) mam już gotową.

To Enemy Territory jest tak przyjemnie odmóżdżające, że
wygrywało ze wszelkimi poważniejszymi zajęciami (oczywiście poza bieżącymi
obowiązkami w pracy). Jednak dzisiaj się przemogłem i zrobiłem przegląd
bugreportów na JabberStudio. W CJC nawet parę błędów poprawiłem oraz zmieniłem
nazewnictwo plików konfiguracyjnych na bardziej przejrzyste. Jutro zabiorę się za
JJIGW, lub dalej będę poprawiał CJC.

Niekompetencja informatyków czai się wszędzie…

Oto wiadomość jaką dzisiaj dostałem na adres zapisany w bazie WHOIS:

From: „LiveNet.pl” <bok@livenet.pl>
To: [cenzura]
Subject: Wlamanie z waszej sieci !!!

Dzien dobry
Jestem wlascicielem firmy hostingowej livenet.pl. Pisze w sprawie jednego z
Państwa klientów, otóż uw klient wykazuje zdolności hakerskie włamując się na
serwery smtp i podszywając się pod właścicieli serwera wysyła spam co w świetle
dzisiejszego prawa jest przestępstwem. Ja w imieniu swoim oraz kilku innych
zaprzyjaźnionych firm z branży zaobserwowaliśmy to już od jakiegoś czasu. My
oraz nasi klienci dostajemy maile z załącznikami w których znajdują się wirusy.
Chcieli byśmy poznać dane tego człowieka. poniżej przesyłam wycinek z logów
serwera na który polowaliśmy jakiś czas. dla uproszczenia proszę mi podać dane
człowieka który o godzinie 12:16 korzystal z IP [cenzura] prosze o kontakt
telefoniczny [cenzura].

Poniżej tego tekstu nie było żadnych logów, ale nagłówki wiadomości. Już na
pierwszy rzut oka widać że to wirus, a pierwsze użycie Google wykazało że to
Bagle.H. Oczywiście postarałem się o zablokowanie dalszego rozsyłania wirusa z komputera
nieostrożnego klienta, jednak przesłane w skardze nagłówki nie ułatwiały mi tego jak powinny
– nazwa serwera podanego w nagłówków Received:
stuff.livenet.pl w ogóle nie istnieje. Przy okazji okazało się że ta
skarga przyszła do mnie jedynie z powodu przeoczenia przy konfiguracji mojego
serwera – taka nazwa w HELO nie powinno w ogóle być przyjęta. I więcej
przyjmowana nie będzie (oczywiście poza pocztą wysyłaną na konto
postmaster).

Wszystkie [cenzura] są oczywiście wstawione przeze mnie zamiast
informacji których nie chciałem publikować. Myślałem nad wycięciem także nazwy
firmy, ale niech zostanie – ku przestrodze potencjalnych klientów.

Routerek i partactwa na WWW

Rano wyjęliśmy felerną kartę z routera, zainstalowalismy spowrotem
dystrybucyjny kernel, a ostatnią sieć maskaradowaną przez ten router
przepięliśmy do innego. W południe przyszedł routerek 3Coma. Udało się go
skonfigurować i nawet ładnie działa. Test polegający na ping-floodzie
przeszedł na 5+, innych na razie nie robiliśmy. Nieciekawie natomiast
wyglądał efekt nmapa zapuszczony na tym urządzeniu. Chyba 5 portów TCP
otwartych, w tym telnet, domyślnie bez hasła. Nie rozumiem co za idioci tak
domyślnie konfigurują takie urządzenia. Przecież mogłem zapomnieć sprawdzić.
Co gorsza okazało się że tych usług nie można wyłączyć. Na szczęście dało się
zablokować wbudowanym firewallem. Założyłem więc regułki blokujące wszystkie
połączenia TCP i UDP do maszynki i mam spokój. Na „dużym” routerze, gdy już
POLPAK działa i nie ma żadnej NATowanej sieci, mogłem wywalić moduł
ip_conntrack. Teraz powinien sobie i z kilkoma GB/s poradzić.
:-).

Najlepsze jest to, że dzisiaj, pierwszy raz od początku tygodnia, przez cały dzień nic nam
się nie powiesiło! :-) (odpukać!)

Żona poprosiła mnie o pomoc przy robieniu screenshotów stron WWW, co
zlecono jej w pracy. Pracuje ona w małej lokalnej firmie Linuksowej zajmującej
się głównie tworzeniem serwisów WWW. Te strony które mieliśmy strzelać
wyglądają całkiem nieźle, ale miejscami się rozjeżdżają. Z ciekawości
zapuściłem na nich walidatora W3C.
Masakra :-(. A łudziłem się że przynajmniej mała, linuksowa
firma, prowadzona przez rozsądnych i bardzo sympatycznych ludzi nie będzie
robić takich partactw…. No ale cóż, ja jestem idealista, a oni muszą
przede wszystkim zarobić
. Ale czy na pewno nie da się tego połączyć? Po
prostu wymagać od tych którym się robotę zleca, żeby wynik się walidował?
Konkretne wymaganie odnośnie jakości zleconej pracy, a nie wymagające od
wykonawcy wcale dużo więcej pracy, jedynie odrobinę kompetencji i wiedzy. No
i w wielu wypadkach pozwala uniknąć konieczności testowania strony we
wszystkich możliwych przeglądarkach.

Może hobbystycznie przerobię jedną stronę w zgodzie ze standardami…
ciekawe ile roboty zajmie to mnie. Przecież ja się tym normalnie nie zajmuję
no i nie wiem co autor miał na myśli.

Czy to się wreszcie skończy?

Paskudny ten tydzień. Na poniedziałku się nie skończyło. :-(

Powodem wolnego działania łącza po zmianie płyty w routerze okazały się
straty pakietów na jednej sieciówce. Dokładnie to był jeden z czterech portów na
czteroportowej karcie D-Link. We wtorek przełożyliśmy kabelek do interfejsu na
płycie głównej (VIA Rhine) i straty ustały. Było nawet lepiej niż na starej
płycie. Super… ale nie długo. Tego dnia też przyszła zamówiona karta
synchroniczna na PCI, ale instalację tego zostawiliśmy sobie na srodę. We
wtorek spatchowałem tylko dla nich kernel PLD. Po pracy okazało się że sieć na
tym VIA Rhine i pomaga tylko reset switchów, a żeby było śmieszniej po resecie
jednego z tych switchy musimy robić ifdown/ifup na serwerze do niego
podpiętym, bo dla odmiany tam sieć zawisa. W końcu jakoś działało dalej.

W środę już z samego rana poszliśmy na serwerownię podłączać nową kartę.
Trzeba było wyjąć serwer z szafy, zainstalować kartę, włożyć serwer spowrotem
(jego miejsce w szafie jest na wysokości około 2m) i wszystko popodłączać.
Klienci zapewne byli zachwyceni, bo trwało to ponad pół godziny a i na tym
przerwy się nie skończyły. Po podłączeniu i uruchomieniu zapatchowanego
kernela wszystko wyglądało dobrze… dopóki nie załadowałem sterownika do
karty. Próba zakończyła się twardym zwisem maszyny, nawet Magic-SysRq nie
pomógł. Po paru próbach z różnymi konfiguracjami postanowiliśmy zadzwonić do
producenta. Dostałem numer telefonu do gościa od tej karty a zarazem autora
sterowników. Niestety nie był w stanie powiedzieć nic konkretnego, jedynie
zasugerował zainstalowanie gołego kernela (no cóż ten z PLD jest rzeczywiście
przeładowany patchami). Cóż było robić. Odpaliłem router bez tego sterownika
(a więc dalej bez POLPAK-a), wróciłem do biura i zacząłem szykować kernel.
Instalację zostawiłem sobie na dzisiaj (czwartek).

Na tym środowe atrakcje się nie skończyły. Około 17-tej znowu siała sieć na
Rhine i trzeba było restartować switcha. Potem pojawiły się duże straty –
okazało się że tabela conntrack się przepełniła (wcześniej był kernel 2.2, a
więc nie było tego problemu). Poprawiłem ip_conntrack_max i było jakby lepiej.
Jednak wieczorem gdy chciałem sprawdzić jak daleko jest tej tabeli do
ponownego przepełnienia (wc -l /proc/net/ip_conntrack) znowu sieć zawisła. I
tym razem restart switchów nie pomógł. Po reboocie (zdalnym, serial-console
rulez) sieć w ogóle nie wstała. Tylko pojawił się komunikat o jakimś problemie
z routingiem przerwań i wynikającym z tego konfliktem. Próbowałem jakoś
skonfigurować routing z pominięciem tego routera (teoretycznie możliwe
rozwiązanie dla większości naszych klientów), ale nic z tego nie wyszło, więc
spróbowałem jeszcze jednego restartu. Tym razem sieć wstała, ale zauważyłem że
komunikat o problemie z przerwaniami też się przy starcie kernela pojawił.
Widać dupiata płyta główna.

Dzisiaj jak już dojechałem do pracy, co stało się 15 minut później niż
zwykle, bo autobus nie dojechał, zabraliśmy się znowu za ten nieszczęsny
router. Najpierw obejrzeliśmy jeszcze raz ten komunikat o przerwaniach i
spróbowaliśmy coś z tym zrobić w ustawieniach BIOS. Potem zainstalowałem nowy
kernel (ten własny, nie z PLD) i załadowałem sterowniki do karty. Załadowały
się, bez zwisu. Potem skonfigurowałem dostęp do POLPAKu – miodzio, znacznie
przyjemniejsza sprawa niż z tą nieszczęsną Sangomą. I zebra nie zdechła po
odpaleniu łącza i interfejs zachowuje się normalnie. Takiej właśnie karty mi
było trzeba… Nie nacieszyłem się jednak długo bo wszystko wisło. Na twardo.
Mieszaliśmy z ustawieniami przerwań itp., ale nigdy nie podziałało dłużej niż
godzinę. Znowu dzwoniłem do autora sterowników, ale nie miał lepszych pomysłów
niż te na które sami wpadliśmy – może to konflikt przerwań, spróbujcie bez
tej karty z którą współdzieli przerwanie
. Ale nie możemy wyciągnąć tej
karty, bo to czteroportówka, która sama zabiera wszystkie cztery przerwania
PCI. Przełączyliśmy jeden kabelek gdzie indziej, tak że przynajmniej jedno z
tych przerwań było nieużywane i mogło zostać tylko dla karty synchronicznej.
Jednak sytuacja bez zmian – nadal się wiesza. W końcu wywaliliśmy ten
sterownik i ponownie wyłączyliśmy POLPAK. Nie wyciągaliśmy karty, żeby nie
powodować kolejnej (tym razem dłuższej) przerwy w działaniu routera. Będąc na
serwerowni oczywiście pamiętaliśmy o wieszającej się VIA Rhine – przepięliśmy
z niej kabelek na 3Coma, który też tam był, może będzie lepiej.

Tej karty synchronicznej mamy już dosyć, jutro ją wyciągamy i spróbujemy
zwrócić. Dzisiaj zamówiłem dedykowany router 3Coma. Jakiś bardzo prosty z
portem V.35 i Ethernet – tak żeby tylko pośredniczył pomiędzy POLPAK-iem, a
naszym routerkiem. Jutro czeka mnie więc wyciąganie karty i instalacja
routera. Ale jak ten nowy router będzie nawalał, to najwyżej POLPAK nie będzie
działa, a na nasze główne łącze nie powinno to mieć problemu. Oby się te
problemy wreszcie skończyły!

A teraz coś bardziej optymistycznego. Wczoraj Krysia opanowała używanie
myszki. Odpaliłem jej TuxPainta (nie pierwszy raz), a ona sama stawiała
pingwinki w mniej-więcej przemyślanym miejscu. Jak tak dalej pójdzie, to zanim
skończy trzy latka (teraz ma niecałe dwa) to będzie chciała poznać hasło roota
:-).