TP-Link WR1043ND router - Hálózat, szolgáltatók fórum

üzenetek

hozzászólások


vargalex
(félisten)
Blog

Szia!

Maga a dnsmasq képes egy scriptet futtatni, amikor IP címet oszt (vagy megújít, esetleg release-eli) ki egy kliens számára. A linkelt dnsmasq manual-ban keress rá a --dhcp-script szövegre, ott a második találat lesz. Ezt a scriptet maga a dnsmasq úgy hívja meg, hogy paraméterként átadja neki sorban a típust (add/old/del) MAC címet, az IP címet, és a host nevet. Egy shell scriptben ezek rendre a $1, $2, $3, $4 változókkal hivatkozhatóak.
A #/bin/sh egyszerűen a parancsértelmezőt jelöli, azt mondja meg, hogy az fogja futtatni a scriptet (esetünkben egyébként ez egy symlink az busybox-ra).
A lényeg, hogy létrehozol valahova egy scriptet (pl. a /root-ba). Legyen mondjuk ez a /root/make_ip_permanent.sh.

Mivel a LuCI-ban nem lehet megadni, így vagy kézzel szerkeszted a /etc/config/dhcp file-t és a dnsmasq szekcióba felveszed a többi közé az

option dhcpscript '/root/make_ip_permanent.sh

sort, majd újraindítod a dnsmasq-ot:

/etc/init.d/dnsmasq restart

Vagy uci-val adod hozzá:

uci set dhcp.@dnsmasq[0].dhcpscript='/root/make_ip_permanent.sh'

majd szintént újraindítod a dnsmasq-ot.

A fenti scriptet nagyjából jól érted. Ugye az első sor a parancsértelmező, ezt írtam. A második sorban definiáljuk a számunkra érdekes MAC címet (nem kötelező definiálni, be lehet írni az if-be a $MACADDR helyére is. Csak én szeretem egyszer definiálni, hátha többször fogom használni.
A 3. sorban a script megvizsgálja, hogy a 2. paraméterként érkező érték (a fenti leírás alapján ugye ez a MAC cím) egyezik-e a számunkra érdekes MAC címmel. Ha nem, akkor nem csinál semmit.
A 4. sorban pedig rögzíti permanensen a szomszédot a paraméterként érkező IP cím és MAC cím segítségével.

Ha csak kíváncsi vagy, hogy valóban futtatja-e a dnsmasq a scriptet, akkor legyen ennyi a tartalma:

#!/bin/sh
logger -t make_ip_permanent "Incoming type: $1, MAC address: $2, IP address: $3, Hostname: $4"

Majd, ha újraindítod a dnsmasq-ot, akkor minden dhcp kéréskor/megújításkor/release-kor látni fogsz egy sort a rendszer logban a fenti tartalommal. Ez a script csak logol, semmi mást nem csinál.

üzenetek