Rozwój Systemu Nazw Domenowych

Transkrypt

Rozwój Systemu Nazw Domenowych
Rozwój Systemu Nazw Domenowych
Wprowadzenie
System nazw domen (DNS) dostarcza usługę nazewniczą dla DARPA Internet. Jest jedną z największych
usług nazewniczych stosowanych dzisiaj, służy wysoce różnorodnym środowiskom hostów, użytkowników,
sieciom i używa unikalnego połączenia hierarchii, cach-owania i dostępu datagramowego.
W tym dokumencie analizowane są pomysły sprzed początkowego projektowaniem DNS w 1983.
Omówiona została ewolucja tych pomysłów do aktualnych implementacji oraz jej użycie, przedstawiono
zauważalne niespodzianki, zalety i wady jak również próbę przewidzenia jego przyszłego rozwoju.
1. Wstęp
Przyczyną powstania DNS było zaobserwowanie, około 1982 roku, że system HOSTS.TXT publikujący
odwzorowania między nazwami host-ów i adresami napotykał na wiele problemów. HOSTS.TXT jest nazwą
prostego pliku tekstowego, który znajduje się na centralnym hoście w SRI Network Information Center –
sieciowym centrum informacyjnym (SRI-NIC) i rozprowadzony jest do wszystkich hostów w Internecie przez
bezpośredni i pośredni transfer pliku.
Problemy polegały na tym, że plik i związany z nim koszt dystrybucji, stawały się zbyt duże, jak również to,
że scentralizowana kontrola aktualizowania nie pasowała do trendu rozproszonego zarządzania Internetem.
Prosty wzrost był jedną z przyczyn tych problemów; inną był rozwój społeczności używającej HOSTS.TXT
począwszy od ARPANET opartego na oryginalnym NCP do Internetu opartego na IP/TCP. W wyniku badań
rola ARPANET-u zmieniła się - z pojedynczej sieci łączącej duże systemy z podziałem czasu (timesharing)
ARPANET stał się jedną z kilku sieci szkieletowych dalekiego zasięgu łączącej sieci lokalne, które jedna po
drugiej zapełniały się stacjami roboczymi. Liczba host-ów zmieniła się od ilości systemów z podziałem czasu timesharing (w przybliżeniu organizacji) do liczby stacji roboczych (użytkowników). Ten wzrost bezpośrednio
odbił się na wielkości HOSTS.TXT, szybkości zmian dokonywanych w HOSTS.TXT i liczbie transferów pliku.
Doprowadziło to do dużo większego niż liniowy wzrostu użycia zasobów do rozprowadzania pliku. Ponieważ
zmusiło to organizacje do zarządzania lokalnymi adresami sieciowymi, bramami, etc., przy wykorzystaniu
jakiejkolwiek technologii, całkiem logiczną okazała się chęć, by podzielić bazę danych i pozwolić na lokalną
kontrolę lokalnych nazw i przestrzeni adresowej. Rozdzielony system nazywania wydawał się na miejscu.
W skład istniejących systemów nazywania wchodziły: DARPA Internetowy IEN116 [IEN 116] i XEROX
Grapevine [Birrell 82] i systemy Clearinghouse [Oppen 83]. Usługi IEN116 wydawały się nadmiernie
ograniczone, z konkretnym hostem, IEN116 nie dostarczył na tyle dużo korzyści, by usprawiedliwić koszty
renowacji. System XEROX był wtedy i nadal jest najbardziej wyszukaną usługą nazewniczą w dziejach, ale to
nie było oczywiste, że jego intensywne użycie replikacji, małe użycie buforowania podręcznego i niezmienna
liczba poziomów hierarchii były odpowiednie dla różnorodnego i często chaotycznego stylu Internetu DARPA.
Importowanie projektu XEROX-a oznaczałoby konieczność importowania wspierających elementów
architektury protokołu. Z tych powodów zapoczątkowano nowy projekt.
Początkowy projekt DNS został wyszczególniony w [RFC 882, RFC 883]. Jest on zbudowany jako
hierarchiczna przestrzeń nazw z zapisanymi danymi w punktach węzłowych. Kontrola baz danych została
również rozdzielona w sposób hierarchiczny. W zamiarze było, że typy danych będą rozszerzalne, a z dodaniem
nowych typów danych będzie związane dodawaniem nowych aplikacji. Chociaż system został zmodyfikowany i
upiększony w kilku obszarach [RFC 973, RFC 974], aktualne specyfikacje [RFC 1034, RFC 1035] i sposób
użycia są całkiem podobne do oryginalnych definicji.
Rozróżnienie pomiędzy doświadczalnym użyciem i stanem produkcji jest trudne, ale w roku 1985 cześć
host-ów używała DNS jako podstawowy i jedyny sposób uzyskiwania dostępu do informacji poprzez
nazewnictwo. Chociaż DNS nie zastąpił mechanizmu HOSTS.TXT w wielu starszych host-ach, stał się on
standardowym mechanizmem dla host-ów, szczególnie dla opartych na Berkeley UNIX, które śledziły postęp w
sieci i w projektowaniu systemów operacyjnych.
2. DNS Design
Podstawowe założenia projektowe dla DNS były takie, że musi on:
• Dostarczać przynajmniej tyle informacji co HOSTS.TXT
• Baza danych musi być przechowywana w sposób rozproszony
• Być wolny od ograniczeń odnośnie nazw, ich komponentów oraz danych
związanych z nazwą itd.
• Współpracować z DARPA Internet i możliwie dużą ilością środowisk
• Zapewniać odpowiednie osiągi.
Kolejne ograniczenia były następujące:
• Koszt implementacji systemu mógł być uzasadniony jedynie dostarczaniem
rozszerzalnych usług. W szczególności system powinien być niezależny od
topologii sieci, zdolny do enkapsulacji innych przestrzeni nazw.
• Aby system mógł być ogólnie dostępny i używany, powinien unikać
wymuszania na użytkowniku korzystania tylko z jednego systemu
operacyjnego, architektury, czy stylu organizacji. Ta idea ogarniająca
problemy począwszy od obaw dotyczących wrażliwości na wielkość liter aż do
tego, że system powinien być użyteczny zarówno dla dużych hostów
dzielących czas jak i dla zwykłych PC. Ogólnie dążono do uniknięcia
wszelkich ograniczeń systemu w związku z zewnętrznymi wpływami i
zezwolić na możliwie dużą ilość różnych struktur implementacyjnych.
Wymagania dla emulacji HOSTS.TXT nie były szczególnie surowe, ale to spowodowały wczesne
sprawdzanie schematów gromadzenia danych innych niż odwzorowania nazwy w adres. Hierarchiczna
przestrzeń nazw wydawała się oczywistym i minimalnym rozwiązaniem dla wymagań ilościowych
i dystrybucyjnych. Ograniczenia współdziałania i osiągów sugerowały, że system będzie musiał pozwolić na
buforowanie informacji z bazy danych pomiędzy klientem i źródłem danych, ponieważ dostęp do źródła nie
mógłby być możliwy albo odpowiedni w czasie.
Początkowy projekt DNS zakładał konieczność zapewnienia równowagi między bardzo wąską usługą i
zupełnie ogólną rozproszoną bazą danych. Wąska usługa była pożądana, ponieważ powodowała więcej prób
implementacyjnych i wcześniejszą możliwość wykorzystania. Ogólny projekt amortyzowałby koszty
wprowadzenia w większej ilości aplikacji, zapewniałby większą funkcjonalność i zwiększałby liczbę środowisk,
w których DNS mógłby być ostatecznie użyty. Kryterium „wąskości” doprowadziło do świadomej decyzji, by
pominąć większość funkcji, których można by się spodziewać w bardziej zaawansowanych bazach danych.
Szczególnie dynamiczna aktualizacja bazy danych z odpowiednią atomowością, głosowaniem i kopiami
zapasowymi została pominięta. Ostatecznie zamierzano dodać te opcje, ale stwierdzono, że system, który
zawierałby te cechy mógłby być postrzegany jako zbyt złożony, by zostać zaakceptowany przez społeczność.
2.1. Architektura
Wyróżnić można dwa główne typy aktywnych komponentów DNS : serwery nazw i klienci DNS
(resolver). Serwery nazw są składnicą informacji i odpowiadają na zapytania używając wszelkich posiadanych
informacji. Klienci DNS to interfejs dla programów klienta, zawierający w sobie algorytmy konieczne, by
znaleźć serwer nazw, który zawiera informację poszukiwaną przez klienta.
Te funkcje mogą zostać połączone albo rozdzielone, by dostosować się do potrzeb środowiska. W wielu
przypadkach przydatnym jest, by scentralizować funkcję klienta DNS w jednym albo w większej liczbie
specjalnych serwerów nazw dla danej organizacji. Taka struktura dzieli się użyciem skeszowanej informacji, jak
również pozwala słabszym hostom, takim jak PC, polegać na rozwiązujących nazwy usługach specjalnych
serwerów bez potrzeby posiadania klienta DNS w PC.
2.2. Przestrzeń nazw
Wewnętrzna przestrzeń nazw DNS jest drzewem o zmiennej głębokości, przy czym każdy punkt
węzłowy w drzewie ma przypisaną etykietę. Nazwa domeny punktu węzłowego jest połączeniem wszystkich
etykiet na ścieżce z punktu węzłowego do korzenia drzewa. Etykiety są zmiennej - długość stringami oktetów i
każdy oktet w etykiecie może przyjmować dowolną 8-bitową wartość. Etykieta zerowej długości jest
zarezerwowana dla korzenia. Operacje przeszukujące przestrzeń nazw są realizowana w sposób, który nie
uwzględnia wielkości liter (stosuje się kod ASCII). W ten sposób etykiety „Paul”, „paul” i „PAUL”, oznaczają
ten sam węzeł. Ta reguła dopasowywania skutecznie przeciwdziała tworzeniu wierzchołków drzewa o etykietach
mających identyczną pisownię, ale różniących się wielkością liter. Racjonalny dla tego systemu jest fakt, że
pozwala on źródłom informacji wyszczególnić ich kanoniczną wielkość liter, ale uwalnia użytkowników od
konieczności pamiętania o wielkości liter w etykietach. Etykiety są ograniczone do 63 oktetów, a nazwy
całkowicie do 256 oktetów. Pomaga to przy implementacji, choć ograniczenie mogłoby łatwo zostać zmienione,
jeśli pojawiłaby się taka potrzeba.
Specyfikacja DNS unika definiowania standardowej reguły druku dla wewnętrznego formatu nazw, aby
pozwolić na użycie DNS do zakodowania istniejącej strukturalnej nazwy. Pliki konfiguracyjne w systemie
domen reprezentują nazwy jako łańcuchy znaków rozdzielone kropkami, ale aplikacje mogą je przedstawiać
inaczej. Na przykład, nazwy hostów używają wewnętrznych reguł DNS, więc przykładowo VENERA.ISI.EDU
jest nazwą z czterema etykietami (pusta nazw korzenia zwykle jest pominięta). Nazwy skrzynek pocztowych,
podawane są jako USER@DOMAIN (albo ogólniej jako lokalna_cześć@oraganizacja) kodują tekst z lewej
strony znaku „@” w pojedynczą etykietę (być może zawierającą „.”) i używają ustalania zakresu kropki zgodnie
regułami pliku konfiguracyjnego DNS dla części po znaku „@”. Podobne kodowanie można by zastosować dla
nazw plików, etc.
DNS również oddziela strukturę drzewa od ukrytych semantyk. Nie wykonano tego aby przechowywać
nazwy wolne od ukrytych semantyk, ale po to, by pozostawić aplikacji wybór semantyki. W ten sposób nazwa
hosta mogłaby mieć więcej albo mniej etykiet niż nazwa użytkownika i drzewo nie byłoby zorganizowane przez
sieć albo inne grupowanie. Szczególne sekcje przestrzeni nazw mają bardzo silną (ukrytą) semantykę łączoną z
nazwą, szczególnie kiedy DNS zawiera istniejącą przestrzeń nazw albo gdy jest użyty, by dostarczyć
odwrotnych odwzorowań (np. INADDR. ARPA, adresy IP do sekcji nazwy hosta w przestrzeni domeny), ale
domyślnym założeniem jest, że jedynym sposobem, by zdecydowanie powiedzieć co nazwa reprezentuje jest
spojrzenie na dane skojarzone z tą nazwą.
Zalecana struktura przestrzeni nazw dla hostów, użytkowników i innych typowych aplikacji
odzwierciedla strukturę organizacji kontrolującej domenę lokalną. Jest to wygodne, ponieważ cechy DNS
dotyczące (dystrybucji) kontroli nad bazą danych jest najskuteczniejsze kiedy odpowiada strukturze drzewa.
Administracyjnie wprowadzono [RFC 920], że najwyższe poziomy odpowiadają kodom krajów albo ogólnie
typom organizacji (na przykład EDU dla edukacyjnego, MIL dla wojskowego, UK dla Wielkiej Brytanii).
2.3. Powiązanie danych z nazwami
Ponieważ DNS nie powinien ograniczać danych, które aplikacje mogą dołączać do nazwy, to nie może
przygotować całkowicie formatu danych. DNS potrzebował też wyszczególnić pewne podstawy dla
strukturyzacji danych, tak żeby odpowiedzi na zapytania mogły zostać ograniczone do istotnych informacji oraz
by DNS mógł użyć swych własnych usług, by śledzić serwery, adresy serwerów, etc. Dane dla każdej nazwy w
DNS są zorganizowane jako zestaw rekordów zasobów (RRs); każdy RR zawiera dobrze znany typ i pole klasy,
po których następują dane aplikacji. Wielokrotne wartości tego samego typu są reprezentowane jako oddzielny
RRs.
Typy mają reprezentować abstrakcyjne zasoby albo funkcje, na przykład adresy hostów i skrzynki
pocztowe. Około 15 jest aktualnie zdefiniowanych. Pole klasowe jest przeznaczone do podzielenia bazy danych
ortogonalnie ze względu na typ i do określenia rodziny protokołów albo instancji. Internet DARPA zawiera
klasę i można sobie wyobrazić, że klasy mogłyby zostać przydzielone do CHAOS, ISO, XNS albo podobnych
rodzin protokołów. Próbowano również konfigurowania funkcji określonej klasy, która byłaby niezależna od
protokołu (np.: uniwersalne archiwum pocztowe). Trzy klasy zostały obecnie wydzielone: Internet DARPA,
CHAOS i Hessiod.
Decyzja, by użyć wielokrotnych RRs pojedynczego typu zamiast włączania wielokrotnych wartości do
pojedynczego RR, różniła się od użytej w systemie XEROX i wybór nie był oczywisty. Wydajność przestrzeni
pojedynczego RR z wielokrotnymi wartościami była atrakcyjna, ale opcja wielokrotnych RR ograniczyła
maksymalną wielkość RR. To wydawało się obiecywać protokoły o prostszej dynamicznej aktualizacji, jak
również wydawało się dostosowane do użycia w środowisku datagramowym o ograniczonej wielkość (np.:
odpowiedź mogłaby zawierać tylko te elementy, które pasowałyby do maksymalnego rozmiaru pakietu bez
uwagi na część transportową RR).
2.4. Dystrybucja bazy danych
DNS dostarcza dwóch głównych mechanizmów dla przesyłania danych z końcowego źródła do
końcowego celu. Są to strefy oraz buforowanie. Strefy to sekcje systemowej bazy danych, które są kontrolowane
przez określoną organizację. Organizacja kontrolująca strefę jest odpowiedzialna za rozprowadzanie aktualnych
kopii stref do wielu różnych serwerów, które udostępniają strefy dla klientów przez Internet. Transfery strefy
typowo są inicjowane przez zmiany danych w strefie. Buforowanie jest mechanizmem, dzięki któremu dane
uzyskane w odpowiedzi na prośbę klienta mogą być lokalnie przechowywane na wypadek przyszłego zapytania
przez tego samego albo innego klienta.
Należy zauważyć, że zamiarem jest, aby oba mechanizmy były niewidoczne dla użytkownika, który
powinien widzieć pojedynczą bazę danych bez oczywistych ograniczeń.
Strefy
Strefa jest to kompletny opis sąsiedniej sekcji całkowitego drzewa przestrzeni nazw, razem
z informacjami „wskazującymi” na inne sąsiednie strefy. Ponieważ podziały stref mogą zostać wykonane
pomiędzy dowolnymi dwoma połączonymi punktami węzłowymi w całkowitej przestrzeni nazw, strefa mogłaby
być pojedynczym punktem węzłowym albo całym drzewem, ale typowo jest prostym drzewem podrzędnym.
Organizacja przejmuje kontrolę nad strefą przestrzeni nazw przez przekonanie rodzicielskiej
organizacji, by udzieliła pełnomocnictwa nad podstrefą składającą się z pojedynczego punktu węzłowego.
Rodzicielska organizacja dokonuje tego poprzez wstawianie RRs we własnej strefie, który zaznacza podział
strefy. Nowa strefa może wtedy rozrosnąć się do arbitralnej wielkości i dalej udzielać pełnomocnictwa bez
angażowania rodzica, chociaż rodzic zawsze zachowuje kontrolę nad początkowym udzieleniem
pełnomocnictwa. Na przykład, strefa ISI.EDU została utworzona przez przekonanie właściciela domeny EDU do
oznaczenia granicy strefy pomiędzy EDU i ISI.EDU.
Odpowiedzialność spoczywająca nad organizacją dotyczy utrzymania danych strefy i dostarczenia
nadmiarowych serwerów dla strefy. Typowa strefa jest utrzymana przez pewnego administratora systemu w
formie tekstowej zwanej plikiem głównym i jest ładowana do serwera głównego. Nadmiarowe serwery są albo
przeładowane ręcznie, albo używają automatycznego algorytmu odświeżania strefy, który jest częścią protokołu
DNS. Odświeżający algorytm pyta o numer seryjny w strefie danych serwera głównego, kopiuje strefę tylko
wtedy, jeśli wzrósł jej numer seryjny. Transfery strefy wymagają protokołu TCP dla zapewnienia
niezawodności.
Szczególny serwer nazw może utrzymywać dowolną ilość stref, które mogą być sąsiednie, ale nie
muszą. Serwer nazw dla strefy nie musi być częścią tej strefy. Ten plan (schemat) pozwala na prawie arbitralną
dystrybucję, ale jest najskuteczniejszy, kiedy baza danych jest rozprowadzona równolegle z hierarchią nazw.
Kiedy serwer odpowiada z danej strefy, a nie z pamięci podręcznej, oznacza on odpowiedź jako autorytatywną.
Celem takiego postępowania jest zapewnienie organizacji możliwości posiadania domen nawet, jeśli
brakuje jej możliwości komunikacji albo zasobów hosta wymaganych do usługi nazewniczej domeny. Jedna
metoda polega na tym, że organizacje posiadające zasoby dla pojedynczego serwera mogą tworzyć systemy
z innymi organizacjami podobnego typu. Może być to pożądane przez klientów, gdy ich organizacje znajdują się
z dala od siebie (w kategoriach sieciowych). Powoduje to, że dane są dostępne z różnych miejsc (lokalizacji w
sieci,stron etc). Inna metod polega na tym, że serwery zgadzają się na dostarczenie usługi nazewniczej dla
dużych społeczności takich jak CSNET i UUCP i otrzymują plik główny poprzez pocztę elektroniczną albo FTP
od ich abonentów.
Buforowanie (pamięć podręczna)
Oprócz zaplanowanej dystrybucji danych poprzez transfery strefy, resolvery DNS i połączone programy
serwera nazw/klienta DNS również buforują odpowiedzi dla użycia przez późniejsze zapytania. Mechanizmem
kontrolowania pamięci podręcznej jest czas życia (TTL), pole znajdujące się w każdym RR. Określa ono, przez
jaki czas (w ułamkach sekund) odpowiedź może zostać użyta ponownie. Zerowy TTL zakazuje buforowania.
Administrator określa wartości TTL dla każdego RR podczas definicji strefy; niski TTL jest wskazany, by
zmniejszać okresy przejściowej niekonsekwencji, podczas gdy wysoki TTL zmniejsza ruch i pozwala na
buforowanie w celu zamaskowania okresów nieosiągalności (niedostępności) serwera z powodu problemów z
siecią, bądź z hostem. Komponenty oprogramowania powinny się zachowywać tak, jak gdyby ciągle
zmniejszały TTL danych w buforach. Zalecaną wartością TTL dla nazw hosta są dwa dni.
W zamierzeniu buforowane odpowiedzi powinny być tak dobre jak uzyskiwane od autorytatywnego
serwera, z wyjątkiem zmian wprowadzonych w okresie TTL. Jednakże, wszystkie komponenty DNS preferują
wiarygodną informacje kiedy obie są udostępnione lokalnie.
3. Aktualny stan implementacji
DNS jest używany w całym Internecie DARPA. Katalogi [RFC 1031] opisują tuzin implementacji bądź
portów, obejmując zagadnienia począwszy od wszechobecnego wsparcia (pomocy) dostarczonego jako część
Berkeley UNIX, aż do implementacji dla IBM - PCety, Macintosh’e, maszyny LISP i fuzzball [Mills 88].
Chociaż mechanizm HOSTS.TXT nadal jest używany przez starsze hosty, zalecanym mechanizmem jest DNS.
Hosty dostępne przez HOSTS.TXT tworzą stale zmniejszający się podzbiór wszystkich hostów; ostatni pomiar,
[Stahl 87] pokazał, że w przybliżeniu 5,500 nazw hostów znajdowało się w obecnym HOSTS.TXT, podczas gdy
przeszło 20,000 nazw hostów było dostępnych poprzez DNS.
Aktualna przestrzeń nazw domen jest dzielona na około 30 domen najwyższego poziomu. Chociaż te
domeny są zarezerwowana dla każdego kraju (w przybliżeniu 25 w użyciu, np.: US, UK), większość hostów
oraz poddomeny nazywane są zgodnie z sześcioma najważniejszymi domenami najwyższego poziomu
określonymi dla różnych typów organizacji (e.g. edukacyjny - EDU, handlowy - COM). Niektóre hosty żądają
wielokrotnej nazwy w różnych domenach, chociaż zwykle jedna nazwa jest najważniejsze a inne są nazwami
umownymi (lub aliasami). SRI - NIC zarządza strefami dla wszystkich nie-krajowych domen najwyższego
poziomu i deleguje niższe domeny do indywidualnych uniwersytetów, przedsiębiorstw i innych organizacji,
które życzą sobie zarządzać własną przestrzeń nazw.
Delegacja poddomenami przez SRI-NIC stale rosła. W lutym 1987, około 300 domen zostało
wydelegowanych. Począwszy od marca 1988, ponad 650 domen zostało wydelegowanych. W przybliżeniu 400
reprezentuje normalne przestrzenie nazw kontrolowane przez organizacje inne niż SRI - NIC, podczas gdy 250 z
wydelegowanych domen reprezentuje przestrzenie adresu sieciowego (np. części IN-ADDR.ARPA) już nie są
kontrolowane przez NIC.
Dwoma dobrymi przykładami współczesnego użycia DNS są tak zwane "serwery korzenia”, które są
nadmiarowymi serwerami nazw wspierającymi najważniejsze poziomy przestrzeni nazw domen i poddomen
Berkeley, która jest jedną z domen wydelegowanych przez SRI - NIC w domenie EDU.
3.1. Serwery korzenia
Podstawowy algorytm poszukiwania dla DNS pozwala klientom DNS na decyzje przeszukiwania „w
dół” z domen, do których mogą już uzyskać dostęp. Klienci DNS typowo są skonfigurowani z
„podpowiedziami” wskazującymi na serwery wierzchołka roota (korzenia głównego) i wierzchołka domeny
lokalnej. W ten sposób, jeśli klient może uzyskać dostęp do jakiegoś serwera korzenia to może uzyskać dostęp
do wszystkich przestrzeni domen, i jeśli klient DNS jest w sieci oddzielonej od reszty Internetu, to może
przynajmniej uzyskać dostęp do lokalnych nazw.
Chociaż klient DNS ma dostęp do serwerów korzenia w mniejszym stopniu niż gromadzi buforowane
informacje o serwerach dla niższych domen, to dostępność serwerów korzenia jest ważnym elementem
odporności na błędy, a monitorowanie działania serwera korzenia dostarcza wglądu w użycie DNS.
Ponieważ dostęp do korzenia i innych stref najwyższego poziomu jest tak ważny, domena korzenia,
razem z innymi domenami najwyższego poziomu zarządzonymi przez SRI-NIC, jest utrzymywana przez siedem
nadmiarowych serwerów nazw. Te serwery korzenia rozproszone są wśród głównych rozległych sieci
szkieletowych Internetu. Są również nadmiarowane, z tym, że trzy są systemami TOPS-20 używającymi
JEEVES a cztery to systemy UNIX używające BIND.
Typowy ruch na każdym serwerze korzenia odbywa się w kolejności pytań na sekundę, z odpowiednio
wyższymi współczynnikami, kiedy inne serwery korzenia są niedostępne. Kiedy szeroki trend dotyczący tempa
zapytań jest generalnie rosnący, codzienne i miesięczne porównania ładunku są powodowane bardziej przez
zmiany w algorytmach implementacji i przerwy w nastawianiu odbiornika, niż przez wzrost w populacji
klientów. Na przykład, jedna zła wersja popularnego oprogramowania domeny doprowadziła średnio do ponad
pięciokrotnego wzrostu ładunku dla rozszerzonych okresów. Obecnie, ocenia się, że 50% całego ruchu na
serwerach korzenia mogłoby zostać wyeliminowane przez poprawy w różnych implementacjach klientów DNS
tak, aby używać mniej agresywnej retransmisji i lepszego buforowania podręcznego.
Liczba klientów, którzy uzyskują dostęp do serwerów korzenia może być oszacowana bazując na
narzędziach pomiarowych wersji TOPS-20. Te serwery korzenia przechowują ścieżkę pierwszych 200 klientów
po inicjalizacji serwera korzenia i pierwszych 200 klientów typowo realizujących 90% albo więcej wszystkich
pytań w jakimś pojedynczym serwerze. Skoordynowane pomiary w trzech serwerach korzenia TOPS-20 typowo
wykazują w przybliżeniu 350 różnych klientów przy 600 wejściach. Liczba klientów spada, gdy więcej
organizacji przyjmie strategie, które koncentrują zapytania i buforowanie podręczne dla dostępu na zewnątrz
lokalnej organizacji.
Klienci wydają się używać statycznych priorytetów w celu wybierania z którego serwera korzenia
korzystać. Niepowodzenie w wyborze danego serwera powoduje natychmiastowy wzrost ruchu na innych
serwerach. Ogromną większość zapytań stanowią cztery typy: wszystkie informacje (25 do 40%), odwzorowanie
nazw hostów na adresy (30 – 40%), odwzorowanie adresów na nazwy hosta (10 do 15%) i nowy styl informacji
poczty elektronicznej zwany MX (mniej niż 10%). Liczby te różnią się znacznie, gdy nowe dystrybucje
oprogramowania są rozpowszechniane. Serwery korzenia odsyłają 10 – 15% z wszelkich pytań do serwerów na
niższych poziomach domen.
3.2. Berkeley
Wsparcie UNIX dla DNS zostało dostarczone przez Uniwersytet Kalifornijski, Berkeley, częściowo
jako badania w systemach rozproszonych, a częściowo z konieczności w związku z rozbudową sieci
kampusowej [Dunlap 86a, Dunlap 86b]. Skutkiem jest serwer Berkeley Internet Domain Name (BIND).
Berkeley służy jako przykład dużej wydelegowanej domeny, chociaż jest na pewno bardziej wyrafinowany i ma
więcej doświadczenia niż większość.
Z BIND-em, Berkeley stał się pierwszą organizacją Internetu DARPA, przynoszącą komputery z
wszystkimi ich aplikacjami sieciowymi wyłącznie zależnymi od DNS dla rozwiązywania nazw hostów sieci
adresów. Berkeley zaczął instalować komputery zależne od serwera nazw na miasteczku studenckim wiosną
1985. Jesienią 1985, dwie pocztowe bramy do Internetu DARPA zostały skonwertowane do zależnych od DNS,
to oznaczało, że całe miasteczko uniwersyteckie musiało przyjąć domenowy styl adresów poczty.
Kształcenie wyrafinowanej społeczności użytkowników Berkeley w nowej formie adresowania okazało
się głównym zadaniem. Największy sprzeciw ze strony społeczności użytkowników był spowodowany przez
adresy poczty e-mail, które stały się przestarzałe. Dodatkowo brakowało skrótów i zasad przeszukiwania w
początkowej implementacji.
Chociaż przejście na system DNS było żmudne, zapotrzebowanie było oczywiste, jak pokazano w
tabeli, która podaje liczbę hostów, podsieci i ostatecznie poddomen będących w użyciu w Berkeley przez
ostatnie trzy lata. Na przykład od stycznia 1986 do lutego 1987 Berkeley dodał 735 hostów w 250 dni
roboczych, średno trzy nowe hosty każdego dnia roboczego.
Data
Hosty
Podsieci
Poddomeny
Styczeń 1986
267
14
Luty 1987
1002
44
Marzec 1988
1991
86
5
Należy zauważyć, że Berkeley ostatnio podzielił swą domenę na wielokrotne strefy w celu
wygodniejszej administracji.
4. Niespodzianki
Działanie DNS ujawniło kilka spraw, które wydały się początkowo zaskoczeniem dla inwestorów, ale po
zastanowieniu nie wydają się aż tak zaskakujące.
4.1. Udoskonalenie semantyki
Główną rolą DNS jest występowanie jako składnicy informacji a początkowym założeniem było to,
żeby forma i zawartość tej informacji były dobrze zrozumiane. To okazało się złym założeniem. Nawet
istniejące powszechne pojęcia takie jak adres IP hosta były źródłem problemów; było oczywiste, że trzeba
będzie utrzymać wielokrotne adresowania dla pojedynczego hosta, ale wywiązały się długotrwałe dyskusje, czy
adresy przydzielone dla nazwy hosta powinny zostać uporządkowane i jeśli tak, to w jaki sposób.
4.2. Osiągi
Osiągi podstawowych sieci były gorsze niż projekt oryginalnie zakładał. Wzrost liczby sieci nadwerężał
mechanizmy bramy służace do podtrzymywania łączności, doprowadzając do gubienia ścieżek dostępu i
jednokierunkowych ścieżek dostępu. Równocześnie, wzrost obciążenia oraz dodanie wielu wolniejszych
połączeń doprowadziło do dłuższych opóźnień. Te problemy były widoczne w serwerach korzenia, gdzie
dzienniki (pliki log, pliki przedstawiające historie połączeń) ujawniają w wielu wypadkach powtórzenie kopii
tego samego zapytania z tego samego źródła. Chociaż serwery korzenia TOPS-20 potrzebują mniej niż 100
milisekund, by przetworzyć zdecydowaną większość pytań, klienci typowo widzą czasy odpowiedzi od 500
milisekund do 5 sekund, nawet dla bliższego serwera korzenia, w zależności od ich położenia w Internecie.
Sytuacja dla zapytań do wydelegowanych domen jest często dużo gorsza, zarówno z powodu kłopotów w sieci,
jak również ponieważ serwery nazw dla tych domen są często w dużym stopniu obciążone przez hosty na mniej
scentralizowanych sieciach. Zapytania od ARPANET do domen delegowanych typowo zajmują od 3 do 10
sekund podczas czasu największego obciążenia sieci oraz sporadycznie od 30 do 60 sekund w najgorszych
przypadkach. Interesującym spostrzeżeniem, jest to, że czasy dostępu do odległego serwera nazw są podobne do
tych zaobserwowanych dla jednorodnej usługi nazewniczej XEROX-a [Larson 85].
Dodatkowym zaskoczeniem okazały się trudności w robieniu rozsądnych pomiarów osiągów DNS.
Zaplanowaliśmy zmierzyć osiągi kolejnych elementów DNS, by ocenić koszty przyszłych poprawek i aby
kierować nastawianiem istniejących przedziałów retransmisji, ale pomiary często były zaburzone przez
niezwiązane zjawiska z powodu zmiany bramy, nowej wersji oprogramowania DNS itp. Dużo serwerów wypada
lepiej, gdy ich obciążenie wzrasta z powodu rzadszych błędów strony, ale wyraźnie nie jest to trwała sytuacja
przez dłuższy okres czasu, prowadząca do obaw o poprawę osiągów sieci i istnienie możliwości zwiększenia
obciążenia dla serwerów.
Osiągi wyszukiwania odpowiedzi dla zapytań, które nie potrzebowały dostępu do sieci był miłym
zaskoczeniem. Zastępowaliśmy dość prostą tabelę wyszukiwania hostów bardziej skomplikowaną bazą danych,
więc nawet, jeżeli pamięć podręczna pracowała bardzo dobrze, to mogliśmy znacznie spowalniać istniejące
aplikacje. Jednakże nowe mechanizmy typowo są tak dobre albo nawet lepsze od starych, niezależnie od
implementacji. Powodem tego jest to, że stare mechanizmy zostały utworzone dla dużo mniejszej bazy danych i
nie były dostosowywane do rozmiaru gwałtownie powiększającej się bazy danych, podczas gdy nowe
oprogramowanie zostało oparte na założeniu bardzo dużej bazy danych.
4.3. Buforowanie negatywnych odpowiedzi
DNS dostarcza dwóch typów przeczących odpowiedzi na pytania. Jedno określa, że nazwa z zapytania
nie istnieje. Drugie natomiast oznacza, że mimo że nazwa w zapytaniu istnieje, to wymagane dane nie są
dostępne. Pierwszy typ może wystąpić, gdy nazwa została błędnie napisana, natomiast drugi może być
rezultatem tego, że zapytanie dotyczyło rodzaju skrzynki poczty elektronicznej hosta albo członów listy
adresowej hosta. Takie odpowiedzi występują rzadko.
Początkowe monitorowanie aktywności serwera korzenia pokazało bardzo wysoki udział (20 do 60%)
takich odpowiedzi. Pliki dzienników ujawniły, że wiele z tych pytań zostało wygenerowanych przez programy
używające nazwy hosta w starym stylu, albo nazw innej poczty internetowej (np.: UUCP). W drugim przypadku,
oprogramowanie obsługujące przesyłanie poczty często użyłoby wywołania konwersji nazwy na adresy, aby
przetestować, czy adres obowiązywał w Internecie DARPA, chociaż można było to łatwo określić w inny
sposób. Skutkiem tego, że mało adresów pocztowych UUCP jest ważnymi nazwami domeny, była przecząca
odpowiedź od serwera korzenia, połączona z opóźnieniem dla nie-lokalnego zapytania.
Oczekiwaliśmy, że ilość przeczących odpowiedzi będzie się zmniejszać i że być może znikną,
ponieważ hosty skonwertowały ich nazwy do formatu nazwy domeny oraz gdyż poprosiliśmy osoby
odpowiedzialne za programy pocztowe, aby je zmodyfikowały. Mimo że kroki te zostały podjęte, negatywne
odpowiedzi pozostały w zakresie 10 – 50% wszystkich, a typowo 25%.
Powodem jest to, że środki poprawy zostały wyrównane przez rozpowszechnianie się programów, które
dostarczyły skrótowych nazw przez mechanizm przeszukiwania listy. Przeszukiwane listy produkują pewną
serię złych nazw przy sprawdzaniu różnych wariantów; błędnie wpisana nazwa może teraz doprowadzić do kilku
błędnych nazw zamiast jednej. Naszym zdaniem jakikolwiek system nazw, który polega na buforowaniu, dla
osiągów mógłby potrzebować także buforowania dla negatywnych odpowiedzi. Taki mechanizm został dodany
do DNS jako opcja, z imponującym wzrostem osiągów w przypadkach, gdy opcja ta to jest wspierana zarówno
w wymagających serwerach nazw jak i klientach DNS. Ta opcja prawdopodobnie stanie się standardem w
przyszłości.
5. Sukcesy
5.1. Zmienna hierarchia głębokości
Hierarchia o zmiennej głębokości jest często używana z kilku powodów:
• Rozprzestrzenianie się stacji roboczych i technologii sieci lokalnych oznaczało, że organizacje
uczestniczące w Internecie potrzebowały się wewnętrznie zorganizować.
• Organizacje znacznie różniły się rozmiarem i stąd potrzebowały różnej liczby poziomów
organizacyjnych. Na przykład, zarówno duże międzynarodowe przedsiębiorstwa jak i małe
początkujące rejestrowane są w systemie domeny.
• Zmienna hierarchia głębokości daje możliwość, aby enkapsułować jakiś stały, bądź zmienny
poziom systemu. Na przykład, własna usługa nazewnicza w Wielkiej Brytanii (NRS) i DNS
nawzajem kapsułują przestrzeń nazw. Ten schemat może też zostać użyty w przyszłości, by
współdziałać z usługą zgodną z rozwojem ISO i CCITT.
Wiele sieci, które nie używają protokołów DNS i typów danych standaryzowało adresowanie poczty
elektronicznej na DNS-owej hierarchicznej składni nazw [Quarterman 86].
5.2. Organizacyjne budowanie nazw
Chociaż szczególna organizacyjna struktura najwyższego poziomu używana przez obecny system DNS
jest dość kontrowersyjna, zasada, że nazwy są niezależne od sieci, topologii, etc. jest całkiem popularna.
Przyszła struktura najwyższych poziomów prawdopodobnie, będzie podlegać debacie. Większość propozycji
przynosi równowagę pomiędzy poparciem i sprzeciwem. W opinii autorów, jedyną prawdziwą możliwość dla
masowej zmiany stwarza polityczna decyzja, by zmienić strukturę przestrzeni nazwy domeny, tak by była
podobna do przestrzeni nazw proponowanej przez katalogową usługę ISO / CCITT. To nie jest techniczna
kwestia ponieważ DNS jest wystarczająco elastyczny, by przystosować się do prawie każdego politycznego
wyboru.
5.3. Dostęp datagramowy
Użycie datagramów jako preferowanej metody uzyskiwania dostępu do serwerów nazw było pomyślne
i prawdopodobnie istotne, zważywszy na niespodziewane złe osiągi Internetu DARPA. Ograniczenie do około
512 bajtów danych okazuje się nie być problemem, szybkość jest o wiele lepsza niż osiągnięta przez obwody
TCP, poza tym zasoby OS nie są zajęte.
Jedyną oczywistą wadą dostępu datagramowego jest potrzeba, by rozwinąć i udoskonalić strategie
retransmisji, które są już bardzo dobrze rozwinięte dla TCP. Dużo zbędnego ruchu jest generowane przez
klientów, którzy zostali rozwinięci do punktu roboczego, ale których autorzy stracili zainteresowanie przed
dostrojeniem, albo przez systemy, które importowały dobrze znane wersje kodu programu, ale nie śledziły
aktualizacji dostrajania.
5.4. Dodatkowe przetwarzanie segmentu
Kiedy serwer nazw odpowiada na zapytanie, dodatkowo do dowolnej informacji użytej, by
odpowiedzieć na pytanie, może dołączyć do odpowiedzi dowolną informację, która według niego pasuje, o ile
dane mieszczą się w pojedynczym datagramie. Ideą było pozwolić odpowiadającym serwerom przewidzieć
następną logiczną prośbę i odpowiedzieć na nią, zanim zostało zadane pytanie, bez znaczącego wzrostu kosztu
transmisji. Na przykład, kiedykolwiek serwery korzenia zwracają nazwę hosta, dołączają jego adres (jeśli jest
dostępny), zakładając, że adres hosta będzie potrzebny, do uzyskania innej informacji. Eksperymenty pokazują,
że ta cecha zmniejszy ruch zapytań o połowę.
5.5. Buforowanie
Dziedzina buforowania DNS pracuje dobrze i zważywszy na niespodziewane złe osiągi Internetu, była
niezbędna dla sukcesu systemu.
Jedyne problemy z buforowaniem wiążą się z bazami danych i strategiami zapytań, które powodują, że
jest ono mniej wiarygodne lub użyteczne. Na przykład, RR-y tego samego typu w danym (konkretnym) węźle
powinny mieć ten sam TTL, żeby przerwy były równoczesne, ale administratorzy czasami przydzielają TTL
popełniając błąd. Uważają, że wyznaczają jakiś rodzaj priorytetu. Administratorzy również bardzo często
wybierają krótkie TTLs, żeby ich zmiany odnosiły skutek szybko, nawet, jeśli są bardzo rzadkie i nie potrzebują
punktualności.
Podobnym zmartwieniem jest bezpieczeństwo i problem niezawodności spowodowany przez nie dające
się rozróżnić buforowanie. Kilka istniejących klientów DNS nierozsądnie buforuje całą informację odpowiedzi.
To skończyło się licznymi przypadkami, kiedy błędna informacja krążyła i powodowała problemy. Podobne
trudności napotykano, kiedy jeden administrator odwrócił TTL i wartości danych, wskutek czego
rozpowszechniano złe dane z kilkuletnim TTL. Pomimo że, zredukowano podatność na błędy różnymi środkami,
bezpieczeństwo aktualnego systemu zależy od integralności mechanizmów adresowania sieci, co i tak jest
niepewne w erze PC-ów i sieci lokalnych.
5.6. Współdziałanie
z adresem pocztowym
Porozumienie pomiędzy reprezentantami CSNET, BITNET, UUCP i społecznością Internetu DARPA
doprowadziła do porozumienia, by użyć organizacyjnie ukształtowanych nazw domeny do adresowania poczty
elektronicznej i routingu. Mimo że, przejście od nieeleganckiego, wielokrotnie kodowanego adresowania poczty
w przeszłości, jest dalekie od ukończenia, możliwość porządkowania adresów pocztowych wyraźnie została
zademonstrowana.
6. Mankamenty
6.1. Typ i wzrost klasy
Kiedy szkic specyfikacji DNS został udostępniony w 1983, prawie jednomyślnie skrytykowano to, że
typ i elementy opisujące dane klasy, które były 8 bitowe w projekcie, powinny zostać rozwinięty do 16, albo
nawet 32 bitów, by pozwolić na nowe definicje. Przez pierwsze pięć lat użycia DNS, dwa nowe typy zostały
zaadoptowane, dwa typy zostały odrzucone i przydzielono dwie nowe klasy. Wyraźnie albo wymagania dla
nowych typów i klas zostały zupełnie źle zrozumiane, albo bieżący DNS powoduje, że nowe definicje są zbyt
trudne.
Podczas gdy jednym problemem jest to, że prawie całe istniejące oprogramowanie traktuje typy i klasy
jako stałe uzyskiwane podczas kompilacji, dlatego wymaga ponownej kompilacja by uwzględnić zmiany.
Trudniejszym problemem jest to, że nowe typy danych i klas są bezużyteczne dopóki ich semantyki nie zostaną
starannie zaprojektowane i opublikowane, aplikacje nie zostaną stworzone do ich użycia i konsensus nie będzie
osiągnięty, by użyć nowego systemu w Internecie. To oznacza, że nowe typy stają przed szeregiem technicznych
i politycznych przeszkód.
Potrzebne są wskazówki oraz metodologia, które mogą pomóc w projektowaniu nowych typów
informacji. Jest to bardziej skomplikowane niż tylko uzyskanie wartości potrzebnych aplikacji, ponieważ często
wymagało to projektowania specjalnych segmentów przestrzeni nazw, operacji wyboru TTL, by uzyskać
zadowalające osiągi i semantykę, i decyzji, czy wyprodukować pożądane powiązanie przez jedno odszukanie
albo ciąg mniejszych powiązań. Metoda pojedyncza odszukania często wydaje się niezwykle atrakcyjna dla
projektanta danej aplikacji pomijając fakt, że to może spowodować nakładanie się albo kolidować z danymi
innej aplikacji. Innym czynnikiem jest to, że członkowie Internetu mają różniące się spojrzenie na odpowiednie
założenia albo podejście do poszczególnych problemów. Przykładem jest poczta elektroniczna. Po długiej
debacie, typ danych MX i system [RFC 974] zdefiniowały znormalizowaną metodę dla routingu poczty, opartej
na części DOMENY albo LOCAL-PART@DOMAIN adresie pocztowym. MX reprezentował proste
uzupełnienie do samego DNS-u, ale wymagał zmian we wszystkich serwerach poczty i jego korzyści wymagały
definitywnej zmiany oprogramowania obsługującego przesyłanie poczty. Pojawiły się liczne sugestie, by
rozszerzyć DNS w celu dostarczenia rejestru przeznaczenia poczty do poziomu indywidualnego użytkownika.
Podstawy takiej usługi są w zakresie naszego zrozumienia, ale konsensus dla pojedynczego planu pozostaje
nieosiągnięty. Część zainteresowanych wymaga, by powiązanie na poziomie poczty użytkownika było opcją
ponad MX, podczas gdy inni popierają świeże uruchomienie, z dużymi możliwościami przesyłania poczty,
utrzymania listy, itp. Najlepszym wyborem wydaje się być ten, w którym powiązanie agenta jest zawsze opcją
do wyboru, oprogramowanie obsługujące przesyłanie poczty, które decyduje się dostosować do poziomu
skrzynki pocztowej może tak postąpić, jeśli dane skrzynki pocztowej są również dostępne.
6.2. Łatwe ulepszanie aplikacji
Konwersja aplikacji sieciowych do użycia DNS-u nie jest prostym zadaniem. Idealnie byłoby, gdyby
wszystkie aplikacje konwertowane z HOSTS.TXT mogły zostać przekompilowane ponownie do użycia DNS i
zachowały wszystkie uprawnienia, ale jest to rzadkim przypadkiem.
Część problemu stanowią chwilowe uszkodzenia. Rozproszony system nazywania, z natury rzeczy ma
okresy, w których nie może uzyskać dostępu do szczególnej informacji. Aplikacje muszą odpowiednio
rozwiązywać ten problem. Oprogramowanie obsługujące przesyłanie poczty sprawdzające (wyszukujące) punkty
przeznaczenia poczty nie powinny odrzucać poczty z powodu tych chwilowych uszkodzeń, ale nie mogą też
pozwolić sobie na czekanie bez końca. Nawet, jeśli takie uszkodzenia są przewidziane jako całkiem rzadkie,
kiedy DNS się ustabilizuje, stajemy wobec problemu „kury i jajka” w konwersji oprogramowania obsługującego
przesyłania poczty, by użyć nowego oprogramowania.
Inną częścią problemu jest to, że dostęp do systemu nazywającego powinien być włączony do systemu
operacyjnego w znacznie większym stopniu, niż dostarczanie wywołania systemowego dla klienta DNS.
Użytkownicy potrzebują mieć możliwość uzyskania dostępu do tej usługi na z poziomu konsoli i określić listy
przeszukiwania i wartości domyślne w sposobie zgodnym z innymi systemami operacyjnymi.
6.3. Rozpowszechnienie kontroli w przeciwieństwie do
rozpowszechnienia wiedzy specjalistycznej albo odpowiedzialności
Grupa odpowiedzialna za administracje domen DNS udostępniająca bazy danych nie rozprowadza
odpowiadającej ilości wiedzy specjalistycznej. Serwisanci naprawiają urządzenia dopóki te działają, a nie póki
działają dobrze. Chcą używać dostarczonych im systemów nie rozumiejąc ich działania. Projektanci systemów
powinni przewidzieć to i spróbować skompensować w sposób techniczny. DNS dostarcza kilka przykładowych
zasady:
• Początkowa polityka polegała na autoryzacji domeny każdej organizacji, która wypełniła
formularz przedstawiający jej nadmiarowe serwery i inne niezbędne urządzenia. Zamiast
tego należy wymagać, żeby organizacja zademonstrowała nadmiarowe serwery z
prawdziwymi danymi w nich zawartymi zanim domena zostanie wydelegowana
i prawdopodobnie należy nalegać, aby serwery te były w różnych sieciach i nie ufać
zapewnieniom, że serwery nie ulegały żadnym uszkodzeniom.
• Dokumentacja dla systemu używała przykładów, które łatwo zostały wyjaśnione w
narracji. Przykładowe wartości TTL, które odpowiadały godzinie zawsze były kopiowane;
tekst, który mówił, że wartości te powinny być kilkudniowe został zignorowany.
Dokumentacja zawsze powinna być pisana z założeniem, że tylko przykłady będą czytane.
• Debugowanie systemu zostało utrudnione przez pytania o wersje oprogramowania i
parametry. Te wartości powinny być dostępne przez protokół.
_
7. Wnioski
Pytanie brzmiące: „Czy DNS był dobrym pomysłem?” może być przedmiotem dyskusji opartej na
poglądach czytelnika, podobnie jak klasyfikacja wielu poprzednich kwestii na punkty: „sukcesy”, „zaskoczenia ”
i „wady ”.
Modyfikacje schematu HOST.TXT mogłyby odłożyć potrzebę nowego systemu i zmniejszyły ilościowe
argumenty dla DNS. DNS prawdopodobnie nie zmniejszyło jeszcze szerokiej społecznie, administracyjnej
komunikacji czy też ładunku informacji. Jednakże potrzeba, by rozdzielić funkcjonalność, była według nas
nieuchronna. Ta potrzeba, razem z nową funkcjonalnością i możliwościami dla przyszłych usług muszą być
kluczowym kryterium oceny, z perspektywy autorów, którzy uzasadniają DNS.
Jest wiele decyzji, które moglibyśmy podjąć w odmienny sposób, gdybyśmy zaczynali od początku.
Głównymi radami, jakie byłyby wartościowe gdybyśmy zaczynali są:
• Buforowanie może działać w różnorodnym środowisku, ale powinno także zawierać
możliwość przechowywania (cachowania) przeczących odpowiedzi.
• Często trudniej jest usuwać funkcje z systemów niż dodawać nowe. Cała społeczność nie
przystosowałaby się do nowej usługi; zamiast tego część pozostałaby przy starej usłudze, część
zmieniła ją na nową, a pozostała część korzystałaby z obu rozwiązań. To ma niefortunny efekt
komplikowania wszystkich funkcji w czasie dodawania nowych możliwości do systemu.
• Najzdolniejsi programiści tracą zainteresowanie, gdy tylko nowy system dostarcza osiągów na
poziomie, którego oni oczekują; nie łatwo ich zmotywować, by zoptymalizowali użycie innych
zasobów albo dostarczyli łatwych w użyciu wskazówek dla administratorów, którzy używają
tych systemów. Rozprowadzone oprogramowanie powinno zawierać numer wersji i tabele
parametrów, które mogą zostać odczytane. Jeśli jest to możliwe, systemy powinny zawierać
techniczny sposób dla przekazania parametrów dostrajania, albo przynajmniej wartości
domyślne dla wszystkich instalacji bez ingerencji administratorów systemu.
• Zezwolenie na zmiany w strukturze implementacji użyte w celu dostarczenia usługi okazały się
bardzo dobrym pomysłem; Natomiast zezwolenie na zmiany w dostarczanej usłudze powoduj
problemy.
_
_"
_
8. Kierunki dalszych prac
Chociaż DNS jest w produkcyjnym użyciu i w związku z tym trudno w nim wprowadzić zmiany, inne
badania nad systemami nazywania, szczególnie pojawiający się ISO X. 500 usług katalogowych, może
dostarczyć dodatkowych bodźców.
Obsługa stylu adresów poczty dla X. 500, itp. mogłaby zostać zbudowana jako dodatkowa
warstwa nad DNS, aczkolwiek bez skomplikowanej ochrony, aktualizacji, i reguł budowania X. 500.
Użycie technik opisu danych ze standardów ISO mogłoby dostarczyć lepszego mechanizmu dodawania
typów danych niż aktualne reguły konstrukcji danych, podczas gdy udowodniona infrastruktura DNS
mogłaby przyspieszać modelowanie aplikacji ISO.
Wartość wszechobecnej usługi nazewniczej i zwartej przestrzeni nazw na wszystkich
poziomach protokołu i systemu operacyjnego wydaje się oczywista, ale jest jednakowo oczywiste, że
kompromis pomiędzy osiągami, powszechnością i rozpowszechnieniem wymaga przynajmniej
różniących się stylów użycia na różnych poziomach. Na przykład, system odpowiedni dla zarządzania
nazwami plików na miejscowym dysku różniłby się znacznie od systemu utrzymującego szeroką listę emailową w Internecie. Wyzwaniem jest rozwinięcie podejścia, które, przynajmniej pojęciowo, rozbije
całkowite zadania na warstwy albo przedstawi je w innej spójnej organizacji. Badania w systemach
nazywania typowo zakończyły się propozycjami dla systemów, które mogłyby zastąpić albo zawierać w
sobie wszystkie inne systemy, albo systemy, które pozwalają na tłumaczenie pomiędzy rozłącznymi
przestrzeniami nazw, a formatami danych, itp. Obie propozycje mają zarówno zalety jak i wady.
Aktualny DNS i próby, by ujednolicić jego przestrzeń nazw bez specjalnych domen dla
sprecyzowanych sieci, etc. umieszcza DNS w pierwszej kategorii. Jednakże, jego sukces jest
wystarczająco uniwersalny, by być zachęcającym, podczas gdy nie jest wystarczający by rozwiązać
trudności użytkownika związane z niejasnym kodowaniem innych systemów. Techniczne i/lub
polityczne rozwiązania dla wzrastającej złożoności nazewnictwa będą coraz bardziej potrzebne.
Wprowadzenie............................................................................................................................ 1
1. Wstęp.................................................................................................................................. 1
2. DNS Design........................................................................................................................ 2
2.1. Architektura..................................................................................................................... 2
2.2. Przestrzeń nazw............................................................................................................... 2
2.3. Powiązanie danych z nazwami........................................................................................ 3
2.4. Dystrybucja bazy danych ................................................................................................ 4
3. Aktualny stan implementacji.............................................................................................. 5
3.1. Serwery korzenia............................................................................................................. 5
3.2. Berkeley .......................................................................................................................... 6
4. Niespodzianki..................................................................................................................... 6
4.1. Udoskonalenie semantyki ............................................................................................... 6
4.2. Osiągi .............................................................................................................................. 6
4.3. Buforowanie negatywnych odpowiedzi .......................................................................... 7
5. Sukcesy............................................................................................................................... 7
5.1. Zmienna hierarchia głębokości................................................................................................ 7
5.2. Organizacyjne budowanie nazw...................................................................................... 8
5.3. Dostęp datagramowy....................................................................................................... 8
5.4. Dodatkowe przetwarzanie segmentu............................................................................... 8
5.5. Buforowanie .................................................................................................................... 8
5.6. Współdziałanie z adresem pocztowym ..................................................................................... 8
6. Mankamenty....................................................................................................................... 9
6.2. Łatwe ulepszanie aplikacji .............................................................................................. 9
6.3. Rozpowszechnienie kontroli w przeciwieństwie do rozpowszechnienia wiedzy
specjalistycznej albo odpowiedzialności................................................................................ 9
7. Wnioski ................................................................................................................................ 10
8. Kierunki dalszych prac......................................................................................................... 10

Podobne dokumenty