Անջատումից անմիջապես հետո արթնացման փաթեթ ուղարկեք, և համակարգիչը վերադառնում է; նույն հրամանը հաջորդ առավոտ ոչինչ չի անում։ VPN-ի կարգավորումներում ոչինչ չի փոխվել, և պորտի փոխանցումը դեռևս մատնանշում է ճիշտ հասցեն։ Տարբերությունը ժամանակն է՝ երթուղիչի հարևանների աղյուսակը մոռացել է քնած մեքենային, ուստի չունի MAC հասցե, որը կդնի շրջանակի մեջ։ Հենց այդ սպառումն է, ոչ թունելը, բացատրում է VPN-ի միջոցով Wake-on-LAN-ի անհաջողությունների մեծ մասը։

Առաջին արթնացումն աշխատում է, հաջորդը՝ ոչ

Երթուղիչը շրջանակն ուղարկում է մասնավոր հասցեին՝ նպատակակետը փնտրելով իր հարևանների աղյուսակում։ Քանի դեռ մեքենան աշխատում է, այն պատասխանում է ARP-ին, ուստի քարտեզագրումը մնում է թարմ։ Հենց անջատվում է, ոչինչ չի պատասխանում, գրառումը հնանում է մի քանի րոպե անց, և այդ հասցեին ուղղված հետագա շրջանակները դեն են նետվում, թեև IP-ն ու պորտի փոխանցումը մնում են վավեր։

Օրինաչափությունը ձեզ ասում է, թե որ ձախողումն ունեք։ Արթնացումը, որը երբեք չի աշխատում, մատնանշում է առաքումը՝ սխալ պորտ, սխալ նպատակակետ կամ հրային պատ, որը փաթեթը դեն է նետում մինչև LAN հասնելը։ Արթնացումը, որը մեկ անգամ աշխատում է, ապա ժամերով ձախողվում, մատնանշում է հարևանի գրառումը։ Արթնացումը, որն աշխատում է մինչև DHCP վարձակալության փոփոխությունը, մատնանշում է հասցեավորումը, որը վերականգնում է ամրագրումը։

Նախքան ARP-ին դիպչելը համոզվեք, որ հասցեն կայուն է։ Եթե քնած մեքենան վարձակալության ավարտից հետո նոր հասցե վերցնի, հին հասցեի համար ամրացված հարևանի գրառումը միաժամանակ մշտական և անօգուտ կլինի։ Նախ կարգավորեք DHCP ամրագրում, որպեսզի հասցեն վերապրի վերագործարկումները։

Ինչ է կախարդական փաթեթին պետք ցանցից

Օգտակար բեռը պարզ է՝ 102 բայթ վեց 0xFF բայթից, որին հաջորդում է նպատակակետ MAC հասցեն տասնվեց անգամ, սովորաբար ուղարկվում է UDP 9 պորտին։ Հարթ LAN-ում այն դուրս է գալիս որպես հեռարձակում, յուրաքանչյուր պորտ ստանում է այն, և անջատված ցանցային քարտը ճանաչում է իր սեփական հասցեն։

VPN-ի միջոցով փաթեթը երթուղիչին հասնում է որպես միահասցե ուղարկում մասնավոր հասցեին կամ որպես ենթացանցին ուղղված հեռարձակում։ Միահասցե դեպքում երթուղիչը պետք է նպատակակետը լուծի MAC հասցեի, նախքան շրջանակը LAN-ի վրա դնելը, և հենց այդ լուծումն է ձախողվում, քանի դեռ հոսթը քնած է։

Որոշ գործիքներ ուղարկում են 9-ի փոխարեն 7 պորտին, և որոշ սարքեր լռելյայն արգելափակում են ուղղորդված հեռարձակումը։ Սրանք առաքման ձախողումներ են, ոչ ARP-ի, ուստի նախքան հարևանների աղյուսակը փոխելը ստուգեք նպատակակետն ու պորտը։

Երեք ուղի դեպի քնած հոսթ

Շրջանակը LAN հասցնելու երեք գործնական եղանակ ունեք, և ճիշտ ընտրությունը կախված է նրանից, թե ինչն եք կառավարում։

MethodWhat it needsWhere it breaks
Subnet-directed broadcastA wake tool that accepts a broadcast address and a router that forwards itBroadcast filtering, or a tool that only takes a MAC
Helper on the LANAn always-on host such as the VPN serverNo suitable host, or the host cannot reach the target VLAN
Permanent neighbour entryRouter shell access and the target MACNIC replacement or address change

Ընտրեք օժանդակ հոսթը, երբ այն կա, որովհետև այն հեռարձակում է կապուղու վրա և երթուղիչում բացառություն չի պահանջում։ Ընտրեք ուղղորդված հեռարձակումը, երբ երթուղիչն արդեն թույլատրում է այն, և արթնացման գործիքը հասցե է ընդունում։ Ընտրեք ստատիկ գրառումը, երբ ոչ մեկը հասանելի չէ, և կարող եք հրաման գործարկել երթուղիչում։

Սրանք միմյանց չեն բացառում։ Մշտական գրառումը նաև թույլ է տալիս միահասցե ուղուն վերապրել քունը, ինչն օգտակար է, երբ VPN հաճախորդը կարող է ուղարկել միայն կոնկրետ հասցեին։

Հարևանի գրառումը դարձրեք մշտական

Linux shell ունեցող երթուղիչում մեկ հրաման ամրացնում է քարտեզագրումը։ Այստեղի արժեքները պատկանում են օրինակելի LAN-ին և պետք է փոխարինվեն ձերով։

ip neigh replace 192.168.50.23 lladdr 3c:7c:3f:12:9a:4e dev br0 nud permanent
ip neigh show dev br0 | grep 192.168.50.23

Վիճակը nud permanent գրառումը պահում է ARP ժամկետանցումների ընթացքում և օգտագործվում է փոխանցման համար, քանի դեռ մեքենան անջատված է։ Երկրորդ հրամանը ապացուցում է, որ գրառումը գոյություն ունի, և ցույց է տալիս ինտերֆեյսը, որին այն պատկանում է, ինչը կարևոր է հյուր-կամուրջ կամ առանձին VLAN ունեցող երթուղիչներում։

Դարձրեք այն վերագործարկման դիմացկուն ցանկացած կեռիկի միջոցով, որ առաջարկում է որոնվածը՝ սկրիպտ /jffs/scripts-ում Asuswrt-Merlin-ի վրա, systemd oneshot միավոր Linux սերվերի վրա որպես դարպաս, Neighbor= stanza systemd-networkd-ում, կամ գրառում /etc/ethers-ում, որը կարդում են տեղական գործիքները։ Shell-ում մուտքագրված հրամանը անհետանում է հաջորդ վերագործարկման ժամանակ, և սա է ամենատարածված պատճառը, թե ինչու աշխատող ուղղումը կարծես դադարում է աշխատել։

Փորձարկեք դրսից և իմացեք, թե երբ հեռացնել

Մեքենան քնեցրեք և սպասեք առնվազն տասը րոպե, բավական է, որ ցանկացած դինամիկ գրառում հնանա։ Ապա արթնացման հայտն ուղարկեք VPN հաճախորդից և դիտեք երթուղիչի երկու կողմերը։

tcpdump -ni tun0 udp port 9
tcpdump -ni br0 ether proto 0x0806 or udp port 9

Առաջին որսումն ապացուցում է, որ փաթեթը եկել է թունելից, երկրորդը՝ որ երթուղիչը շրջանակ դրել է LAN-ի վրա։ Վավեր կախարդական փաթեթը երևում է որպես 102 բայթ կրկնվող MAC-ով, ուստի ստուգեք և՛ երկարությունը, և՛ նպատակակետը։ Եթե շրջանակը լքում է LAN կամուրջը, իսկ մեքենան մնում է անջատված, մնացած խնդիրը սարքում է՝ արագ մեկնարկ, խորը քուն կամ BIOS կարգավորում, որը կտրում է ցանցային քարտի սնուցումը։

Հեռացրեք գրառումը, երբ ցանցային քարտը փոխվի, և թարմացրեք այն, երբ մեքենան տեղափոխեք այլ հասցե։ Մշտական քարտեզագրումը դիտավորյալ բացառություն է, և բացառությունը, որը ոչ ոք չի հիշում, այն ձևն է, թե ինչպես ապագա նոթբուքը սկսում է ստանալ շրջանակներ, որոնք նախատեսված էին շարքից հանված սեղանադիր համակարգչի համար։

Առնչվող հոդվածներ