Portál AbcLinuxu, 11. května 2025 10:49

Dotaz: OpenWrt a WOL

13.12.2011 10:29 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
OpenWrt a WOL
Přečteno: 1306×
Odpovědět | Admin
Mám problém, nemůžu probudit PC z routeru....

Z lan když zadám "wakeonlan 00:26:18:f3:96:60" tak se PC normálně vzbudí.

Ale když ho chci vzbudit z www rozhraní routeru tak to nejde, když se přihlásím přes ssh na router tak to taky z routeru nejde.

Starting WoL utility:

/usr/bin/wol -v "00:26:18:F3:96:60"

Waking up 00:26:18:F3:96:60 with 255.255.255.255:40000...

Nic

Starting WoL utility:

/usr/bin/etherwake -D "00:26:18:F3:96:60"

The target station address is 0:26:18:f3:96:60. Packet is 00 26 18 f3 96 60 00 26 18 f3 96 60 08 42 ff ff ff ff ff ff 00 26 18 f3 96 60 00 26 18 f3... Sendto worked ! 116.

Taky nic.

Laboruji z firewallem zda to někde neblokuje ale taky nic.

Nemáte někdo tip na co mrknout ?

Výpis iptables:
root@router:~# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere            state INVALID 
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     all  --  anywhere             anywhere            
syn_flood  tcp  --  anywhere             anywhere            tcp flags:FIN,SYN,RST,ACK/SYN 
input_rule  all  --  anywhere             anywhere            
input      all  --  anywhere             anywhere            

Chain FORWARD (policy DROP)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere            state INVALID 
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
forwarding_rule  all  --  anywhere             anywhere            
forward    all  --  anywhere             anywhere            
reject     all  --  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere            state INVALID 
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     all  --  anywhere             anywhere            
output_rule  all  --  anywhere             anywhere            
output     all  --  anywhere             anywhere            

Chain forward (1 references)
target     prot opt source               destination         
zone_lan_forward  all  --  anywhere             anywhere            
zone_wan_forward  all  --  anywhere             anywhere            

Chain forwarding_lan (1 references)
target     prot opt source               destination         

Chain forwarding_rule (1 references)
target     prot opt source               destination         
nat_reflection_fwd  all  --  anywhere             anywhere            

Chain forwarding_wan (1 references)
target     prot opt source               destination         

Chain input (1 references)
target     prot opt source               destination         
zone_lan   all  --  anywhere             anywhere            
zone_wan   all  --  anywhere             anywhere            

Chain input_lan (1 references)
target     prot opt source               destination         

Chain input_rule (1 references)
target     prot opt source               destination         

Chain input_wan (1 references)
target     prot opt source               destination         

Chain nat_reflection_fwd (1 references)
target     prot opt source               destination         
ACCEPT     tcp  --  192.168.1.0/24       192.168.1.12        tcp dpt:8001 
ACCEPT     udp  --  192.168.1.0/24       192.168.1.12        udp dpt:8001 
ACCEPT     tcp  --  192.168.1.0/24       192.168.1.12        tcp dpt:3000 
ACCEPT     udp  --  192.168.1.0/24       192.168.1.12        udp dpt:3000 
ACCEPT     tcp  --  192.168.1.0/24       192.168.1.12        tcp dpt:www 
ACCEPT     tcp  --  192.168.1.0/24       router.soban.cz     tcp dpt:https 

Chain output (1 references)
target     prot opt source               destination         
zone_lan_ACCEPT  all  --  anywhere             anywhere            
zone_wan_ACCEPT  all  --  anywhere             anywhere            

Chain output_rule (1 references)
target     prot opt source               destination         

Chain reject (5 references)
target     prot opt source               destination         
REJECT     tcp  --  anywhere             anywhere            reject-with tcp-reset 
REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable 

Chain syn_flood (1 references)
target     prot opt source               destination         
RETURN     tcp  --  anywhere             anywhere            tcp flags:FIN,SYN,RST,ACK/SYN limit: avg 25/sec burst 50 
DROP       all  --  anywhere             anywhere            

Chain zone_lan (1 references)
target     prot opt source               destination         
input_lan  all  --  anywhere             anywhere            
zone_lan_ACCEPT  all  --  anywhere             anywhere            

Chain zone_lan_ACCEPT (2 references)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            

Chain zone_lan_DROP (0 references)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere            
DROP       all  --  anywhere             anywhere            

Chain zone_lan_REJECT (1 references)
target     prot opt source               destination         
reject     all  --  anywhere             anywhere            
reject     all  --  anywhere             anywhere            

Chain zone_lan_forward (1 references)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             router     tcp dpt:https 
zone_wan_ACCEPT  all  --  anywhere             anywhere            
forwarding_lan  all  --  anywhere             anywhere            
zone_lan_REJECT  all  --  anywhere             anywhere            

Chain zone_wan (1 references)
target     prot opt source               destination         
ACCEPT     udp  --  anywhere             anywhere            udp dpt:bootpc 
ACCEPT     icmp --  anywhere             anywhere            icmp echo-request 
input_wan  all  --  anywhere             anywhere            
zone_wan_REJECT  all  --  anywhere             anywhere            

Chain zone_wan_ACCEPT (2 references)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            

Chain zone_wan_DROP (0 references)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere            
DROP       all  --  anywhere             anywhere            

Chain zone_wan_REJECT (2 references)
target     prot opt source               destination         
reject     all  --  anywhere             anywhere            
reject     all  --  anywhere             anywhere            

Chain zone_wan_forward (1 references)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             192.168.1.12        tcp dpt:8001 
ACCEPT     udp  --  anywhere             192.168.1.12        udp dpt:8001 
ACCEPT     tcp  --  anywhere             192.168.1.12        tcp dpt:3000 
ACCEPT     udp  --  anywhere             192.168.1.12        udp dpt:3000 
ACCEPT     tcp  --  anywhere             192.168.1.12        tcp dpt:www 
ACCEPT     tcp  --  anywhere             router              tcp dpt:https 
forwarding_wan  all  --  anywhere             anywhere            
zone_wan_REJECT  all  --  anywhere             anywhere            
root@router:~# 
Firewall by to blokovat nikde neměl, nevím co s tím a potřebuji probouzet PC nechce se mi ho nechávat zapnutý pořád.

Pokud chcete tak dodám další údaje..

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

13.12.2011 10:33 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: OpenWrt a WOL
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tipnul bych si, že v druhém případě má stroj více rozhraní a příkaz jde na jiné, než kde je dostupný probouzený stroj. U wakeonlan musím uvádět i IP adresu probouzeného serveru (-i ), jinak mi budící server taky pakety posílal přes nesprávné rozhraní.
13.12.2011 11:30 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: OpenWrt a WOL
U etherwake jsem skoušel vybrat rozhraní br_lan, eth0.1 prostě nic nezabere.

Ten PC co chci probudit je na lan a klidně ho z PC co je na wifi vzbudím a nemusím zadávat IP - stačí pouze MAC, ale z routeru nic....

Už si s tím hraji 2 dny a na nic jsem nepřišel.
/usr/bin/etherwake -D -i "eth0" "00:26:18:F3:96:60"

The target station address is 0:26:18:f3:96:60.
Packet is  00 26 18 f3 96 60 00 26 18 f3 96 60 08 42 ff ff ff ff ff ff 00 26 18 f3 96 60 00 26 18 f3...
Sendto worked ! 116.

Starting WoL utility:

/usr/bin/etherwake -D -i "eth0.1" "00:26:18:F3:96:60"

The target station address is 0:26:18:f3:96:60.
Packet is  00 26 18 f3 96 60 00 26 18 f3 96 60 08 42 ff ff ff ff ff ff 00 26 18 f3 96 60 00 26 18 f3...
Sendto worked ! 116.

Starting WoL utility:

/usr/bin/etherwake -D -i "eth0.2" "00:26:18:F3:96:60"

The target station address is 0:26:18:f3:96:60.
Packet is  00 26 18 f3 96 60 00 26 18 f3 96 60 08 42 ff ff ff ff ff ff 00 26 18 f3 96 60 00 26 18 f3...
Sendto worked ! 116.

Starting WoL utility:

/usr/bin/etherwake -D -i "br-lan" "00:26:18:F3:96:60"

The target station address is 0:26:18:f3:96:60.
Packet is  00 26 18 f3 96 60 00 26 18 f3 96 60 08 42 ff ff ff ff ff ff 00 26 18 f3 96 60 00 26 18 f3...
Sendto worked ! 116.

A nic.

Prostě nevím co udělat abych zjistil kde je problém.
13.12.2011 12:21 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: OpenWrt a WOL
Podívej se na routeru přes tcpdump, na které rozhraní odesílá ten packet. Předpokládám, že to ve skutečnosti posílá na jiné, než bys chtěl. Taky jsem to tak testoval a sledoval.
13.12.2011 16:06 miro
Rozbalit Rozbalit vše Re: OpenWrt a WOL

Zkusil bych si poslat ten wol paket při zapnutém pc se shozeným firewallem a nahozeným wiresharkem. Sice ho to nevzbudí ;-), ale uvidíte, jestli tam ten paket vůbec dorazí.

Možná bych zkusil bloknout to první pravidlo v chainu OUTPUT.

Taky bych zkusil použít etherwake s přepínačem -b.

Pak bych zkusil nepoužívat v příkazu etherwake uvozovky.

A nakonec bych asi zkusil shodit firewall, abych měl jistotu, že mám co do činění s divným (vadným) etherwake a ne s blbě nakonfigurovaným firewallem.

Tcpdump, který radí Dustin, taky určitě není k zahození.

14.12.2011 02:09 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: OpenWrt a WOL
No wireshark tam nespustím (je bez klávesnice a monitoru), ale tcpdump zjistil že když ho budím z jiného PC kdy se probudí tak tam napíše:
01:45:43.788974 IP nt.soban.cz.45067 > 255.255.255.255.discard: UDP, length 102
A když to chci probudit z routeru tak taky doputuje nějaký paket, ale nevzbudí ho to.

etherwake z routeru:
01:52:48.057039 74:ea:3a:a1:74:14 (oui Unknown) > 00:26:18:f3:96:60 (oui Unknown), ethertype Unknown (0x0842), length 116: 
        0x0000:  ffff ffff ffff 0026 18f3 9660 0026 18f3  .......&...`.&..
        0x0010:  9660 0026 18f3 9660 0026 18f3 9660 0026  .`.&...`.&...`.&
        0x0020:  18f3 9660 0026 18f3 9660 0026 18f3 9660  ...`.&...`.&...`
        0x0030:  0026 18f3 9660 0026 18f3 9660 0026 18f3  .&...`.&...`.&..
        0x0040:  9660 0026 18f3 9660 0026 18f3 9660 0026  .`.&...`.&...`.&
        0x0050:  18f3 9660 0026 18f3 9660 0026 18f3 9660  ...`.&...`.&...`
        0x0060:  0026 18f3 9660                           .&...`
Tak a co teď?

V routeru ty programy tak lehce nevyměním:
Router ModelTP-LINK TL-WR1043ND
Firmware Version OpenWrt Backfire 10.03.1-RC6 /	LuCI 0.10 Branch (0.10+svn7852)
A nebo nějak jinak přestavit síťovku v tom co se má probudit, ale jak nevím...
14.12.2011 03:44 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: OpenWrt a WOL
Příloha:
Tak teď jsem přišel na to že PC vzbudí pouze program wakeonlan (je to perl) etherwake ani z PC ani z routeru nefunguje (paket pošle ale PC nevzbudí).

Takže pokud někdo má nějaký nápad jak to vyřešit.
14.12.2011 10:21 miro
Rozbalit Rozbalit vše Re: OpenWrt a WOL
Odpovědět | | Sbalit | Link | Blokovat | Admin
nějak jinak přestavit síťovku

Tudy IMHO cesta nepovede. Kdysi jsem si okolo toho něco hledal, a došel jsem k závěru, že je to tak trochu magie, jejíž výsledek ovlivňuje především konkrétní typ síťovky. Už je to delší doba, tak snad moc nekecám, ale pokud si vzpomínám, tak např. některé síťovky očekávají svoji MAC adresu pozpátku.

Tak teď jsem přišel na to že PC vzbudí pouze program wakeonlan (je to perl) etherwake ani z PC ani z routeru nefunguje

Nejde o to, že je to perl, jde o to, že etherwake posílá L2 paket, zatímco wakeonlan posílá UDP broadcast paket na port 9. Nepsal jste, jestli jste u etherwake zkusil přepínač -b, jak jsem vám radil, pokud zkusil a nefunguje, pak asi vaše síťovka očekává UDP broadcast a na nic jiného zřejmě nebude reagovat. Pokud je v openWRT aspoň netcat, měla by jít funkčnost wakeonlan poměrně snadno nasimulovat netcatem (osobně jsem nezkoušel). Slibně vypadající návod je zde, akorát bych si zkontroloval dokumentaci ke svému netcatu - například jsem nikde nenašel, co je přepínač -x (že by překlep?), na druhou stranu některé verze netcatu možná budou vyžadovat přepínač -b (povoluje UDP broadcast). Příklad předpokládá port 7, změnil bych na port 9, pokud to nebude fungovat (9 je výchozí u wakeonlan, pokud to přepínačem nezměníte).

14.12.2011 10:25 miro
Rozbalit Rozbalit vše Re: OpenWrt a WOL
Cílovou adresu to taky bude chtít změnit za vaši broadcastovou, např. v mém subnetu 192.168.1.0/24 zasílám wakeonlan na 192.168.1.255.
14.12.2011 10:45 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: OpenWrt a WOL
Přesně tak, wakeonlan paket není nic komplikovaného. Např. používáme obšlehnuté řešení v PHP na "centrálním WOL serveru" :) Zatím to na všech PC po nastavení v biosu a po zapínání WOL na síťovce při vypnutí kompu zafungovalo.

http://blog.ivitera.com/pavel/it-infrastructure/simple-centralized-wakeonlan-service

14.12.2011 10:56 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: OpenWrt a WOL
Příloha:
U etherwake jsem -b skoušel nic.

Takže teoreticky by wakeonlan měl chodit i z internetu pokud zadám:

wakeonlan -i veřejná_ip 00:26:18:f3:96:60

A v routeru přesměruji UDP port 9 na 192.168.1.255:9 tak jak je v přiloženém obrázku?

14.12.2011 11:00 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: OpenWrt a WOL
Nebo můžeš použít na routeru ten php skript a spouštět si stroje jednoduchým http requestem odkudkoliv. Navíc můžeš mít takto strojů víc. Samozřejmě bys musel pořešit autorizaci.

Na spolehlivý průchod těchto paketů netem bych se nespoléhal, nepřekvapilo by mě, kdyby to někde preventivně zahazovali.
14.12.2011 11:21 miro
Rozbalit Rozbalit vše Re: OpenWrt a WOL

Obávám se, že přes WAN to neprojde, a ani pro ten účel nebylo WOL vymyšleno, mělo by se šířit jen po LAN. Někde jsem okolo toho četl nějakou diskusi (zase - už je to delší doba, tak si to přesně nepamatuju), a mám pocit, že to nebylo uspokojivě vyřešeno. Navíc by to byl asi trochu bezpečnostní problém - budit by pak mohl kdokoli. Osobně preferuji řešení, kdy se připojím na server (24/7) via ssh, tím se dostanu na LAN a WOL paket pošlu ze serveru.

BTW - když se tak dívám sem, tak wol zřejmě posílá L3 pakety, takže bych možná zkusil mrknout na /etc/config/wol a chtělo by to zkusit změnit ten výchozí port 40000 na 9. Jak s broadcastovou adresou, to nevím, záleží, jestli 255.255.255.255 projde subnetem, zkusil bych nastavit broadcastovou adresu příslušného subnetu.

14.12.2011 11:28 miro
Rozbalit Rozbalit vše Re: OpenWrt a WOL
Obávám se, že přes WAN to neprojde

Jo tak teď jsem se na to teprve pořádně podíval, a tohle by možná projít mohlo. Ale nezkoušel jsem to a nezkoušel _bych_ to. Až se to domákne nějaký vtipálek, budete kupovat nový síťovky. ;-) esesháčkem na router a odtamtud pak dál - to je přece jen trošku bezpečnější cesta.

14.12.2011 11:33 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: OpenWrt a WOL
Todle skusím...
14.12.2011 11:24 ZS-Man | skóre: 31 | blog: B26
Rozbalit Rozbalit vše Re: OpenWrt a WOL
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zdravim, s problemem neporadim, jenom bych chtel prihodit moji zkusenost s WOL a OpenWRT. Probouzeni z lokalni site funguje bez problemu, z internetu jenom tak 2 - 3 minuty po vypnuti pocitace. Potom uz WOL neprojde.
15.12.2011 03:43 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: OpenWrt a WOL
Odpovědět | | Sbalit | Link | Blokovat | Admin
Takže abych to shrnul.

Síťovka je rozmlsaná nesežere každý paket.

Typ routeru a OS:
Router ModelTP-LINK TL-WR1043ND
Firmware Version OpenWrt Backfire 10.03.1-RC6 /	LuCI 0.10 Branch (0.10+svn7852)
Typ síťovky v PC:


03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03)
	Subsystem: ASUSTeK Computer Inc. M4A785TD Motherboard
	Flags: bus master, fast devsel, latency 0, IRQ 41
	I/O ports at e800 [size=256]
	Memory at f8fff000 (64-bit, prefetchable) [size=4K]
	Memory at f8ff8000 (64-bit, prefetchable) [size=16K]
	Expansion ROM at fbff0000 [disabled] [size=64K]
	Capabilities: [40] Power Management version 3
	Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
	Capabilities: [70] Express Endpoint, MSI 01
	Capabilities: [ac] MSI-X: Enable- Count=4 Masked-
	Capabilities: [cc] Vital Product Data
	Capabilities: [100] Advanced Error Reporting
	Capabilities: [140] Virtual Channel
	Capabilities: [160] Device Serial Number 00-00-00-00-00-00-00-00
	Kernel driver in use: r8169
	Kernel modules: r8169

Z WWW rozhraní wol nefunguje protože WWW rozhraní neumožňuje zadat wol programu parametr -i ip.ad.re.sa

Takže:
root@router:/# wol -v -i 192.168.1.255  00:26:18:f3:96:60
Waking up 00:26:18:f3:96:60 with 192.168.1.255:40000...
funguje!

Ale
root@router:/# wol -v 00:26:18:f3:96:60                  
Waking up 00:26:18:f3:96:60 with 255.255.255.255:40000...
a nebo etherwake

nefunguje!

Místní adresy v síti mám 192.168.1.X.

PS.

Abych se nemusel přihlašovat přes ssh tak jsem si www upravil a přidal k programu parametr "-i 192.168.1.255" - sice to není čisté řešení ale funguje :-)

V souboru: /usr/lib/lua/luci/model/cbi/wol.lua najdeme řádek

cmd = "%s -v %q" %{ util, host }

a upravíme

cmd = "%s -v -i 192.168.1.255 %q" %{ util, host }

Jinak konfigurák wol programu se používá pouze když se wol spustí jako služba, takže tam zadat data je zbytečné pokud nebudeme spouštět wol jako službu /etc/init.d/wol start.

PS2. Tímto všem děkuji že mě nakoply správným směrem a poradily jak na to. Tímto tam OpenWrt zůstává.

15.12.2011 10:11 Petr
Rozbalit Rozbalit vše Re: OpenWrt a WOL
Mám stejný router ,ale s ddwrt probouzení PC mě z domácí sítě fungovalo vždy bez problému z venku jsem to řešil přes ssh k routeru a pak wol na PC. Ted už ani to není třeba a PC pustím i zvenku bez problému. zde je návod jak to vyřešit http://www.dd-wrt.com/wiki/index.php/WOL#Remote_Wake_On_LAN_via_Port_Forwarding

já osobně ,ale používám jiné porty.
15.12.2011 11:21 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: OpenWrt a WOL
Už to funguje.

Problém nebyl s přesměrováním, problém je že wol a i etherwake generují pakety na různých linkových vrstvách a síťovka je vybíravá - prostě etherwake vygeneruje paket a na síťovku přijde ale nevzbudí ji, wol vygeneruje správný paket (při použití správného přepínače - voleb) a síťovku vzbudí.

Ovšem wol zase nejde použít z www protože tam nejde dodat ten správný přepínač. (tak jsem ho do www dal natvrdo)

Prostě problém není na straně routeru - problém je na straně síťovky která reaguje pouze na specifický udp paket.

Samozřejmě s jinou síťovkou (případně i s jiným FW v ní) to může fungovat OK bez problémů - proto jsem zde uvedl síťovku s kterou mi to blbne pro ostatní.
15.12.2011 11:22 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: OpenWrt a WOL
PS. Ještě jsem zapoměl s DD-WRT probouzení fungovalo vždy - tam problém nebyl - nevím jaký paket posílá DD-WRT neskoumal jsem to když to chodilo.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.