2007-04-16

GRE - tak czy nie?

Dzisiaj napiszę kilka słów o Generic Routing Encapsulation, gdyż Zabbix'em nie miałem okazji się zająć.
Bez teoretycznych wstępów (jeśli ktoś tego potrzebuje, to proponuję zacząć od linka w tytule wpisu) krótko opiszę sensy i bez-sensy tunelowania w routerach Cisco i AT.

1. Sensy.
GRE, jak sama nazwa wskazuje, przeprowadza enkapsulację, dzięki czemu można zanurzyć jeden ruch w drugim. Jeżeli by się uprzeć, to udałoby się zrobić IPv4 w IPSEC, w L2TP, w GRE, w FR - ale po co? GRE ma to do siebie, że jest funkcjonalny, a przez to lubiany i wspierany.
Jako dziecko Cisco, na routerach tejże firmy GRE traktowane jest bardzo przyjaźnie - otrzymuje własny interfejs i łatwą obsługę. Czemu wspominam o interfejsie? Bo z pozoru mało ważny, ale jednak wiele ułatwia...
2. Bezsensy.
No to się zacznie... GRE określany jest jako 'stateless'. Z tego co zdążyłem zauważyć nie zaznacza w żaden sposób czy komunikacja jest możliwa, czy po drugiej stronie tunelu jakieś urządzenie odbiera transmisję. Routing po takim tunelu (w przypadku Cisco) może być niebezpieczny. W przypadku routerów AT jest nie lepiej, a wręcz gorzej. Pakiety do GRE wpadają już przy wchodzeniu do routera (interfejs LAN), samo GRE nie ma wydzielonego interfejsu... zabawa zaczyna się więc i kończy na interfejsach LANu, na końcówkach uczestniczących w transakcji. Na routerze AT można GRE zanurzyć w jakimś innym medium, ale na tym zabawa się kończy. GRE jest i musi pozostać głównym pośrednikiem, gdyż nie ma sposobu na postawienie czegokolwiek przed nim (no chyba, że innego routera).

Sama enkapsulacja nic nie daje. To co decyduje o jej przydatności, to łatwość użycia i możliwość dostosowania do konkretnych potrzeb. Niestety Cisco na tym polu wygrywa z moim faworytem (AT), który potraktował GRE po macoszemu.

Powyższe przemyślenia (może i płytkie) oparłem na swojej wiedzy i znajomości sprzętu obu firm. Nie jestem żadnym autorytetem, więc rezerwuję sobie prawo do omylności i liczę na sprostowanie ewentualnych błędów.

Na deser nie będzie linku, jedynie
[`]

(-_-)

2007-04-06

Same old, same old...

Cóż mogę powiedzieć... godzę wtyczki Qpsmtpd ze sobą, termin wdrożenia rozwiązania dawno już minął... W tym momencie wdrożenie można uznać za wpół-udane - spora część wiadomości została zaraz po uruchomieniu potraktowana prawidłowo, a w przeciągu dwóch dni wyłapaliśmy z kolegą z firmy klienta większość dziur i niedociągnięć (razem około pięciu załatanych - aktualnie pozostaje jedna, której jeszcze nie wyśledziłem w kodzie, lecz na szczęście nie wpływa na widoczne formatowanie wiadomości).

Niestety moje dziecko, rodzone w takich bólach, nadal nie może rozwinąć skrzydeł i działa tylko w środowisku testowym. Sprawdzamy, czy aby napewno nie zajdą jakies nieprzewidziane okoliczności (i im dłużej sprawdzamy, tym bardziej prawdopodobne, że takie okoliczności zajdą - wg prawa Murphy'ego).

Pozostaje mieć nadzieję, że cały mój wysiłek nie pójdzie na marne.

A w następnym odcinku - moje boje z Zabbix'em (lub tunelami GRE - w zależności co będzie bardziej dla mnie bolesne).

Link na deser:
Życzę udanych Świąt!
#(^_^)#

2007-03-11

Osobowość programisty

Nadal Perl i nadal Qpsmtpd. W tym tygodniu stanę przed nie lada wyzwaniem - pogodzić 3 wtyczki, z których każda chce robić coś innego na tym samym pliku/treści... ale to się da.

Wpadł mi w ręce ciekawy, choć krótki, test (8 pytań raptem) - zlinkowany w tytule tego wpisu. Wynik poniżej... i w zasadzie większość się zgadza.

" Your programmer personality type is:

DHSC

You're a Doer.
You are very quick at getting tasks done. You believe the outcome is the most important part of a task and the faster you can reach that outcome the better. After all, time is money.

You like coding at a High level.
The world is made up of objects and components, you should create your programs in the same way.

You work best in a Solo situation.
The best way to program is by yourself. There's no communication problems, you know every part of the code allowing you to write the best programs possible.

You are a Conservative programmer.
The less code you write, the less chance there is of it containing a bug. You write short and to the point code that gets the job done efficiently."

Link na deser:
Doolwind's Game Coding Journal - blog na którym znalazłem w/w test. Z ciekawszych wpisów polecam ten z 2 listopada 2006.
(`.`)

2007-03-01

Qpsmtpd - bojów ciąg dalszy

Już narzekałem, że cały czas siedzę nad wtyczkami do Qpsmtpd pisanymi w Perl-u. Dzisiaj, wyjątkowo, chciałem się podzielić pewnym dość śmiesznym kawałkiem kodu, który spreparowałem ucząc się jak potężnym poleceniem jest "s///".

W dużym skrócie - należało z korespondencji w formacie text/html zrobić text/plain (wiem, że tak nie powinno się czynić... i nic na to nie poradzę). Część podmiany polegała na zamianie wszystkim znanego:
<a href="http://abc.pl">abc</a>
na:
abc[http://abc.pl]

Z pomocą przyszło oczywiście wspomniane polecenie "s///", a konkretniej:
$wiersz =~
s/<[Aa][\W\w\n]*?[Hh][Rr][Ee][Ff]="(.*?)"
[^>]*>([\W\w\n]*?)<\/a>/$2\[$1\]/g;
(niestety całość się nie mieści w linijce w jakiś kulturalny sposób...)
Takim to "prostym" zabiegiem (bardzo wg mnie nieeleganckim, który pewnie ktoś już gdzieś napisał lepiej i czytelniej) otrzymujemy pożądany efekt. Jeżeli byłoby to potrzebne - chętnie służę komentarzem.

Link na deser:
HTML::Entities - biblioteka Perl-a bardzo przydatna przy walce z wiatrakami... znaczy się, chciałem powiedzieć, z korespondencją formatowaną w HTML-u.
(#_-)

2007-02-28

Trochę polityki

Dzisiaj trochę nie na temat (choć to jednak są "okolice"... tyle że szeroko pojęte).

Dolina Rospudy - w obronie autostrady

No i to wszystko co mam do powiedzenia...

PS. nadal siedzę i piszę w Perl-u - już mi to bokiem wychodzi
(~_~);;

2007-02-23

Perły i perełki

Jak siedziałem w Perl-u, tak w Perl-u siedzę. Kolejne wtyczki nabierają kształtu i powoli uczę się nowych sztuczek programowania w tym języku. Niestety - "prawdziwym" programistą chyba nigdy nie będę, a to z tego prostego powodu, że piszę wolno. Każda nowa lub zmieniona linijka musi być przetestowana, bo w efekcie końcowym wg mnie nie ma miejsca na najmniejszy błąd. Wynik jest taki, że jednego dnia rzadko piszę więcej niż 100 linijek kodu (nowego - nie liczę poprawek). Z drugiej strony moja praca nie kończy się na pisaniu w Perl-u... i całe szczęście!

W tytule wpisu zlinkowany jest CPAN (Comprehensive Perl Archive Network). Polecam każdemu rzucającemu się na głębokie wody. Przydatny wg mnie najbardziej w analizie czyjegoś kodu. Gdy już się podchwyci schemat działania jakiegoś modułu, to zwykle potem idzie z górki i sprawdza się tylko argumenty, albo "dlaczego ta funkcja zwraca pusty obiekt?" itp.

Link na deser został zjedzony.
[o_o]

2007-02-20

Perłowe wtyczki pocztowe

Pisałem o chęci poznania C++, ale wygląda na to, że na razie utknąłem w Perl-u. Muszę przyznać jednak, że jest on bardzo przydatny i przyjemny w użyciu (w naszej firmie popularnością może ustępować jedynie php który, o zgrozo, jest używany nie w konstrukcji stron, lecz przy konstrukcji skryptów).

Temat tego wpisu jest zlinkowany ze stroną programu Qpsmtpd - bardzo elastycznym demonem SMTP. Heca polega na tym, iż elastyczność jest osiągnięta poprzez rozbudowany system wtyczek (plugin-ów) pisanych w Perl-u właśnie (które to wtyczki ostatnio tworzę).
Swoje własne (po)twory wtyczko-podobne można zacząć pisać już po zapoznaniu się z dołączonymi na starcie wtyczkami (są np. wtyczki sprawdzające częstotliwość połączeń, lub pośredniczące w wywołaniach antywirusa) oraz z bibliotekami programu (no chyba że ktoś jest wybitnie utalentowany - nie tak jak ja). Jeśli jakiś czytający wykaże zainteresowanie, to mogę zamieścić tutaj jakiegoś mojego potworka razem z krótkim objaśnieniem co i po co.
Hmm... może warto byłoby opisać Qpsmtpd dla strony "Debian Package a Day"? Pomyślimy...

Link na deser:
Zabbix - narzędzie do monitorowania różnorakich zasobów poprzez SMTP i/lub osobny program kliencki. Opiszę go dokładniej w niedalekiej przyszłości.
^(O.O)^