Care este diferența dintre 127.0.0.1 și 0.0.0.0?

Publicat: 2022-01-29

Cei mai mulți dintre noi au auzit de „127.0.0.1 și 0.0.0.0”, dar probabil că nu ne-am gândit prea mult la ele, dar dacă ambele par să indice de fapt aceeași locație, atunci care este diferența reală între cele două? Postarea de întrebări și răspunsuri pentru SuperUser de astăzi ajută la clarificarea lucrurilor pentru un cititor confuz.

Sesiunea de întrebări și răspunsuri de astăzi ne vine prin amabilitatea SuperUser—o subdiviziune a Stack Exchange, o grupare de site-uri web de întrebări și răspunsuri condusă de comunitate.

Fotografie prin amabilitatea lui Kate Gardiner (Flickr).

Intrebarea

Cititorul SuperUser Sagnik Sarkar vrea să știe care este diferența dintre 127.0.0.1 și 0.0.0.0:

Înțeleg că 127.0.0.1 indică localhost și că și 0.0.0.0 face la fel (corectează-mă dacă greșesc). Deci, care este diferența dintre 127.0.0.1 și 0.0.0.0?

Care este diferența dintre 127.0.0.1 și 0.0.0.0?

Răspunsul

Contribuitorul SuperUser DavidPostill are răspunsul pentru noi:

Care este diferența dintre 127.0.0.1 și 0.0.0.0?

  • 127.0.0.1 este adresa de loopback (cunoscută și ca localhost).
  • 0.0.0.0 este o meta-adresă care nu poate fi rutată, utilizată pentru a desemna o țintă invalidă, necunoscută sau neaplicabilă (un deținător de loc „fără o anumită adresă”).

În contextul unei intrări de rută, înseamnă de obicei ruta implicită.

În contextul serverelor, 0.0.0.0 înseamnă toate adresele IPv4 de pe mașina locală . Dacă o gazdă are două adrese IP, 192.168.1.1 și 10.1.2.1, iar un server care rulează pe gazdă ascultă pe 0.0.0.0, va fi accesibil la ambele IP-uri.

Care este adresa IP 127.0.0.1?

127.0.0.1 este adresa IP (loopback Internet Protocol) denumită și localhost . Adresa este utilizată pentru a stabili o conexiune IP la aceeași mașină sau computer utilizat de utilizatorul final.

Aceeași convenție este definită pentru computerele care acceptă adresarea IPv6 folosind conotația ::1. Stabilirea unei conexiuni folosind adresa 127.0.0.1 este cea mai comună practică; cu toate acestea, utilizarea oricărei adrese IP în intervalul 127...* va funcționa în același mod sau într-un mod similar. Construcția loopback oferă unui computer sau dispozitiv capabil să conecteze în rețea capacitatea de a valida sau de a stabili stiva IP pe mașină.

Sursa: 127.0.0.1 – Care sunt utilizările sale și de ce este important?

Adrese speciale

Numărul de rețea de clasă A 127 i se atribuie funcția de buclă inversă, adică o datagramă trimisă printr-un protocol de nivel superior la o adresă de rețea 127 ar trebui să circule înapoi în interiorul gazdei. Nicio datagramă trimisă la o adresă de rețea 127 nu ar trebui să apară vreodată în nicio rețea, nicăieri.

Sursa: Network Numbers

Dacă este întreaga clasă A, care este punctul de vedere al altor valori arbitrare pentru ultimii trei octeți?

Scopul intervalului de loopback este testarea implementării protocolului TCP/IP pe o gazdă. Deoarece straturile inferioare sunt scurtcircuitate, trimiterea către o adresă loopback permite ca straturile superioare (IP și mai sus) să fie testate eficient fără șansa de a se manifesta probleme la straturile inferioare. 127.0.0.1 este adresa cel mai frecvent utilizată în scopuri de testare.

Sursa: IP rezervat, Loopback și Adrese private

Pentru mai multe informații, consultați întrebarea Ask Ubuntu : Ce este dispozitivul Loopback și cum îl folosesc?

Care este adresa IP 0.0.0.0?

0.0.0.0 este o sintaxă de adresă validă. Deci ar trebui să fie analizat ca fiind valid oriunde este așteptată o adresă IP în notație tradițională cu zecimală punctată. Odată analizată și convertită într-o formă numerică funcțională, atunci valoarea acesteia determină ce se întâmplă în continuare.

Valoarea total-zero are o semnificație specială. Deci este valid , dar are o semnificație care poate să nu fie adecvată (și astfel tratată ca nevalidă) pentru anumite circumstanțe. Este practic substituentul „fără o anumită adresă”. Pentru lucruri precum legarea adresei conexiunilor de rețea, rezultatul poate fi atribuirea unei adrese de interfață adecvate conexiunii. Dacă îl utilizați pentru a configura o interfață, poate elimina o adresă din interfață. Depinde de contextul de utilizare pentru a determina ce face cu adevărat „nicio adresă anume”.

În contextul unei intrări de rută, înseamnă de obicei ruta implicită. Acest lucru se întâmplă ca rezultat mai mult din masca de adresă, care selectează biții de comparat. O mască de 0.0.0.0 nu selectează niciun biți, astfel încât comparația va reuși întotdeauna. Deci, atunci când o astfel de rută este configurată, există întotdeauna undeva unde să meargă pachetele (dacă sunt configurate cu o destinație validă).

În unele cazuri, doar „0” va funcționa și va avea același efect. Dar acest lucru nu este garantat. Forma 0.0.0.0 este modalitatea standard de a spune „nicio adresă anume” (în IPv6, adică ::0 sau doar :: ).

Sursa: Care este semnificația adresei IP 0.0.0.0?

În versiunea 4 a protocolului Internet, adresa 0.0.0.0 este o meta-adresă care nu poate fi rutată, utilizată pentru a desemna o țintă invalidă, necunoscută sau neaplicabilă. A da o semnificație specială unei date altfel invalide este o aplicație de semnalizare în bandă.

În contextul serverelor, 0.0.0.0 înseamnă toate adresele IPv4 de pe mașina locală . Dacă o gazdă are două adrese IP, 192.168.1.1 și 10.1.2.1, iar un server care rulează pe gazdă ascultă pe 0.0.0.0, va fi accesibil la ambele IP-uri ( Notă: acest text special este repetat de sus ca parte a răspunsului general ).

În contextul rutării, 0.0.0.0 înseamnă de obicei ruta implicită, adică ruta care duce la „restul” Internetului în loc de undeva în rețeaua locală.

Utilizările includ:

  • Adresa pe care o gazdă o revendică ca fiind proprie atunci când nu i s-a atribuit încă o adresă. Cum ar fi atunci când trimiteți pachetul inițial DHCPDISCOVER când utilizați DHCP.
  • Adresa pe care o gazdă și-o atribuie atunci când o solicitare de adresă prin DHCP a eșuat, cu condiția ca stiva IP a gazdei să accepte acest lucru. Această utilizare a fost înlocuită cu mecanismul APIPA în sistemele de operare moderne.
  • O modalitate de a specifica orice gazdă IPv4 . Este folosit în acest fel când se specifică o rută implicită.
  • O modalitate de a specifica în mod explicit faptul că ținta este indisponibilă. Sursa: 127.0.0.1 – Care sunt utilizările sale și de ce este important?
  • O modalitate de a specifica orice adresă IPv4 . Este folosit în acest fel la configurarea serverelor (adică la legarea soclurilor de ascultare). Acest lucru este cunoscut de programatorii TCP ca INADDR_ANY. [ bind(2) se leagă la adrese, nu la interfețe. ]

În IPv6, adresa cu toate zerourile este scrisă ca ::

Sursa: 0.0.0.0 [Wikipedia]

Descoperire/Solicitare DHCP

Când un client pornește pentru prima dată, se spune că se află în starea de inițializare și transmite un mesaj DHCPDISCOVER pe subrețeaua fizică locală prin portul 67 (server BootP) User Datagram Protocol (UDP). Deoarece clientul nu are de unde să cunoască subrețeaua căreia îi aparține, DHCPDISCOVER este o difuzare pentru toate subrețelele (adresa IP de destinație 255.255.255.255), cu o adresă IP sursă de 0.0.0.0. Adresa IP sursă este 0.0.0.0, deoarece clientul nu are o adresă IP configurată.

Dacă pe această subrețea locală există un server DHCP și este configurat și funcționează corect, serverul DHCP va auzi transmisia și va răspunde cu un mesaj DHCPOFFER. Dacă un server DHCP nu există pe subrețeaua locală, trebuie să existe un agent de retransmisie DHCP/BootP pe această subrețea locală pentru a redirecționa mesajul DHCPDISCOVER către o subrețea care conține un server DHCP.

Acest agent de releu poate fi fie o gazdă dedicată (Microsoft Windows Server, de exemplu), fie un router (un router Cisco configurat cu declarații de ajutor IP la nivel de interfață, de exemplu).

După ce clientul primește un DHCPOFFER, acesta răspunde cu un mesaj DHCPREQUEST, indicând intenția sa de a accepta parametrii din DHCPOFFER și trece în starea solicitantă . Clientul poate primi mai multe mesaje DHCPOFFER, unul de la fiecare server DHCP care a primit mesajul DHCPDISCOVER original. Clientul alege un DHCPOFFER și răspunde doar la acel server DHCP, refuzând implicit toate celelalte mesaje DHCPOFFER. Clientul identifică serverul selectat completând câmpul de opțiune Server Identifier cu adresa IP a serverului DHCP.

DHCPREQUEST este, de asemenea, o difuzare, astfel încât toate serverele DHCP care au trimis un DHCPOFFER vor vedea DHCPREQUEST și fiecare va ști dacă DHCPOFFER-ul său a fost acceptat sau refuzat. Orice opțiuni de configurare suplimentare pe care le solicită clientul vor fi incluse în câmpul de opțiuni al mesajului DHCPREQUEST. Chiar dacă clientului i s-a oferit o adresă IP, acesta va trimite mesajul DHCPREQUEST cu o adresă IP sursă de 0.0.0.0. În acest moment, clientul nu a primit încă verificarea că este clar să folosească adresa IP.

Conversație client-server pentru un client care obține o adresă DHCP unde clientul și serverul DHCP se află pe aceeași subrețea:

Sursa: Înțelegerea și depanarea DHCP în Catalyst Switch sau Enterprise Networks

Ruta implicită

Acest document explică cum să configurați o rută implicită sau o poartă de ultimă instanță. Aceste comenzi IP sunt utilizate:

  • ip default-gateway
  • ip implicit-rețea
  • ruta ip 0.0.0.0 0.0.0.0

Rută IP 0.0.0.0 0.0.0.0

Crearea unei rute statice către rețea 0.0.0.0 0.0.0.0 este o altă modalitate de a seta gateway-ul de ultimă instanță pe un router. Ca și în cazul comenzii ip default-network , utilizarea rutei statice la 0.0.0.0 nu depinde de niciun protocoal de rutare. Cu toate acestea, rutarea IP trebuie să fie activată pe router.

Notă: IGRP nu înțelege o rută către 0.0.0.0. Prin urmare, nu poate propaga rutele implicite create folosind comanda ip route 0.0.0.0 0.0.0.0 . Utilizați comanda ip default-network pentru ca IGRP să propage o rută implicită.

Sursa: Configurarea unui gateway de ultimă soluție folosind comenzi IP


Ai ceva de adăugat la explicație? Sună stins în comentarii. Doriți să citiți mai multe răspunsuri de la alți utilizatori cunoscători de tehnologie Stack Exchange? Consultați întreaga discuție aici.