» »

[Linux]Zagon skripte pri priklopu LAN kabla

[Linux]Zagon skripte pri priklopu LAN kabla

MrStein ::

Živjo!

Pozna kdo mehanizem, ki požene skripto (recimo ifup) ko se vtakne LAN kabel v priključek računalnika?
To ima vsaka distribucija, iščem komponento/mehanizem, ki to dejansko implementira.

Lp,
David
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

AndrejO ::

Preveč odvisno od distribucije in programja, ki obdeluje sporočila strojne opreme, da se bi dalo povedati splošno rešitev.

V drobovju to deluje tako, da imaš proces, ki odpre netlink povezavo in na njej sprejema sporočila. Eno izmed teh sporočil je tudi NEWLINK, ki ti sporoči stanje vmesnika.

Za primer katera vse sporočila se na vmesnikih pojavljajo lahko narediš enostaven eksperiment:
Terminal #1:
ip link add here type veth peer name there
ip link set here up
ip monitor link

Terminal #2:
ip link set there up

Kar se zgodi je, da na terminalu #1 dobiš tri sporočila:
5: there: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state DOWN
    link/ether c6:c1:e7:8c:a1:37 brd ff:ff:ff:ff:ff:ff
5: there: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
    link/ether c6:c1:e7:8c:a1:37 brd ff:ff:ff:ff:ff:ff
6: here: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
    link/ether b6:33:a7:65:98:c9 brd ff:ff:ff:ff:ff:ff

Po vrsti gredo:
- 'there' je šel v "administrative up"
- 'there' je našel "povezavo"
- 'here' je našel "povezavo"

V obratni smeri, če povezavo "odklopiš" nato enako v nasprotno smer.

Na koncu samo še počisti:
ip link del here

Fedora in Ubuntu sta se nekako standardizirala na NetworkManager, ki ta sporočila posreduje naprej preko D-Bus vmesnika.

V katero smer te od tukaj naprej zanima bolj v podrobnosti.

Zgodovina sprememb…

  • spremenil: AndrejO ()

MrStein ::

Zanima me za OpenWRT.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

AndrejO ::

netifd. Verjetno boš za začetek pogledal design guide.

Zadeva je namenska za OpenWRT, ker so ostale rešitve preveč požrešne. Čisto do konca zadeve ne poznam in morda se je v zadnjem času tudi že kaj spremenilo. V osnovi pa imaš tri komponente, ki sodelujejo:
ubusd: RPC strežnik preko katerega poteka vsa komunikacija.
netifd: posluša za dogodke iz jedra, posreduje ukaze jedru (netlink).
odjmalci, ki pošiljajo zahteve preko ubusd "vodila" ali pa čakajo na dogodke preko tega vodila.

netifd torej prejme dogodek iz jedra, ta dogodek objavi preko ubusd vodila, na drugi strani pa mora odjemalec poslušati za te dogodke.

Kolikor vem OpenWRT nima prevzetega odjemalca, ki bi zaganjal skripto, ko dobiš DEV_EVENT_LINK_UP/DEV_EVENT_LINK_DOWN. Ne bi pa smela biti težava takšno skripto spisati. Poglej si primere.

MrStein ::

Zgleda obetavno, hvala!

ifplugd so še omenili na IRC-u
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

Zgodovina sprememb…

  • spremenil: MrStein ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[PHP+ArchLinux]zajem podatkov o mreznih vmesnikih

Oddelek: Programiranje
61833 (1617) KernelPanic
»

router asus WL550ge, ARP tabela in WOL

Oddelek: Omrežja in internet
101762 (1616) mNeRo
»

Kako v linuxu naštimat dva IP naslova na eni mrežni karticikartici?

Oddelek: Operacijski sistemi
71294 (1203) Bakunin
»

ebtables+linux+brctl+siol-tv

Oddelek: Omrežja in internet
122387 (2239) korenje_ver2
»

mac spoofing

Oddelek: Pomoč in nasveti
161665 (1401) Suhy

Več podobnih tem