Temat: Kilka instancji dnsmasq

Witam,

Probuję już od kilku dni i efekt jest mierny, dlatego pomyślałem, że zapytam.

Próbuje utworzyć kilka instancji dnsmasq, po jednej dla każdego VLAN, które mam skonfigurowane (main, iot, guest itd). Chce tak zrobić, żeby za pomocą dns-https-proxy wysyłać zapytania DNS do różnych profili nextDNS.

I teraz problem mam taki. Tworzę w LuCI (Network -> DHCP and DNS) za pomocą "add server instance" nowe instancje dnsmasq. Miałem problemy typu "address in use", ale jak powykluczałem z nowych instancji loopback czy wan6, to generalnie obsługa DNS działa prawidłowo (ruch z danego VLAN trafia do danego profilu nextDNS) - wszystko gra.

Niestety jak zrestartuje klienta (zakładam, że również jakby wygasł IP lease - używam static lease), to klient nie dostaje już ponownie adresu IP. W logach widzę błąd:
Sat Dec  6 10:09:21 2025 daemon.warn dnsmasq-dhcp[1]: no address range available for DHCP request via br-lan.11

I teraz w /etc/config/dhcp moja sekcja dla interfejsu VLAN11 wyglada tak:

config dnsmasq 'VLAN11'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option domainneeded '1'
        option authoritative '1'
        option local '/pc/'
        option domain 'pc'
        option expandhosts '1'
        option logqueries '1'
        option logdhcp '1'
        list server '127.0.0.1#5056'
        option rebind_protection '1'
        option rebind_localhost '1'
        option localservice '1'
        list interface 'VLAN11'
        list notinterface 'loopback'
        list notinterface 'wan6'
        option noresolv '1'
        option strictorder '1'
        option localise_queries '1'

Jeżeli chodzi o LuCI to wygląda to trochę dziwnie. W Network -> Interfaces jak edytuje interfejs do VLAN11 to w sekcji DHCP nic nie ma (No DHCP Server configured for this interface). Mogę jedynie utworzyć nowy (Set up DHCP server). Jak to zrobię, to przydzielanie IP działa od razu, ale to mi nadpisze całą konfigurację instancji dnsmasq dla VLAN11 (zostaje ona kompletnie usunięta). Czyli konfiguracje dnsmasq nadpisuje mi DHCP z Network -> Interfaces, a konfiguracja z Network -> Interfaces nadpisuje mi konfiguracje całej instancji dnsmasq.

Co robię źle?

Przy okazji pytanie: większość rzeczy robię za pomocą LuCI. Większość wiedzy czerpię z netu i AI (wiem, wiem...). Czy jeżeli znajduję informację, że coś trzeba zrobić, ale nie jestem tego w stanie ustawić w LuCI, tzn że to nie będzie działać? Innymi słowy, czy jest konfiguracja, której LuCI nie obsługuje? Czy wszystko co jest ustawiane za pomocą komend przez SSH, powinno być też wyklikiwalne w LuCI?

2

Odp: Kilka instancji dnsmasq

Tak, wiele takich jest. Choć starają się żeby w luci było wszystko to jednak w luci jest to hardcodowane (np. lista możliwych opcji do uzupełnienia). I jeżeli ktoś zmieni program a zapomni o luci no to luci nic nie będzie widziało że ma coś nowego robić.

Pomieszałeś dwa konfig. Jeden to konfig samego dnsmasq a druga sekcja (która ma option interface, start, limit, leasetime) to druga sekcja. Ty wrzuciłeś wszystko w jedną (i to nie właściwego typu dla w/w opcji).

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: Kilka instancji dnsmasq

Dobra. Wstyd się przyznać ile mi to zajęło, oraz co było problemem, ale co tam - może komuś się przyda.

Probowałem przez weekend poprawić tą konfigurację za pomocą komend UCI i w końcu mnie oświeciło. Wszystko generalnie da się wyklikać w LuCI, tylko trzeba mieć na względzie... nazwy. Jak korzysta się w LuCI z opcji "Set up DHCP server" w danym interfejsie, to w /etc/config/dhcp tworzy się sekcja "config dhcp" + nazwa interfejsu (np. "config dhcp 'VLAN10'"). Następnie jak próbuje się utworzyć w LuCI nową instancję dnsmasq, to nie wolno użyć tej samej nazwy co interfejs. Jeżeli się to zrobi (tak jak ja robiłem wielokrotnie, zanim użycie UCI set dhcp.VLAN10="dnsmasq" na przemian z ="dhcp" mnie oświeciło...) to LuCI utworzy nową sekcję "config dnsmasq 'VLAN10'" mieszając zarówno ustawienia dnsmasq jak i DHCP (stąd w pierwszym poście taki śmietnik). Wystarczy więc utworzyć w LuCI nową instancję z nazwą np. "VLAN10_dns" i wtedy w config/dhcp będzie osobna sekcja dla DHCP (config dhcp 'VLAN10') i osobna dla dnsmasq (config dnsmasq 'VLAN10_dns') i wszystko będzie współgrać.

Przy okazji mam jednak dwa pytania:
Po zainstalowaniu dns-https-proxy w "config dnsmasq" procz opcji "server" widze jeszcze "doh_server" (i doh_backup_server). Gdzieś wyczytałem, że kolejność interpretowania wpisów powinna być doh_server -> doh_backup_server -> server. Kojarzycie czy faktycznie tak jest? Po 1 teście wychodzi mi, że server jest brany w pierwszej kolejności (czy te inne wpisy są w ogóle brane pod uwagę to nie wiem, może przetestuję jutro). Swoją drogą straszny śmietnik w konfiguracji robi ten dns-http-proxy ustawiony w opcji nadpisywania ustawień w config/dhcp.

Druga sprawa. Za każdym razem po restarcie dnsmasq dostaje tego typu blędy w logach:
Sun Dec  7 22:12:22 2025 daemon.crit dnsmasq[1]: failed to create listening socket for 192.168.20.1: Address in use
Sun Dec  7 22:12:22 2025 daemon.crit dnsmasq[1]: FAILED to start up
lub
Sun Dec  7 22:12:47 2025 daemon.info procd: Instance dnsmasq::VLAN20_dns s in a crash loop 6 crashes, 0 seconds since last crash
Mimo tego połączenie z internetem działa, resolver działa. Oczywiście każda instancja dnsmasq dla VLANXX ma ustawione list interface na prawidłowy interjfes, oraz list notinterface loopback. Sprawdzam konfigurację, sprawdzam uruchomione procesy, ale nie mogę kompletnie zidentyfikować co tu się dubluje. Jak to zrobić?

4

Odp: Kilka instancji dnsmasq

Pierwsza sprawa - to po prostu inny serwis, który może się gryźć z dnsmasq jeżeli uruchomisz to na tym samym porcie. Skonfiguruj doh jak potrzebujesz i używaj
Druga sprawa - dzieje się zwykle dlatego  że próbujesz uruchomić drugi raz coś co już jest uruchomione lub inny proces słucha na tym samym porcie. Więc najpierw zrób stop, upewnij się że proces nie działa i dopiero uruchamiaj
I trzecia - wywala się po prostu, ale prostej i jednoznacznej odpowiedzi dlaczego to już nie ma. Sam musisz dojść dlaczego tak się dzieje.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.