users_to_router allows tcp/53 only — UDP DNS from captive clients fails, breaking hostname resolution
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 25/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Ferma
- Stack tecnologico
- go
- Ambito
- networking
Direzione di ricerca
Find the packaged NDS config in 99-tollgate-setup or the config defaults, and read how users_to_router is set. Reproduce the DNS timeout with nslookup example.com from a captive client, then verify the change allows UDP DNS; done means hostname resolution works for the client. A linked open pull request (#769) is already addressing this issue.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Migrated from Amperstrand/tollgate-module-basic-go#89 as part of the fork retirement — OpenTollGate/tollgate-module-basic-go is the single source of truth; the fork issue carries the original discussion and any lab evidence. Retirement plan: see the tracking issue linked in the migration comment there.]
Found during the 2026-09-05/06 local-lab campaign (physical-router-test-automation PR #101).
Symptom
A captive-portal client cannot resolve hostnames: curl http://example.com fails with "Could not resolve host" while the router's dnsmasq is healthy and answering on 10.99.99.1:53. IP-literal requests work.
Root cause
The NDS config shipped by the package sets:
users_to_router='allow tcp port 22' 'allow tcp port 53' 'allow tcp port 2121' ...
Only tcp/53 is allowed. Resolvers (glibc/musl, Android, browsers) query UDP first; the UDP query is dropped by NDS's ndsRTR chain, and the typical 5s-per-attempt timeout exceeds captive-portal min-browser and test budgets before any TCP fallback can happen. Empirically the client's resolution is dead in practice.
Suggested fix
Add 'allow udp port 53' to users_to_router in the packaged NDS config (99-tollgate-setup / config defaults). DNS for the portal flow is required pre-auth by design (the portal itself is often reached by name); there is no security gain from blocking UDP while allowing TCP to the same resolver.
Repro
- Lab VM with TollGate + NDS, client attached.
nslookup example.com/ any hostname from the client (pre- or post-auth) → timeout.- Router-side
nslookup example.com 127.0.0.1→ instant. - IP-literal curl from the client → works (proves forwarding, not DNS).
- Lingua principale
- Go
- Stelle
- 12
- Fork
- 14
- Merge medio
- 3g 20h
- PR unite (30g)
- 261
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di OpenTollGate/tollgate-module-basic-go
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
OpenTollGate/tollgate-module-basic-go#1159 ·
I maintainer di solito rispondono entro 1 giorno
-
Degraded-mode hygiene follow-ups: dead walletNotInitializedError() + main.go's startup log still over-promises mint recoveryForse già presa @Amperstrand l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
OpenTollGate/tollgate-module-basic-go#1135 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
setup_uhttpd_portal hardcodes the GUEST portal docroot to the TollGate path — the brand token cannot select a re-brand guest portalForse già presa @Amperstrand l’ha presa 1 giorno fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
OpenTollGate/tollgate-module-basic-go#1122 ·
I maintainer di solito rispondono entro 1 giorno
-
changelog: dependency-security sweep missing from [Unreleased] [Amperstrand fork #105 review debt]Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
OpenTollGate/tollgate-module-basic-go#1055 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
OpenTollGate/tollgate-module-basic-go#1027 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di OpenTollGate/tollgate-module-basic-go
Issue simili
-
Fix mode unpins a reusable workflow call when the same repository is also used as a step actionAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
github/gh-actions-lock#261 ·
I maintainer di solito rispondono entro 1 giorno
-
bug documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
labmonkeys-space/nl6#974 ·
I maintainer di solito rispondono entro 1 giorno
-
model:sonnet phase-2-optimize runtime:claude security size:S
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
FootprintAI/Containarium#3471 ·
I maintainer di solito rispondono entro 1 giorno
-
[BUG] serviceenvupdater filter does not update KUBERNETES_SERVICE_HOST/PORT in init containersForse già presa @RaphaelFakhri l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
openyurtio/openyurt#2845 ·
I maintainer di solito rispondono entro 7 giorni
-
fuzz.yml skips three fuzz targets, and the Action's user input describes only ~/.claudeForse già presa @predictor2718 l’ha presa oggi. Apertagithub_actions P3 tests
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno