Tämän päivän kysymys- ja vastausistunto tulee meihin SuperUserin hyväksi - Stack Exchangein alaosasto, joka on yhteisöllinen Q & A-sivustojen ryhmittely.
Kysymys
SuperUser-lukija Diogo haluaa tietää, miksi ping-komento käsittelee localhostia ja paikallista IP-osoitetta eri tavalla, kun pinnalla ne näyttävät olevan samat:
Using cmd and ping on Windows gave me the following results:
Pinging “localhost”:
I mean, I’m pinging the same interface, the same machine and the same address. Why do I get such different results?
On selvää, että eroa on erilainen, mutta mitä tapahtuu juuri silloin, kun vaihdat näiden kahden välillä?
Vastaus
SuperUser-avustaja Tom Wijsman tarjoaa seuraavanlaisen käsityksen näiden kahden hienon erotuksen välillä:
You are not pinging the same interface, without any physical interfaces you still have a “local host”.
Your
localhost
käytetään viittaamaan tietokoneeseen sen "sisäisestä" IP: stä, ei tietokoneen "ulkoisista" IP-osoitteista. Joten ping-paketit eivät kulje mitään fyysistä verkkoyhteyttä; vain virtuaalisen silmukan takaliitännän kautta, joka lähettää paketit suoraan portista porttiin ilman fyysistä humalaa.
Saatat vielä ihmetellä, miksi
localhost
ratkaisee
::1
kun taas perinteisesti odotimme sen ratkaisevan IPv4-osoitteeseen
127.0.0.1
. Ota huomioon, että
.localhost
on perinteisesti aluetunniste (ks. RFC 2606), joka paluu takaisin IP-osoitteeseen (IPv4, katso RFC 3330, erityisesti 127.0.0.0/8).
Seurasi ylös
localhost
käyttämällä
nslookup
antaa meille:
nslookup localhost
… Name: localhost Addresses:::1 127.0.0.1
Näin Windows haluaa käyttää IPv6-loop-takaisin IP-osoitetta
::1
(katso RFC 2373), koska se on lueteltu ensin.
Okei, niin, mistä se tulee, katsotaan isäntätiedostoa.
type %WINDIR%System32DriversEtcHosts
… # localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost #::1 localhost …
Hmm, meidän on tarkasteltava Windowsin DNS-asetuksia.
Tämä KB-artikkeli kertoo asetuksesta, joka vaikuttaa Windowsin mieluummin ja korostuu lihavoituna:
-
Etsi rekisterieditorista seuraava rekisterin aliavain ja napsauta sen jälkeen:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpip6Parameters
-
Kaksoisnapsauta DisabledComponents-toimintoa muokataksesi DisabledComponents-merkintää.Nuori: Jos DisabledComponents-merkintä ei ole käytettävissä, sinun on luotava se. Voit tehdä tämän seuraavasti:
- Valitse Muokkaa-valikosta Uusi ja valitse sitten DWORD (32-bit) -arvo.
- Kirjoita DisabledComponents ja paina sitten ENTER-näppäintä.
- Kaksoisnapsauta DisabledComponents.
-
Kirjoita Arvon data: -kenttään jokin seuraavista arvoista määrittääksesi IPv6-protokollan haluamaasi tilaan ja valitse sitten OK:
-
Tyyppi
0
jotta kaikki IPv6-komponentit voidaan ottaa käyttöön. (Windowsin oletusasetus)
-
Tyyppi
0xffffffff
poistaa kaikki IPv6-komponentit pois käytöstä, paitsi IPv6-silmukan käyttöliittymä. Tämä arvo myös määrittää, että Windows haluaa käyttää Internet Protocol version 4 (IPv4) IPv6: n kautta muuttamalla merkintöjä etuliitepolitiikan taulukossa. Lisätietoja on kohdassa Lähde- ja kohdeosoitteen valinta.
-
Tyyppi
0x20
IPv4: n valinta IPv6: n sijaan muuttamalla merkinnät etuliitepolitiikan taulukossa.
-
Tyyppi
0x10
IPv6: n poistaminen käytöstä kaikissa nontunnel-rajapinnoissa (sekä LAN- että Point-to-Point -protokollan (PPP) rajapinnoissa).
-
Tyyppi
0x01
poistaa IPv6: n käytöstä kaikkiin tunneliyhteyksiin. Näihin kuuluvat sisäinen automaattinen tunnelin osoiteprotokolla (ISATAP), 6to4 ja Teredo.
-
Tyyppi
0x11
poistaa kaikki IPv6-liitännät pois lukien IPv6-rajapinnan käyttöliittymä.
- Käynnistä tietokone uudelleen, jotta tämä asetus tulee voimaan.
Mikä on tämä etuliitepolitiikan taulukko?
netsh interface ipv6 show prefixpolicies
(tai
prefixpolicy
aiemmissa versioissa)
Precedence Label Prefix ---------- ----- -------------------------------- 50 0::1/128 45 13 fc00::/7 40 1::/0 10 4::ffff:0:0/96 7 14 2002::/16 5 5 2001::/32 1 11 fec0::/10 1 12 3ffe::/16 1 10::/96
Tämä taulukko päättää, mitä etuliitteitä etusijalla on muihin etuliitteisiin DNS-ratkaisujen aikana.
Ah, joten käyttämällä KB: tä voisimme lisätä täällä olevia merkintöjä, jotka osoittavat, että IPv4: llä on suurempi etusija kuin IPv6.
Huomautus: Ei ole syytä ohittaa tätä käyttäytymistä, ellei sinulla ole ongelmia yhteensopivissa tilanteissa. Tämän asetuksen muuttaminen Windows Serverissa rikkoi sähköpostipalvelimemme, joten sitä tulisi käsitellä huolellisesti …
Mitään meistä ei pidä enemmän kuin perinpohjainen ja informatiivinen vastaus, jossa linkitetyt tukitiedot säilytetään. Selvästi localhost ja paikallinen IP-osoite ovat erillisiä kokonaisuuksia, palvelevat eri tarkoituksia, ja nyt me kaikki tiedämme miksi.
Onko jokin asia lisättävä selitykseen? Kuulkaa kommentit. Haluatko lukea lisää vastauksia muilta tech-tajuilta Stack Exchange-käyttäjiltä? Katso koko keskusteluketju täältä.