Keresés

Új hozzászólás Aktív témák

  • brd

    nagyúr

    válasz DonThomasino #22303 üzenetére

    Próbálom röviden. :) Arról van szó, hogy az ethernet úgy működik, hogy minden kommunikálni vágyó eszköznek van egy MAC addresse, ez a kártyák fizikai címe, ez a cím olyan fajta kommunikációban kap jelentőséget (persze az egész kommunikáció erre épül, de ezt most hagyjuk), ahol nincs IP cím (tehát ez még az IP címes réteg alatt működik, ahol a WOL is játszik), akinek a csomagban a címzett MAC van, annak szól a csomag, a többiek nem foglalkoznak vele (kivéve a speciális MAC címet). A TCP/IP működéséhez tudnia kell minden eszköznek, hogy egy adott MAC-hez éppen milyen IP cím tartozik, hogy tudja, hogy az x IP-nek szóló csomagokat az y MAC-jű kártyának kell kell küldeni, hogy megkapja. Ha nem tudja, hogy kihez tartozik, akkor küld egy ún. broadcast (mindenkinek szóló) üzenetet, hogy megkérdezze a hálózat gépeit, hogy az adott IP-hez milyen MAC tartozik (ha nem jön válasz, akkor nem lehet az adott IP-vel kommunikálni). Ezeket a lekérdezett összepárosításokat tartalmazza az ARP cache (ez a routeredben is van). Ebből a cache-ből bizonyos idő után, vagy bizonyos eseményekkor (pl. az adott MAC-kel bíró eszköz hálózati linkjének eltűnése) törlődnek a bejegyzések, így ha az adott IP-re menne megint csomag, akkor meg kell kérdezni megint, egy broadcast üzenettel, hogy milyen MAC-re kell küldeni a csomagokat. Ez azért probléma, mert a WOL az egy olyan csomag, amelyet az Interneten nem továbbítanak, ezért az Internet felől a WOL csak úgy tud jönni, hogy valamilyen route-olható (Interneten továbbítható) csomagba van "elrejtve" (ez WOL-nál jellemzően egy UDP csomag), és ezt csak adott IP-re lehet továbbíttatni (portforward) NAT-oló eszközzel (amilyen a routered is) kívülről befelé, így kell egy belső IP cím. Ez egész addig jól működik, ameddig az adott IP-hez az adott MAC tartozik, csak ugye a WOL-ra nem ekkor van szükség. :) Amikor viszont kikapcsolod/elküldöd aludni az adott gépet, akkor utána a routeredben lévő ARP cache csak bizonyos ideig tárolja a kártya MAC-jéhez rendelt IP-t. Ha törlődik a cache-ből, akkor a router kérdezné a hálón, hogy az adott IP-hez (ahová a portforward alapján továbbítani kívánná az UDP csomagot, amelyben a WOL szekvencia figyel) milyen MAC tartozik, de nem jön válasz, ezért nem tudja hová elküldeni. Ahogy azt már fentebb is írtam, pl. úgy lehet mégis megoldani, hogy ilyenkor is elküldésre kerüljön a csomag, hogy van egy ún. broadcast (mindenkinek szóló) ARP cím, amelyre küldve egy csomagot, broadcastként lesz szétszórva (így megkapja minden eszköz), és ezt az ARP címet kell felvenni a ARP táblázatba kézzel, egy adott IP-hez (nem ahhoz, ami a feléleszteni kívánt gépnek volt, hanem egy erre kiválasztott címet), és akkor erre az IP-re lehet forwardoltatni a WOL csomagot tartalmazó UDP csomagot. Így minden, az adott külső portra érkező csomagot a belső hálón a router broadcasként szétszór.
    A DHCP a fenti folyamatba tudtommal nem szól bele, legfeljebb azt tudom elképzelni, hogy egyes routerek DHCP-je és ARP cache-e összejátszik.
    Domainnév+IP összerendelést csak úgy tudsz csinálni, ha valami az adott (de változó) IP címet mindig tudja. Ez vagy a router lehet, vagy a router mögött valami gép/eszköz, máshogy sajnos nem megy. A routeredre nem lehet valami custom firmware-t felvarázsolni, mint pl. a ddwrt? Akkor jóval egyszerűbb lenne a dolgod, ott akár a felületére belépve (weben) is lehet feléleszteni gépet, és akkor nem kell szórakozni portforwarddal, ARP hekkeléssel, ill. ezek az okosított firmware-ek többféle dinamikus DNS szolgáltatót is ismernek, sőt akár olyat is fel lehet venni, amit beépítve esetleg nem támogatnak.

    [ Szerkesztve ]

    The only real valuable thing is intuition.

Új hozzászólás Aktív témák