Większość z nas słyszała o „127.0.0.1 i 0.0.0.0”, ale prawdopodobnie nie poświęciła im wiele uwagi, ale jeśli obie wydają się wskazywać na tę samą lokalizację, to jaka jest rzeczywista różnica między nimi? Dzisiejszy post z pytaniami i odpowiedziami dla SuperUser pomaga wyjaśnić sytuację zdezorientowanemu czytelnikowi.
Dzisiejsza sesja pytań i odpowiedzi jest dostępna dzięki uprzejmości SuperUser - części Stack Exchange, grupy witryn internetowych z pytaniami i odpowiedziami.
Zdjęcie dzięki uprzejmości Kate Gardiner (Flickr) .
Pytanie
Czytnik SuperUser Sagnik Sarkar chce wiedzieć, jaka jest różnica między 127.0.0.1 a 0.0.0.0:
Rozumiem, że 127.0.0.1 wskazuje na Lokalny Gospodarz i że 0.0.0.0 też działa (popraw mnie, jeśli się mylę). Jaka jest więc różnica między 127.0.0.1 a 0.0.0.0?
Jaka jest różnica między 127.0.0.1 a 0.0.0.0?
Odpowiedź
Współpracownik SuperUser, DavidPostill, ma dla nas odpowiedź:
Jaka jest różnica między 127.0.0.1 a 0.0.0.0?
- 127.0.0.1 to adres pętli zwrotnej (znany również jako localhost).
- 0.0.0.0 to nieroutowalny metadres służący do oznaczenia nieprawidłowego, nieznanego lub niemającego zastosowania celu (symbol zastępczy „brak określonego adresu”).
W kontekście wpisu trasy zwykle oznacza trasę domyślną.
W kontekście serwerów 0.0.0.0 oznacza wszystkie adresy IPv4 na komputerze lokalnym . Jeśli host ma dwa adresy IP, 192.168.1.1 i 10.1.2.1, a serwer działający na hoście nasłuchuje pod adresem 0.0.0.0, będzie osiągalny z obu tych adresów IP.
Jaki jest adres IP 127.0.0.1?
127.0.0.1 to adres protokołu internetowego (IP) sprzężenia zwrotnego, nazywany również adresem Lokalny Gospodarz . Adres jest używany do ustanowienia połączenia IP z tym samym komputerem lub komputerem, z którego korzysta użytkownik końcowy.
Ta sama konwencja jest zdefiniowana dla komputerów obsługujących adresowanie IPv6 przy użyciu konotacji :: 1. Najczęstszą praktyką jest ustanowienie połączenia przy użyciu adresu 127.0.0.1; jednak użycie dowolnego adresu IP z zakresu 127… * będzie działać w ten sam lub podobny sposób. Konstrukcja pętli zwrotnej daje komputerowi lub urządzeniu zdolnemu do pracy w sieci możliwość sprawdzenia poprawności lub ustanowienia stosu IP na maszynie.
Źródło: 127.0.0.1 - Jakie są jego zastosowania i dlaczego jest to ważne?
Adresy specjalne
Numer sieci klasy A 127 ma przypisany pętla zwrotna funkcja, to znaczy, że datagram wysłany przez protokół wyższego poziomu na adres sieciowy 127 powinien zapętlić się z powrotem wewnątrz hosta. Brak datagramu wysłane do sieci 127 adres powinien kiedykolwiek pojawić się w dowolnej sieci w dowolnym miejscu.
Źródło: Numery sieciowe
Jeśli jest to cała klasa A, jaki jest sens innych arbitralnych wartości dla ostatnich trzech oktetów?
Celem zakresu pętli zwrotnej jest testowanie implementacji protokołu TCP / IP na hoście. Ponieważ niższe warstwy są zwarte, wysyłanie na adres pętli zwrotnej pozwala na skuteczne testowanie wyższych warstw (IP i wyższych) bez możliwości wystąpienia problemów w niższych warstwach. 127.0.0.1 to adres najczęściej używany do celów testowych.
Źródło: Adresy zastrzeżone, sprzężenia zwrotne i adresy prywatne
Aby uzyskać więcej informacji, zobacz Zapytaj Ubuntu pytanie: Co to jest urządzenie Loopback i jak z niego korzystać?
Jaki jest adres IP 0.0.0.0?
0.0.0.0 to poprawna składnia adresu. Powinien więc analizować go jako poprawny wszędzie tam, gdzie oczekuje się adresu IP w tradycyjnej notacji dziesiętnej z kropkami. Po przeanalizowaniu i przekonwertowaniu na działającą postać liczbową, jej wartość określa, co stanie się dalej.
Wartość zero ma specjalne znaczenie. Tak to jest ważny , ale ma znaczenie, które może nie być odpowiednie (i tym samym traktowane jako nieważne) w określonych okolicznościach. Zasadniczo jest to symbol zastępczy „brak określonego adresu”. W przypadku takich rzeczy, jak wiązanie adresów połączeń sieciowych, wynikiem może być przypisanie odpowiedniego adresu interfejsu do połączenia. Jeśli używasz go do konfigurowania interfejsu, może zamiast tego usunąć adres z interfejsu. Zależy to od kontekstu użycia, aby określić, co tak naprawdę robi „żaden określony adres”.
W kontekście wpisu trasy zwykle oznacza trasę domyślną. Dzieje się tak w wyniku większej ilości maski adresu, która wybiera bity do porównania. Maska 0.0.0.0 nie wybiera żadnych bitów, więc porównanie zawsze się powiedzie. Tak więc, kiedy taka trasa jest skonfigurowana, zawsze jest miejsce, gdzie pakiety mają iść (jeśli skonfigurowano z prawidłowym miejscem docelowym).
W niektórych przypadkach samo „0” również zadziała i da ten sam efekt. Ale to nie jest gwarantowane. Formularz 0.0.0.0 to standardowy sposób na powiedzenie „brak określonego adresu” (to znaczy w IPv6 ::0 Lub tylko :: ).
Źródło: Jakie jest znaczenie adresu IP 0.0.0.0?
W protokole internetowym w wersji 4 adres 0.0.0.0 jest nieroutowalnym metadresem używanym do oznaczania nieprawidłowego, nieznanego lub niemającego zastosowania celu. Aby nadać specjalne znaczenie nieprawidłowemu fragmentowi danych, należy zastosować sygnalizację wewnątrzpasmową.
W kontekście serwerów 0.0.0.0 oznacza wszystkie adresy IPv4 na komputerze lokalnym . Jeśli host ma dwa adresy IP, 192.168.1.1 i 10.1.2.1, a serwer działający na hoście nasłuchuje na 0.0.0.0, będzie osiągalny z obu tych adresów IP ( Uwaga: Ten konkretny tekst jest powtórzony z góry jako część ogólnej odpowiedzi ).
W kontekście routingu 0.0.0.0 zwykle oznacza trasę domyślną, tj. Trasę, która prowadzi do „reszty” Internetu, a nie gdzieś w sieci lokalnej.
Zastosowania obejmują:
- Adres, który host twierdzi jako własny, jeśli nie został jeszcze przypisany. Na przykład podczas wysyłania początkowego pakietu DHCPDISCOVER podczas korzystania z protokołu DHCP.
- Adres, który host przypisuje sobie, gdy żądanie adresu przez DHCP nie powiedzie się, pod warunkiem, że stos IP hosta to obsługuje. To zastosowanie zostało zastąpione mechanizmem APIPA w nowoczesnych systemach operacyjnych.
- Sposób na określenie w ogóle dowolny host IPv4 . Jest używany w ten sposób podczas określania trasy domyślnej.
- Sposób jawnego określenia, że cel jest niedostępny. Źródło: 127.0.0.1 - Jakie są jego zastosowania i dlaczego jest to ważne?
- Sposób na określenie w ogóle dowolny adres IPv4 . Wykorzystywany jest w ten sposób podczas konfigurowania serwerów (np. Przy wiązaniu gniazd nasłuchujących). Jest to znane programistom TCP jako INADDR_ANY. [ bind (2) wiąże się z adresami, a nie interfejsami. ]
W IPv6 adres zawierający same zera jest zapisywany jako ::
Źródło: 0.0.0.0 [Wikipedia]
Wykrywanie / żądanie DHCP
Kiedy klient uruchamia się po raz pierwszy, mówi się, że znajduje się w stan inicjalizacji , i przesyła komunikat DHCPDISCOVER w swojej lokalnej fizycznej podsieci przez port 67 protokołu UDP (User Datagram Protocol) (serwer BootP). Ponieważ klient nie ma możliwości poznania podsieci, do której należy, DHCPDISCOVER jest rozgłoszeniem dla wszystkich podsieci (docelowy adres IP 255.255.255.255) ze źródłowym adresem IP 0.0.0.0. Źródłowy adres IP to 0.0.0.0, ponieważ klient nie ma skonfigurowanego adresu IP.
Jeśli serwer DHCP istnieje w tej lokalnej podsieci i jest skonfigurowany i działa poprawnie, usłyszy transmisję i odpowie komunikatem DHCPOFFER. Jeśli serwer DHCP nie istnieje w lokalnej podsieci, musi istnieć agent przekazywania DHCP / BootP w tej lokalnej podsieci, aby przekazać komunikat DHCPDISCOVER do podsieci zawierającej serwer DHCP.
Ten agent przekazujący może być dedykowanym hostem (na przykład Microsoft Windows Server) lub routerem (na przykład routerem Cisco skonfigurowanym z instrukcjami pomocnika IP na poziomie interfejsu).
…
Gdy klient otrzyma DHCPOFFER, odpowiada komunikatem DHCPREQUEST, wskazującym na zamiar zaakceptowania parametrów w DHCPOFFER i przechodzi do państwo żądające . Klient może otrzymać wiele komunikatów DHCPOFFER, po jednym z każdego serwera DHCP, który odebrał oryginalny komunikat DHCPDISCOVER. Klient wybiera jeden DHCPOFFER i odpowiada tylko na ten serwer DHCP, niejawnie odrzucając wszystkie inne komunikaty DHCPOFFER. Klient identyfikuje wybrany serwer, wypełniając plik Identyfikator serwera pole opcji z adresem IP serwera DHCP.
DHCPREQUEST jest również rozgłoszeniem, więc wszystkie serwery DHCP, które wysłały DHCPOFFER, zobaczą DHCPREQUEST i każdy będzie wiedział, czy jego DHCPOFFER został zaakceptowany, czy odrzucony. Wszelkie dodatkowe opcje konfiguracyjne wymagane przez klienta zostaną uwzględnione w polu opcji komunikatu DHCPREQUEST. Mimo że klientowi zaoferowano adres IP, wyśle komunikat DHCPREQUEST ze źródłowym adresem IP 0.0.0.0. W tej chwili klient nie otrzymał jeszcze weryfikacji, czy można używać adresu IP.
…
Konwersacja klient-serwer dla klienta uzyskującego adres DHCP, w którym klient i serwer DHCP znajdują się w tej samej podsieci:
![]()
Źródło: Zrozumienie i rozwiązywanie problemów z DHCP w przełączniku Catalyst lub sieciach korporacyjnych
Trasa domyślna
W tym dokumencie wyjaśniono, jak skonfigurować domyślną trasę lub bramę ostatniej szansy. Używane są następujące polecenia IP:
- IP default-gateway
- ip default-network
- ip route 0.0.0.0 0.0.0.0
Trasa IP 0.0.0.0 0.0.0.0
Utworzenie trasy statycznej do sieci 0.0.0.0 0.0.0.0 to kolejny sposób ustawienia bramy ostatniej szansy na routerze. Podobnie jak w przypadku ip default-network polecenie, użycie trasy statycznej do 0.0.0.0 nie jest zależne od żadnych protokołów routingu. Jednak routing IP musi być włączony na routerze.
Uwaga: Protokół IGRP nie rozpoznaje trasy do wersji 0.0.0.0. Dlatego nie może propagować domyślnych tras utworzonych przy użyciu ip route 0.0.0.0 0.0.0.0 Komenda. Użyj ip default-network polecenie, aby protokół IGRP propagował trasę domyślną.
Źródło: Konfigurowanie bramy ostatniej szansy za pomocą poleceń IP
Masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych zaawansowanych technicznie użytkowników Stack Exchange? Sprawdź cały wątek dyskusji tutaj .