Mads Bahrt <mads_bahrt@hotmail.com> wrote:
>Jesper Dybdal wrote:
>> Der stilles ingen krav til IP-adressefelterne i pakken, men på en
>> eller anden vis skal pakken altså bringes hen til netkortet, som jo -
>> da pc'en er slukket - ikke kan adresseres via IP unicast.
>
>Hvorfor kan denne ikke leveres? - Eller med andre ord: Hvorfor kan man
>ikke bruge unicast?
Fordi der ikke er noget kørende operativsystem som reagerer på IP og
de tilhørende protokoller. Maskinen er jo slukket.
Netkortet i en slukket maskine ved ikke hvilken IP-adresse det får
tildelt når maskinen på et tidspunkt bliver tændt. Det kender derimod
MAC-adressen, fordi den (normalt aldrig) ændrer sig.
For at kunne adressere en maskine med IP skal der være noget på den
maskine der kan svare på en arp-request af typen "hvem har IP-adresse
x.x.x.x?". Det er der ikke på den slukkede maskine. (Se evt.
http://www.net-faq.dk/faq.pl?get=arp)
Så kunne man naturligvis forestille sig at netkortet selv huskede
hvilken IP-adresse det havde sidst maskinen var tændt, og selv
implementerede arp-protokollen. Men det ville medføre alvorlige
ulemper: tænk på hvilket kaos det ville give hvis slukkede maskiner i
almindelig blev ved med at svare på den IP-adresse de havde sidst de
var tændt. Mange maskiner skal jo have en (i hvert fald principielt)
ny dhcp-leveret IP-adresse hver gang de tændes, og det ville være
katastrofalt for nettet hvis de blev ved med at svare på deres gamle
adresse når de var slukket.
Det er selvfølgelig ikke helt rigtigt at man ikke kan sende pakken som
unicast: som jeg også skrev kan man sende til en anden maskine på
samme ikke-switchede LAN.
Det kan også hænde at unicast til den slukkede maskine virker hvis det
er meget kort efter at den er blevet slukket, så arp-cachen i den
sendende maskine/ruter stadig har en indgang for den slukkede maskines
tidligere IP-adresse. Så hvis man vil teste det, skal man nok vente
lidt tid eller genstarte den ruter/maskine pakken kommer fra først
(eller slette dens arpcache med "arp"-kommandoen).
>Tilsvarende hvis den først er nået ind på det rigtige lokalnet
>er det ligegyldigt at det er switchet, da en switch s.v.j.h. opfører sig
>som en hub over for alle pakker den ikke kender adressaten på. Den vil
>altså bare smide pakken ud på alle porte.
Det er rigtigt, men det hjælper ikke. Problemet her er at ved unicast
er den første pakke der kommer fra ruteren, (oftest) ikke den magiske
"tænd"-pakke selv, men en arp-request der spørger hvem der har
IP-adressen.
Der er så to muligheder:
* Pakken er adresseret til den slukkede IP-adresse: så svarer ingen på
arp, og selve "tænd"-pakken bliver aldrig sendt ud på LAN (fordi
ruteren ikke ved hvilken MAC-adresse den skal sendes til).
* Pakken er adresseret til en anden (tændt) maskine på samme net.
Hvis det er et switched netværk, ved switchen (senest når svaret på
arp kommer) hvor den tændte maskine er forbundet, og den vil derfor
ikke smide "tænd"-pakken ud på andre porte. Så det dur ikke. Men
hvis nettet ikke er switched, så virker det.
--
Jesper Dybdal, Denmark.
http://www.dybdal.dk (in Danish).