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-ის გარსის მქონე როუტერზე ერთი ბრძანება ამაგრებს შესაბამისობას. აქ მოცემული მნიშვნელობები სანიმუშო 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-ის მქონე როუტერებზე.
გახადეთ ის გადატვირთვისადმი მდგრადი ნებისმიერი კაუჭით, რომელსაც firmware გთავაზობთ: სკრიპტი /jffs/scripts -ში Asuswrt-Merlin-ზე, systemd oneshot ერთეული Linux სერვერზე კარიბჭის როლში, Neighbor= stanza systemd-networkd-ში, ან ჩანაწერი /etc/ethers -ში, რომელსაც ადგილობრივი ინსტრუმენტები კითხულობენ. გარსში აკრეფილი ბრძანება შემდეგ გადატვირთვაზე ქრება და ეს არის ყველაზე გავრცელებული მიზეზი, რის გამოც მომუშავე შესწორება თითქოს წყვეტს მუშაობას.
შეამოწმეთ გარედან და იცოდეთ, როდის უნდა წაშალოთ
მოაძინეთ მანქანა და დაელოდეთ სულ მცირე ათი წუთი, საკმარისი იმისთვის, რომ ნებისმიერი დინამიკური ჩანაწერი ვადაგასული გახდეს. შემდეგ გამოღვიძების მოთხოვნა VPN-კლიენტიდან გაგზავნეთ და დააკვირდით როუტერის ორივე მხარეს:
tcpdump -ni tun0 udp port 9
tcpdump -ni br0 ether proto 0x0806 or udp port 9პირველი ჩაწერა ამტკიცებს, რომ პაკეტი გვირაბიდან მოვიდა; მეორე - რომ როუტერმა კადრი LAN-ზე დადო. სწორი ჯადოსნური პაკეტი 102 ბაიტად ჩანს გამეორებული MAC-ით, ამიტომ შეამოწმეთ სიგრძეც და დანიშნულებაც. თუ კადრი LAN-ის ხიდს ტოვებს და მანქანა გამორთული რჩება, დარჩენილი პრობლემა მოწყობილობაშია: სწრაფი გაშვება, ღრმა ძილი ან BIOS-ის პარამეტრი, რომელიც ქსელის ბარათს კვებას უწყვეტს.
წაშალეთ ჩანაწერი, როცა ქსელის ბარათი იცვლება, და განაახლეთ, როცა მანქანას სხვა მისამართზე გადაიტანთ. მუდმივი შესაბამისობა განზრახ გამონაკლისია და გამონაკლისი, რომელიც არავის ახსოვს, არის ის გზა, რომლითაც მომავალი ლეპტოპი იწყებს იმ კადრების მიღებას, რომლებიც პენსიაზე გასული დესკტოპისთვის იყო განკუთვნილი.