Tänane küsimuste ja vastuste seanss jõuab meile viisakalt SuperUserini - Stack Exchange'i ja kogukonnapõhiste Q & A veebisaitide rühmitusse.
Küsimus
SuperUseri lugeja Diogo soovib teada, miks ping käsk kohtleb kohalikku hotti ja kohalikku IP-aadressi erinevalt, kui pinnal on need samad:
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?
Ilmselt on mingi mingi erinevus, aga mis täpselt toimub, kui lülitate need kaks?
Vastus
SuperUseri teostaja Tom Wijsman pakub järgmisi nägemusi kahe peentest erinevustest:
You are not pinging the same interface, without any physical interfaces you still have a “local host”.
Your
localhost
kasutatakse teie arvuti sisestatud IP-le viitamiseks, mitte aga arvuti välistelt IP-aadressidel. Seega ping-pakette ei läbida ühtegi füüsilist võrguliidest; ainult virtuaalse loopi tagumisliidese kaudu, mis saadab pakette sadamast otse saatmiseta ilma füüsiliste humalasse.
Võib-olla ei tea miks
localhost
otsustab
::1
kuid traditsiooniliselt eeldame, et see lahendab IPv4 aadressi
127.0.0.1
. Pange tähele
.localhost
on traditsiooniliselt tippdomeen (vt RFC 2606), mis tagastab loopi tagasi IP-aadressi (IPv4 puhul vt RFC 3330, eriti 127.0.0.0/8).
Üles vaatama
localhost
kasutades
nslookup
annab meile:
nslookup localhost
… Name: localhost Addresses:::1 127.0.0.1
Seega eelistab Windows kasutada IPv6-loopi tagasi IP-aadressi
::1
(vt RFC 2373), nagu see on kõigepealt loetletud.
Okei, nii, kust see pärit on, vaatame hosti faili.
type %WINDIR%System32DriversEtcHosts
… # localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost #::1 localhost …
Hmm, peame vaatama Windowsi DNS-i seadeid.
See KB-i artikkel räägib meile seadistusest, mis mõjutab seda, mida Windows eelistab, rõhutades paksus kirjas:
-
Registriredaktoris leidke ja seejärel järgmine registri alamvõti:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpip6Parameters
-
Topeltklõpsake valikut DisabledComponents, et muuta DisabledComponents sissekanne. Märkus. Kui sisselogimine DisabledComponents pole saadaval, peate selle looma. Selleks toimige järgmiselt.
- Menüüs Redigeerimine valige Uus ja seejärel klõpsake väärtust DWORD (32-bitine).
- Tippige käsk DisabledComponents ja seejärel vajutage sisestusklahvi (ENTER).
- Topeltklõpsake valikut DisabledComponents.
-
IPv6-protokolli soovitud olekusse konfigureerimiseks sisestage üks järgmistest väärtustest väljale Value data: ja seejärel klõpsake OK:
-
Tüüp
0
kõigi IPv6 komponentide lubamiseks. (Windowsi vaikeseade)
-
Tüüp
0xffffffff
kõigi IPv6 komponentide keelamine, välja arvatud IPv6 loopback liides. See väärtus konfigureerib ka Windowsi, et eelistada Interneti-protokolli versiooni 4 (IPv4) kasutamist IPv6 kaudu, muutes prefiksipoliitika tabelisse sisestatud kirjeid. Lisateabe saamiseks vt allika ja sihtkoha aadressi valikut.
-
Tüüp
0x20
eelistama IPv4 üle IPv6, muutes prefiksipoliitika tabelis olevaid kirjeid.
-
Tüüp
0x10
IPv6-d keelata kõigil mittetunnelliidestel (nii LAN kui ka punktidelt-punkti protokolliga [PPP] liidestel).
-
Tüüp
0x01
IPv6-d kõigi tunneli liideste keelamiseks. Nende hulka kuuluvad automaatne tunneli aadresside protokoll (ISATAP), 6to4 ja Teredo.
-
Tüüp
0x11
kõigi IPv6 liideste keelamiseks, välja arvatud IPv6 loopback liides.
- Selle seadistuse jõustumiseks taaskäivitage arvuti.
Mis see prefiksipoliitika tabel on?
netsh interface ipv6 show prefixpolicies
(või
prefixpolicy
varasemates versioonides)
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
See tabel otsustab, millised prefiksid eelistavad teisi prefikseid DNS-i resolutsioonide ajal.
Ah, nii et selle KB-i abil saaksime siia lisada kirjeid, mis näitavad, et IPv4-l on kõrgem prioriteet kui IPv6-l.
Märge: Sellist käitumist ei saa põhjendada, kui teil pole ühilduvat probleemi. Selle seadistuse muutmine meie Windows Serveris rikkus meie meiliserverit, nii et seda tuleks hoolikalt käsitseda …
Meile ei meeldi midagi enamat kui põhjalik ja informatiivne vastus, millel on lingitud tugidokumendid. On selge, et localhost ja kohalik IP-aadress on erinevad üksused, mis teenivad teistsuguseid eesmärke, ja nüüd me kõik teame, miks.
Kas teil on seletamiseks midagi lisada? Helistage kommentaarides. Kas soovite lugeda rohkem vastuseid teistelt tech-savvy Stack Exchange'i kasutajatelt? Tutvu täieliku arutelu teemaga siit.