Wake-on-LAN-ը VPN-ի միջոցով չի աշխատում. Ուղղեք ARP գրառումը
Կախարդական փաթեթներն անցնում են թունելով, բայց երթուղիչը դեն է նետում դրանք, երբ նրա ARP գրառումը սպառվում է: Համեմատեք առաքման երեք ուղիներ, ապա MAC հասցեն մշտապես ամրացրեք։
Անջատումից անմիջապես հետո արթնացման փաթեթ ուղարկեք, և համակարգիչը վերադառնում է; նույն հրամանը հաջորդ առավոտ ոչինչ չի անում։ 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 հասցնելու երեք գործնական եղանակ ունեք, և ճիշտ ընտրությունը կախված է նրանից, թե ինչն եք կառավարում։
| Method | What it needs | Where it breaks |
|---|---|---|
| Subnet-directed broadcast | A wake tool that accepts a broadcast address and a router that forwards it | Broadcast filtering, or a tool that only takes a MAC |
| Helper on the LAN | An always-on host such as the VPN server | No suitable host, or the host cannot reach the target VLAN |
| Permanent neighbour entry | Router shell access and the target MAC | NIC 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 կարգավորում, որը կտրում է ցանցային քարտի սնուցումը։
Հեռացրեք գրառումը, երբ ցանցային քարտը փոխվի, և թարմացրեք այն, երբ մեքենան տեղափոխեք այլ հասցե։ Մշտական քարտեզագրումը դիտավորյալ բացառություն է, և բացառությունը, որը ոչ ոք չի հիշում, այն ձևն է, թե ինչպես ապագա նոթբուքը սկսում է ստանալ շրջանակներ, որոնք նախատեսված էին շարքից հանված սեղանադիր համակարգչի համար։