Lokalny Gospodarz

W sieci komputerowej host lokalny to nazwa hosta odnosząca się do bieżącego urządzenia używanego do uzyskiwania do niego dostępu . Służy do uzyskiwania dostępu do usług sieciowych uruchomionych na hoście za pośrednictwem interfejsu sieciowego sprzężenia zwrotnego . Korzystanie z interfejsu sprzężenia zwrotnego umożliwia pominięcie sprzętu interfejsu sieci lokalnej .

Pętla zwrotna

Mechanizm lokalnej pętli zwrotnej może być używany do uruchamiania usługi sieciowej na hoście bez konieczności fizycznego interfejsu sieciowego lub bez udostępniania usługi z sieci, do których komputer może być podłączony. Na przykład lokalnie zainstalowana witryna internetowa może być dostępna z przeglądarki internetowej za pomocą adresu URL http://localhost w celu wyświetlenia jej strony głównej.

Nazwa hosta lokalnego zwykle jest tłumaczona na adres sprzężenia zwrotnego IPv4 127.0.0.1 oraz adres sprzężenia zwrotnego IPv6 ::1 .

Rozdzielczość nazw

Standardy sieciowe IPv4 rezerwują cały blok adresów 127.0.0.0/8 (ponad 16 milionów adresów) na potrzeby pętli zwrotnej. Oznacza to, że każdy pakiet wysłany na którykolwiek z tych adresów jest zapętlany. Adres 127.0.0.1 to standardowy adres dla ruchu zwrotnego IPv4; pozostałe nie są obsługiwane przez wszystkie systemy operacyjne. Można ich jednak użyć do skonfigurowania wielu aplikacji serwerowych na hoście, z których wszystkie nasłuchują na tym samym numerze portu. Standard IPv6 przypisuje tylko jeden adres pętli zwrotnej: ::1 .

Rozdzielczość nazwy localhost na jeden lub więcej adresów IP jest zwykle konfigurowana przez następujące wiersze w pliku hosts systemu operacyjnego :

127.0.0.1 host lokalny :: 1 host lokalny

Nazwa może być również rozpoznawana przez serwery systemu nazw domen (DNS), ale zapytania dotyczące tej nazwy powinny być rozpoznawane lokalnie i nie powinny być przekazywane do zdalnych serwerów nazw.

Oprócz mapowania hosta lokalnego na adresy pętli zwrotnej ( 127.0.0.1 i ::1 ), host lokalny może być również mapowany na inne adresy IPv4 (pętla zwrotna), a także możliwe jest przypisanie innych lub dodatkowych nazw do dowolnego adresu pętli zwrotnej . Mapowanie localhost na adresy inne niż wyznaczony zakres adresów pętli zwrotnej w pliku hosts lub w DNS nie gwarantuje pożądanego efektu, ponieważ aplikacje mogą mapować nazwę wewnętrznie.

W systemie nazw domen nazwa localhost jest zarezerwowana jako nazwa domeny najwyższego poziomu , pierwotnie odłożona, aby uniknąć pomyłki z nazwą hosta używaną do celów sprzężenia zwrotnego. Standardy IETF zabraniają rejestratorom nazw domen przypisywania nazwy localhost .

standardy IETF

Nazwa localhost jest zarezerwowana do celów sprzężenia zwrotnego przez dokument RFC 6761 ( Nazwy domen specjalnego użytku ), który osiągnął poziom dojrzałości proponowanego standardu w lutym 2013 r. Standard określa szereg specjalnych uwag dotyczących używania nazwy w systemie nazw domen :

  • Zapytanie o adres IPv4 lub IPv6 dla nazwy localhost musi zawsze odpowiadać odpowiedniemu adresowi pętli zwrotnej, który jest określony w osobnym standardzie.
  • Aplikacje mogą samodzielnie tłumaczyć nazwę na adres sprzężenia zwrotnego lub przekazywać ją do lokalnych mechanizmów rozpoznawania nazw.
  • Gdy narzędzie do rozpoznawania nazw otrzymuje zapytanie o adres (A lub AAAA) dla localhost , powinno zwrócić odpowiednie adresy sprzężenia zwrotnego i negatywne odpowiedzi dla wszelkich innych żądanych typów rekordów. Zapytania o localhost nie powinny być wysyłane do buforujących serwerów nazw.
  • Aby uniknąć obciążania serwerów głównych systemu nazw domen ruchem, buforujące serwery nazw nigdy nie powinny żądać rekordów serwera nazw dla hosta lokalnego ani przekazywać rozpoznawania do autorytatywnych serwerów nazw.
  • lokalnym hoście domeny najwyższego poziomu .
  • Gdy autorytatywne serwery nazw otrzymują zapytania o „localhost” pomimo wspomnianych przepisów, rozwiąż je odpowiednio.

Adresy sprzężenia zwrotnego IPv4 są zarezerwowane w przestrzeni adresowej IPv4 przez standard IETF „Special Use IPv4 Addresses” (RFC 5735). Rezerwację można prześledzić wstecz do standardu „Przydzielone numery” z listopada 1986 r. ( RFC 990 ).

Z kolei standard IETF „IP Version 6 Addressing Architecture” (RFC 4291) rezerwuje pojedynczy adres pętli zwrotnej IPv6 ::1 w przestrzeni adresowej IPv6. Standard wyklucza przypisanie tego adresu do dowolnego interfejsu fizycznego, jak również użycie go jako adresu źródłowego lub docelowego w jakimkolwiek pakiecie wysyłanym do zdalnych hostów. Każdy taki pakiet, który został błędnie przesłany, nie powinien być trasowany i powinien zostać odrzucony przez wszystkie routery lub hosty, które go odbierają.

Przetwarzanie pakietów

Przetwarzanie dowolnego pakietu wysłanego na adres sprzężenia zwrotnego jest realizowane w warstwie łącza stosu TCP/IP . Takie pakiety nigdy nie są przekazywane do żadnego kontrolera interfejsu sieciowego (NIC) ani sterownika urządzenia sprzętowego i nie mogą pojawiać się poza systemem komputerowym ani być kierowane przez żaden router. Pozwala to na testowanie oprogramowania i usług lokalnych przy braku jakichkolwiek sprzętowych interfejsów sieciowych.

Pakiety w pętli zwrotnej różnią się od innych pakietów przechodzących przez stos TCP/IP tylko specjalnym adresem IP, do którego zostały zaadresowane. W ten sposób usługi, które ostatecznie je otrzymują, odpowiadają zgodnie z określonym miejscem docelowym. Na przykład usługa HTTP może kierować pakiety zaadresowane do 127.0.0.99:80 i 127.0.0.100:80 do różnych serwerów sieci Web lub do jednego serwera, który zwraca różne strony sieci Web. Aby uprościć takie testowanie, plik hosts można skonfigurować tak, aby zapewniał odpowiednie nazwy dla każdego adresu.

Pakiety otrzymane przez interfejs bez pętli zwrotnej z adresem źródłowym lub docelowym z pętlą zwrotną muszą zostać odrzucone. Takie pakiety są czasami nazywane pakietami marsjańskimi . Podobnie jak w przypadku innych fałszywych pakietów, mogą one być złośliwe, a wszelkich problemów, które mogą powodować, można uniknąć, stosując filtrowanie bogon .

Przypadki specjalne

Wersje bazy danych MySQL rozróżniają użycie nazwy hosta localhost i użycie adresów 127.0.0.1 i ::1 . Podczas korzystania z hosta lokalnego jako miejsca docelowego w interfejsie łącznika klienta aplikacji, interfejs programowania aplikacji MySQL łączy się z bazą danych za pomocą gniazda domeny Unix , podczas gdy połączenie TCP za pośrednictwem interfejsu sprzężenia zwrotnego wymaga bezpośredniego użycia jawnego adresu.

Jednym godnym uwagi wyjątkiem od używania adresów 127.0.0.0 / 8 jest ich użycie w wykrywaniu błędów traceroute w Multiprotocol Label Switching (MPLS), w którym ich właściwość polegająca na braku możliwości trasowania zapewnia wygodny sposób unikania dostarczania wadliwych pakietów do użytkowników końcowych.

Zobacz też