Version 3, last updated by pimol at December 03, 2009 09:13 UTC

Domeny i ich związek z serwerami e-mail

1. Wprowadzenie
Domena jest symboliczną nazwą służącą do identyfikacji hostów w sieci Internet. Mechanizm domen jest oparty o Domain Name System (DNS). W najprostszym ujęciu DNS służy do tego, by zajmować się tłumaczeniem nazw domenowych na odpowiadające im adresy IP. Domena nakłada abstrakcję na adresację IP. Zmieniając numer IP wystarczy  skorygować na co domena wskazuje, dzięki temu nie musimy publicznie ogłaszać, że zmienił się nasz adres.

2. Sposób działania
Pod jedną domeną może kryć się kilka adresów IP (redundancja, gdy zależy nam na dostępności usług - np. wielkie portale internetowe mają kilka serwerów awaryjnych).
Można też, co nas bardziej interesuje, skojarzyć wiele domen z jednym numerem IP. Do tego wszystkiego potrzebujemy trzech rzeczy: domeny (lub też wielu domen), serwer DNS no i rzecz jasna maszyna o publicznym numerze IP. Odpowiednia konfiguracja serwera DNS załatwia nam kwestie zarówno domeny internetowej jak i adresów e-mail. Jeśli tylko serwer e-mail będzie poprawnie skonfigurowanym MDA (Mail Delivery Agent) to wystarczy dopisać odpowiedni wpis w konfiguracji serwera DNS.

3. Problemy do rozwiązania:

Mamy rozwiązania kilka kwestii:

  1. stały adres IP
  2. serwer DNS
  3. domena(y)

ad. 1. Podstawowy problem, który w tym momencie się naświetla to publiczny stały adres IP. Trzeba wyciągnąć naszą maszynkę na światło dzienne i niestety AGH nam w tym nie pomoże. Admin akademikowy nie może w tym miejscu nic zrobić, nie ma adresów do dystrybucji i już.

Proponowane rozwiązanie: W swojej sieci lokalnej mam jeszcze do rozdystrybuowania kilka stałych adresów IP, można ich użyć. Niestety łącze nie jest zbyt potężne - asynchroniczny DSL 8000. 800kit/s uploadu i oczywiście nie całe pasmo byłoby dla nas dostępne bo wisi mi na tym trochę klientów. No nie ukrywam też, że byłoby to rozwiązanie tymczasowe

ad. 2. Serwer DNS, jeśli tylko będzie serwer wystawiony na światło dzienne nie stanowi problemu, znam się na konfiguracji BIND'a. Używanie jakiejś Javowej implementacji serwera DNS nie będzie raczej potrzebne.

Proponowane rozwiązanie: Konfiguracja serwera DNS nie jest problemem.

ad. 3. Domeny. Hmmm, no cóż, tutaj już jest pełna dowolność. Na czas developmentu możemy użyć jakichś darmowych serwisów udostępniających domeny, typu prv.pl. Oni dają 6 różnych domen: prv.pl pev.pl xlx.pl opx.pl htw.pl keep.pl. Na początek można z tego skorzystać.

Proponowane rozwiązanie: Domeny mogę założyć gęsto często. Dołożenie ich do obsługiwanych przez nasz serwer DNS jest proste. Jeśli zdecydujemy się przenieść serwer do mojego LAN'u to kilka subdomen mogę na to utworzyć.

 4. Pomysł na integrację serwera DNS z naszym systemem

W naszym systemie chcemy, aby administrator był w stanie łatwo zarządzać domenami tj. usuwać lub dopisywać nowe. Lista aktywnych domen jest możliwa do wybrania przez użytkownika przy generacji skrzynki (chodzi nam o mechanizm, który odetnie nas od manualnej konfiguracji, gdy nasza domena zostanie w jakiś sposób zbanowana przez systemy wysyłające mejle).

Rozwiązanie: Nie widzę sensu wciągania do flaków naszego projektu jakiegoś serwera DNS napisanego w Javie. Chciałbym, żeby nasza aplikacja wywoływała przygotowane skrypty, które będą dokonywały modyfikacji plików konfiguracyjnych kontrolowały działanie demona named. Skrypty zostaną napisane w języku Ruby lub Bash i będą wywoływane z poziomu kodu Javy.

Proszę o komentarze dotyczące rozwiązań.

p.s. Jeśli potrzebujecie, mogę napisać tutorial o tym jak funkcjonuje poczta elektroniczna w sieci. Dajcie znać