Zjištění stavu počítače na síti

ancp

Zjištění stavu počítače na síti
« kdy: 12. 02. 2012, 00:23:30 »
Dobrý den, už tři dny pátrám po netu jak zobrazit aktuální stav PC (zapnuto/vypnuto) připojeného k routeru Asus Wl-500gx (Oleg fw) a nemůžu nic najít... Možná na to jdu špatně.

Cíl: Na routeru běží webserver s podporou cgi a potřebuji na stránce zobrazit informaci, zda je konkrétní PC v LAN se staticky přidělovanou IP adresou (192.168.1.100) online nebo offline. Jedná se mi o okamžitý stav bez použití příkazu ping.

ke zjištění stavu zkouším použít netstat:

Kód: [Vybrat]
netstat -nat |grep 192.168.1.100 | awk '{print $6}' | sort | uniq -c | sort -n
Problém je v tom, že pokud toto PC vypnu trvá nějaký čas, než utilita netstat zobrazí aktuální stav. Předpokládám správně, že se někde ukládá cache z dhcp? Lze ji nějak vyčistit před spuštěním příkazu nestat? Možná existuje jednodušší řešení nebo metoda, ale na to mi chybí zkušenosti. Poradíte?
« Poslední změna: 12. 02. 2012, 00:41:03 od Petr Krčmář »


Ladislav Kepšta

Re:Zjištění stavu počítače na síti
« Odpověď #1 kdy: 12. 02. 2012, 10:40:08 »
Zdravim,

jedna z moznosti si je pomoct ARP protokolom resp. tabulkou. Podmienkou je, aby router a to PC bolo na rovnakom L2 segmente. Postup:
1./ na routery flushnem ARP cache (man ip)
2./ na routery zobrazim aktualnu ARP cache (man ip) a vyhladam dane PC




ancp

Re:Zjištění stavu počítače na síti
« Odpověď #2 kdy: 12. 02. 2012, 23:54:52 »
Díky za radu, ale s příkazem arp jsem nakonec nepochodil - není součástí systému routeru.

V routeru jsem sice arp tabulku našel, ale který proces ji generuje se mi zjistit nepodařilo. Jak arp chache pro tuto verzi firmware vyčistit se mi taky nepodařilo nikde najít. Zatím to tedy řeším utilitou arping, která sice funguje spolehlivě, ale není to moc elegantní.

K ARPu mám jedině toto:

Kód: [Vybrat]
$ find / | grep arp
/proc/sys/net/ipv4/conf/vlan1/arp_filter
/proc/sys/net/ipv4/conf/vlan1/proxy_arp
/proc/sys/net/ipv4/conf/br0/arp_filter
/proc/sys/net/ipv4/conf/br0/proxy_arp
/proc/sys/net/ipv4/conf/lo/arp_filter
/proc/sys/net/ipv4/conf/lo/proxy_arp
/proc/sys/net/ipv4/conf/default/arp_filter
/proc/sys/net/ipv4/conf/default/proxy_arp
/proc/sys/net/ipv4/conf/all/arp_filter
/proc/sys/net/ipv4/conf/all/proxy_arp
/proc/net/arp

Nemám někdo s tímto Asusem a firmware od Olega zkušenosti?

Pindal

Re:Zjištění stavu počítače na síti
« Odpověď #3 kdy: 13. 02. 2012, 08:29:34 »
arping je nejlepší řešení. Spolehlivě zjistí jestli počítač "žije". Pasivním čtením ARP tabulky (kterou generuje jádro) nezjistíte zapnutý, ale nekomunikující počítač. Další možnost je zjišťovat link state přímo na portu switche/routeru, ale počítač i ve vypnutém stavu většinou drží link kvůli WOL. Některé karty sice degradují na nižší rychlost nebo half-duplex, ale je to opět hádání z koule.

Re:Zjištění stavu počítače na síti
« Odpověď #4 kdy: 13. 02. 2012, 08:39:05 »
Jedná se mi o okamžitý stav bez použití příkazu ping. [...] pokud toto PC vypnu trvá nějaký čas

Tenhle požadavek nějak nechápu.

1. jestli to "trvá nějaký čas", tak to asi není "okamžité", ne?
2. ping na LAN trvá v řádu zlomku milisekundy - to mi přijde docela dost "okamžité"

Nebo jde o to, zjišťovat stav PC ne okamžitě ale pasivně (bez provozu na síti, tj. bez pollingu)?
Proč takový požadavek?


KapitánRUM

Re:Zjištění stavu počítače na síti
« Odpověď #5 kdy: 13. 02. 2012, 10:05:37 »
Taky by mi přišlo lepší z otvírané stránky ping-ovat ten stroj, než při každém refreshi té stránky vymazávat ARPcache.
Výmaz ARPCache mi přijde mnohem brutálnější a nebezpečnější, než ping.
Nevím jak na tom asusu, ale pokud nepočítám s dopadem na výkon, tak netuším, jestli výmaz celé arpcache nějak neovlivní stávající přenosy.

Jediný důvod, který mě napadá, je, že ping na tom stroji není z vnější strany povolený.
Arping by ovšem aprcache neměl využívat ne?

KapitánRUM

Re:Zjištění stavu počítače na síti
« Odpověď #6 kdy: 13. 02. 2012, 10:25:49 »
Arping by se měl dát normálně stáhnout a přeložit pro ten ASUS ne?
Nebo by se musela dělat nová image?


ancp

Re:Zjištění stavu počítače na síti
« Odpověď #7 kdy: 13. 02. 2012, 12:59:33 »
Citace
Tenhle požadavek nějak nechápu.

1. jestli to "trvá nějaký čas", tak to asi není "okamžité", ne?
2. ping na LAN trvá v řádu zlomku milisekundy - to mi přijde docela dost "okamžité"

Trvá nějaký čas... Měl jsem na mysli aktualizaci arp tabulky.  Po vypnutí PC se aktualizovala až za cca 20 minut, takže jsem neměl přehled o to, zda PC na kterém mi běží jiný server je vypnuté nebo zapnuté.

Citace
Nebo jde o to, zjišťovat stav PC ne okamžitě ale pasivně (bez provozu na síti, tj. bez pollingu)?
Proč takový požadavek?

Stručně vysvětlím o co se mi jedná:

Na PC mi běží dva servery (apache & ftp s podporou javy), které chci zpřístupnit omezenému okruhu lidí. Není nutné, aby byl počítač stále zapnutý, a tak si chci vytvořit stránku, na které tato skupina lidí uvidí, zda je PC online/offline. Pokud je pc vypnuté, na stránce se zobrazí button "probudit server". Po klepnutí vyšle skript příkaz ether-wake, který probudí pc. Webová stránka bude průběžně zobrazovat status PC ve smyslu server se startuje....

Jakmile skript ping vrátí odezvu (pc zapnuté, IP přidělena, servery běží), uživateli se vygeneruje html odkaz na přístup k té či oné serverové aplikaci. Dalším důvodem, proč jsem chtěl refresh arp tabulky je generování seznamu všech aktuálně připojených klientů k routeru (pouze v LAN).

Pro tento případ mi nepřišlo vhodné pingovat na všechny IP uvedené v arp tabulce, ale prozatím to bude jediné řešení. Celé se to mírně komplikuje faktem, že router má dynamickou IP, ale to už mám vyřešeno přes můj veřejný server, takže si uživatelé nebudou muset pamatovat ip routeru...

Citace
Arping by se měl dát normálně stáhnout a přeložit pro ten ASUS ne?
Nebo by se musela dělat nová image?

ARPING jsem musel stáhnout a nainstalovat přes balíčky IPKG. Funguje opravdu spolehlivě.



pepazdepa

Re:Zjištění stavu počítače na síti
« Odpověď #8 kdy: 13. 02. 2012, 13:43:02 »
mozna se pletu, ale neni 'port down' na switch ukazka, ze je zarizeni neaktivni?

Re:Zjištění stavu počítače na síti
« Odpověď #9 kdy: 13. 02. 2012, 14:12:28 »
ARPING jsem musel stáhnout a nainstalovat přes balíčky IPKG. Funguje opravdu spolehlivě.

Já pořád nějak nechápu, v čem má být arping lepší než normální ping a proč "mi nepřišlo vhodné pingovat na všechny IP uvedené v arp tabulce" - jestli chceš zjistit okamžitý stav stroje, tak stejně musíš nějak pingat - jestli arpingem nebo normálním pingem, v tom nevidím žádný rozdíl.

mozna se pletu, ale neni 'port down' na switch ukazka, ze je zarizeni neaktivni?

Jak uz tady nekdo rikal, pokud je zapnuty WOL, je linka aktivni.

pepazdepa

Re:Zjištění stavu počítače na síti
« Odpověď #10 kdy: 13. 02. 2012, 14:54:53 »
no... do na to od lesa... pokud nekdo spravuje neco, tak snad ma na to nejaky system. aspon ti, co premysli, maji.
takze pokud mas cfengine, puppet atp, tak je preci jednoduchy si zjistit, jestli je agent up nebo ne.

pokud nejde zjistit, jestli ti neco bezi ci nebezi v dobe, kdy by melo, tak je to spise problem designu.

priklad:

pani ucetni ma stanici, jde na dovolenou/nemocenskou, to znamena, ze pc bude vypnuty? co aktualizace, kdyz je pryc?

nebo uz se nikdy nevrati, tak se stanice deleguje na jineho zamestnance, tak ji zapne a bude mit derany a stary
programy?

jen takova poznamka... ze mozne reseni nemusi byt presne to, co se muze chtit.

ancp

Re:Zjištění stavu počítače na síti
« Odpověď #11 kdy: 13. 02. 2012, 15:30:37 »
Citace
Já pořád nějak nechápu, v čem má být arping lepší než normální ping a proč "mi nepřišlo vhodné pingovat na všechny IP uvedené v arp tabulce" - jestli chceš zjistit okamžitý stav stroje, tak stejně musíš nějak pingat - jestli arpingem nebo normálním pingem, v tom nevidím žádný rozdíl.

Zkrátka jsem chtěl načíst data z arp tabulky, kde budu mít všechny připojené klienty, pro jednoduché načtení do webové stránky. Že k tomu bude nutné použít ping mi došlo až po první reakci, takže se tady nepřu jestli je arping lepší než ping. Nicméně pro mě je vhodnější arping, a to z důvodu, že binární ping v téhle distribuci není plnohodnotný ping, který má jedinou možnost options a to "-c". Žádný jiný parametr mi na rozdíl od arpingu nebere. Navíc arping má možnost zobrazit výsledek jako vykřičník či tečku, takže se výstup příjemně parsuje.

ET

Re:Zjištění stavu počítače na síti
« Odpověď #12 kdy: 13. 02. 2012, 16:28:57 »
"proc má být arping lepší než normální ping"

arping funguje na L2, takze projde i kdyz je na pc ICMP (L3) ping zakazanej - arping vpodstate odhali kazdej aktivni stroj na "ethernetovy" LANce

Re:Zjištění stavu počítače na síti
« Odpověď #13 kdy: 13. 02. 2012, 18:52:58 »
arping funguje na L2, takze projde i kdyz je na pc ICMP (L3) ping zakazanej - arping vpodstate odhali kazdej aktivni stroj na "ethernetovy" LANce

No to je fakt, ja jsem nejak automaticky myslel, ze tazatel ma stroje v LAN pod palcem, coz mit nemusi.