Permalänk
Medlem

DNS-strul med hemmaserver

Jag har en Unraid-server hemma och kör diverse Docker-containers på den, bland annat AdGuard och Nginx Proxy Manager, samt Home Assistant i en VM. AdGuard används som annonsblockerare och DNS-server för min stationära dator (W11), NPM sköter HTTPS-certifikat för Home Assistant och några containers samt tillhörande subdomäner. Cloudflare är namnserver för min hemmadomän (som inte används alls utåt, bara internt) och sköter verifieringen som krävs för certifikaten.

Nu till problemet: med ojämna mellanrum, ibland flera gånger om dagen, kan min dator inte öppna Home Assistant eller någon annan domän utan står bara och tuggar tills den får time out. Efter en stund, ibland fem minuter, ibland en timme, funkar det igen. Det går hela tiden att öppna HA och de andra tjänsterna genom att knappa in IP-nummer och port så problemet ligger inte i dem. Hur går jag lättast vidare och felsöker? Var skall jag börja och hur?

Visa signatur

Det finns bara två sorters hårddiskar: de som har gått sönder och de som skall gå sönder.

Permalänk
Medlem

Testat ändra till en publik DNS på datorn som ett test för att se om problemen försvinner?

Visa signatur

Ryzen 7 5700X3D | Gigabyte B550 Gaming X V2 | 32 GB HyperX Beast 3600 MT/s | Asrock RX 9070 | 1 TB Kingston Fury Renegade | 2 TB Samsung 860 EVO | EVGA G2 750W | FD Define R5 Ti | 2 x 27" MSI MAG274QRF-QD

Permalänk
Medlem
Skrivet av PointMan:

Testat ändra till en publik DNS på datorn som ett test för att se om problemen försvinner?

Då tappar jag kontakten med alla lokala domännamn.

Visa signatur

Det finns bara två sorters hårddiskar: de som har gått sönder och de som skall gå sönder.

Permalänk
Medlem

Din dator frågar alltså AdGuard (som är din lokala DNS-resolver?) vart HA finns men du får inget svar?
Om du kör DHCP på din dator, har du i din DHCP-server konfigurerat 'rätt' DNS-resolver (AdGuard)? Har du fler DNS-resolvrar där?
Jag hade, när det inte fungerar, ställt frågan till AdGuard med nslookup från din dator och se om du får ett svar. Om du bara kör nslookup så ser du vilken resolver windows tycker att windows ska använda, om det inte är adressen till AdGuard vet du varför du inte får svar. Sen frågar du Adguard vart din HA bor med:

nslookup url.to.ha ip-to-AdGuard.

Om adguard inte svarar så får du nog kika i loggarna u adguardcontainern vad som händer med förfrågan.

Permalänk
Medlem

Tack @Hothep, jag skall prova det ikväll!

Det konstiga är att det fungerar ibland och ibland inte, jag kan sitta och pyssla med HA och allt är frid och fröjd men plötsligt så slutar det funka. Någon timme eller så senare har det kommit tillbaka och jag kan fortsätta tills det lika plötsligt försvinner igen.

Visa signatur

Det finns bara två sorters hårddiskar: de som har gått sönder och de som skall gå sönder.

Permalänk
Medlem

Jag antar att du har lagt in dina lokala adresser med ip:n manuellt i AdGuard ?

Permalänk
Medlem
Skrivet av Hothep:

Jag antar att du har lagt in dina lokala adresser med ip:n manuellt i AdGuard ?

Ja, alla hemmadomäner pekar på NPM och Windows har fast IP med manuell DNS.

Visa signatur

Det finns bara två sorters hårddiskar: de som har gått sönder och de som skall gå sönder.

Permalänk
Medlem
Skrivet av zarkov:

Då tappar jag kontakten med alla lokala domännamn.

Tappar du bara kontakten med lokala domännamn, eller du tappar DNS till allt?

Visa signatur

Ryzen 7 5700X3D | Gigabyte B550 Gaming X V2 | 32 GB HyperX Beast 3600 MT/s | Asrock RX 9070 | 1 TB Kingston Fury Renegade | 2 TB Samsung 860 EVO | EVGA G2 750W | FD Define R5 Ti | 2 x 27" MSI MAG274QRF-QD

Permalänk
Medlem

Har du lagt in DNS rewrites i AdGuard?

Känns lite som din dator använder flera DNS servrar och när den frågar AdGuard så funkar det och när den frågar en publik till exempel funkar det inte.

Hur har du angett din Windows dator till att använda AdGuard som DNS?

Permalänk
Medlem
Skrivet av Solanum95:

Har du lagt in DNS rewrites i AdGuard?

Känns lite som din dator använder flera DNS servrar och när den frågar AdGuard så funkar det och när den frågar en publik till exempel funkar det inte.

Hur har du angett din Windows dator till att använda AdGuard som DNS?

Edit: Du svarade på frågan i ett annat svar samtidigt som jag skrev lol.
Vad använder du för webbläsare? Kan vara så att den använder en annan DNS mot vad din dator gör.

Permalänk
Medlem
Skrivet av PointMan:

Tappar du bara kontakten med lokala domännamn, eller du tappar DNS till allt?

Det är bara lokala domännamn som inte funkar.

Skrivet av Solanum95:

Har du lagt in DNS rewrites i AdGuard?

Känns lite som din dator använder flera DNS servrar och när den frågar AdGuard så funkar det och när den frågar en publik till exempel funkar det inte.

Hur har du angett din Windows dator till att använda AdGuard som DNS?

Fast IP med manuell DNS i Windows nätverksinställningar. Är osäker på rewrites, skall kolla det ikväll.

Jag hade för mig att DNS är parallellt där frågan går ut till alla angivna servrar och första fullständiga svaret används, har jag missförstått det?

Skrivet av Solanum95:

Edit: Du svarade på frågan i ett annat svar samtidigt som jag skrev lol.
Vad använder du för webbläsare? Kan vara så att den använder en annan DNS mot vad din dator gör.

Primärt Chrome men jag har för mig att det är likadant i Edge.

Visa signatur

Det finns bara två sorters hårddiskar: de som har gått sönder och de som skall gå sönder.

Permalänk
Medlem

Du har alltså lagt till publika DNS records för dina olika tjänster som pekar på interna IP-adresser?

Exempelvis:

homeassistant.zarkov.tld -> 192.168.1.100

Har du sett till att bocka ur att Cloudflare ska försöka proxa anropet? Kan du slå upp subdomänerna korrekt via publika resolvers så som 1.1.1.1 eller 8.8.8.8? Kan du även slå upp dem via AdGuard?

Visa signatur

Antec P280 | FSP Hydro Ti Pro 1000W | MSI X670E Carbon | Ryzen 7 9800X3D | Kingston Fury Beast 6000MT/s CL30 2x32GB | Nvidia RTX 4090 FE | 2x Samsung 990 Pro 4TB | Kingston KC3000 4TB | Samsung 970 Pro 1TB | 2x Samsung PM863a 3.84TB | 2x ASUS PG279Q

Permalänk
Medlem
Skrivet av zarkov:

...

Jag hade för mig att DNS är parallellt där frågan går ut till alla angivna servrar och första fullständiga svaret används, har jag missförstått det?
...

Ja, primära DNS-servern du angett används först, time:ar förfrågan ut så skickas förfrågan till nästa i listan.

Visa signatur

Ryzen 7 5700X3D | Gigabyte B550 Gaming X V2 | 32 GB HyperX Beast 3600 MT/s | Asrock RX 9070 | 1 TB Kingston Fury Renegade | 2 TB Samsung 860 EVO | EVGA G2 750W | FD Define R5 Ti | 2 x 27" MSI MAG274QRF-QD

Permalänk
Medlem
Skrivet av zarkov:

Det är bara lokala domännamn som inte funkar.
Fast IP med manuell DNS i Windows nätverksinställningar. Är osäker på rewrites, skall kolla det ikväll.

Jag hade för mig att DNS är parallellt där frågan går ut till alla angivna servrar och första fullständiga svaret används, har jag missförstått det?
Primärt Chrome men jag har för mig att det är likadant i Edge.

Sry jag råkade göra ytterligare ett inlägg när jag skulle redigerat det första..
Var har du då angett din NPM's IP adress? I Cloudflare eller AdGuard?
Antar att du inte angett det i Cloudflare för då borde det funka när du kör en publik DNS server.

Så har du fler än din AdGuard DNS server angivna i din dator?

Jag använder inte Chromium baserade webbläsare själv så vet inte exakt hur DNS inställnignar fungerar där och vad som är standard men tänkte att det kan vara värt att kolla så den verkligen använder din dators DNS.

Permalänk
Medlem
Skrivet av PointMan:

Ja, primära DNS-servern du angett används först, time:ar förfrågan ut så skickas förfrågan till nästa i listan.

Inte alltid, och det beror lite på enhet till enhet. Min laptop (Ubuntu) frågar alltid mina 2 dns servrar medans min desktop (Windows) frågar 90% den första och 10% den andra.
Men om du frågar en address som inte har något svar så får man ju ändå ett "tomt" svar, och enheten tolkar ju ändå det som ett svar och frågar inte vidare till nästa dns server om den nu frågade den första i listan.

Permalänk
Medlem

har du blandat publik dns och intern dns på din dator??

dvs
DNS1 192.168.x.x
DNS2 1.1.1.1
???
så bör du isåfall inte ha alls, det kan skapa problem.

Permalänk
Medlem
Skrivet av Solanum95:

Inte alltid, och det beror lite på enhet till enhet. Min laptop (Ubuntu) frågar alltid mina 2 dns servrar medans min desktop (Windows) frågar 90% den första och 10% den andra.
Men om du frågar en address som inte har något svar så får man ju ändå ett "tomt" svar, och enheten tolkar ju ändå det som ett svar och frågar inte vidare till nästa dns server om den nu frågade den första i listan.

Är du säker?

https://documentation.ubuntu.com/server/explanation/networkin...

" nameservers:
search: [example.com, sales.example.com, dev.example.com]
addresses: [1.1.1.1, 8.8.8.8, 4.4.4.4]

If you try to ping a host with the name server1, your system will automatically query DNS for its Fully Qualified Domain Name (FQDN) in the following order:

server1.example.com

server1.sales.example.com

server1.dev.example.com

If no matches are found, the DNS server will provide a result of notfound and the DNS query will fail."

Visa signatur

Ryzen 7 5700X3D | Gigabyte B550 Gaming X V2 | 32 GB HyperX Beast 3600 MT/s | Asrock RX 9070 | 1 TB Kingston Fury Renegade | 2 TB Samsung 860 EVO | EVGA G2 750W | FD Define R5 Ti | 2 x 27" MSI MAG274QRF-QD

Permalänk
Medlem
Skrivet av PointMan:

Är du säker?

https://documentation.ubuntu.com/server/explanation/networkin...

" nameservers:
search: [example.com, sales.example.com, dev.example.com]
addresses: [1.1.1.1, 8.8.8.8, 4.4.4.4]

If you try to ping a host with the name server1, your system will automatically query DNS for its Fully Qualified Domain Name (FQDN) in the following order:

server1.example.com

server1.sales.example.com

server1.dev.example.com

If no matches are found, the DNS server will provide a result of notfound and the DNS query will fail."

Det du citerade är hur den försöker slå upp ett hostnamn på den interna domänen om du inte specificerar det fulla domännamnet.

Det @Solanum95 pratade om som jag förstod det är vilken DNS-server den frågar först. I exemplet du tog upp beskrev inlägget alltså hur den väljer mellan 1.1.1.1, 8.8.8.8 och 4.4.4.4. Hur olika OS väljer vilken server de frågar varierar, så man kan inte räkna med att den som står först (1.1.1.1 i exemplet) alltid är den som får frågan först.

Visa signatur

Antec P280 | FSP Hydro Ti Pro 1000W | MSI X670E Carbon | Ryzen 7 9800X3D | Kingston Fury Beast 6000MT/s CL30 2x32GB | Nvidia RTX 4090 FE | 2x Samsung 990 Pro 4TB | Kingston KC3000 4TB | Samsung 970 Pro 1TB | 2x Samsung PM863a 3.84TB | 2x ASUS PG279Q

Permalänk
Medlem
Skrivet av blunden:

Det du citerade är hur den försöker slå upp ett hostnamn på den interna domänen om du inte specificerar det fulla domännamnet.

Det @Solanum95 pratade om som jag förstod det är vilken DNS-server den frågar först. I exemplet du tog upp beskrev inlägget alltså hur den väljer mellan 1.1.1.1, 8.8.8.8 och 4.4.4.4. Hur olika OS väljer vilken server de frågar varierar, så man kan inte räkna med att den som står först (1.1.1.1 i exemplet) alltid är den som får frågan först.

Hm... detta måste ju finnas dokumenterat någonstans?!

Visa signatur

Ryzen 7 5700X3D | Gigabyte B550 Gaming X V2 | 32 GB HyperX Beast 3600 MT/s | Asrock RX 9070 | 1 TB Kingston Fury Renegade | 2 TB Samsung 860 EVO | EVGA G2 750W | FD Define R5 Ti | 2 x 27" MSI MAG274QRF-QD

Permalänk
Medlem
Skrivet av PointMan:

Hm... detta måste ju finnas dokumenterat någonstans?!

Absolut. Moderna versioner av Ubuntu använder systemd-resolved. Titta under Protocols and Routing i den länkade dokumentationen nedan:

https://www.freedesktop.org/software/systemd/man/latest/syste...

Specifikt kan du läsa under "The following query routing logic applies for unicast DNS lookups initiated by systemd-resolved.service:". Min tolkning av den texten är att den tar upp både beteendet som @Solanum95 beskrev, och det du beskrev.

För Windows (om det inte ändrats i senare versioner):

https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/dn593685(v=ws.11)

Visa signatur

Antec P280 | FSP Hydro Ti Pro 1000W | MSI X670E Carbon | Ryzen 7 9800X3D | Kingston Fury Beast 6000MT/s CL30 2x32GB | Nvidia RTX 4090 FE | 2x Samsung 990 Pro 4TB | Kingston KC3000 4TB | Samsung 970 Pro 1TB | 2x Samsung PM863a 3.84TB | 2x ASUS PG279Q

Permalänk
Medlem
Skrivet av PointMan:

Hm... detta måste ju finnas dokumenterat någonstans?!

Ja precis som @blunden skrev så är det du länkade en helt annan sak.
Det är inte helt logiskt med DNS och vilken server en viss enhet använder primärt, jag själv har insett att alla enheter sköter det där lite olika.
Jag personligen har faktist 3st AdGuard Home DNS servrar och tar jag min Ubuntu Laptop som exempel så frågar den alltid de första 2 och den 3e har inte fått en enda förfrågning från just den laptopen.

Tar jag min iPhone som exempel så skickar den typ alla förfrågningar till den första men både den 2a och 3e servern har fått några enstaka förfrågningar.

Permalänk
Medlem

Om "Use secure DNS" är påslaget i Chrome så används: DNS over HTTPS (DoH)
När jag testar så verkar det som om Chrome använder vanlig DNS om den misslyckas med att slå upp det via DoH.

Kan ju bli bättre om man slår av "Use secure DNS".

Visa signatur

Klient: AMD 7 5800X | ASUS X570-F | 32GB 3200MHz | Corsair RM850 | Gigabyte 3070 | Phanteks P500A | Samsung 980 PRO
HTPC: Intel I7 4770T | 16 GB 1600 | FC8 EVO | Gigabyte GA-H87N-WIFI | Samsung 840 250GB
Server: Intel XEON E5620 x 2| ASUS Z8PE-D18 | 96GB 1333MHz | Corsair AX 1200W | HAF 932 | WD Black 2TB
Nätverk: Unifi Cloud Gateway Max/Ultra| Unifi AC Lite/Pro/LR/Nano/Mesh/U6-LR/U6+/U6-Lite/U7-Lite | Nighthawk M1 | pfSense | TP-Link TL-WPA8630KIT | Ubiquiti NanoStation 5 AC Loco | UniFi Switch 8-150W

Permalänk
Medlem
Skrivet av zarkov:

Tack @Hothep, jag skall prova det ikväll!

Det konstiga är att det fungerar ibland och ibland inte, jag kan sitta och pyssla med HA och allt är frid och fröjd men plötsligt så slutar det funka. Någon timme eller så senare har det kommit tillbaka och jag kan fortsätta tills det lika plötsligt försvinner igen.

Bor alla dina tjänster på en server och den har bara en ip-adress?
Du kan ju alltid testa lägga in specifika namn utöver att ha wildcardet om det går bättre att resolva då. Om ip:t resolvas korrekt är det något som händer, inte händer eller händer fel i proxyn.

Antar att du har den setupen du har för du vill ha certen men behöver du verkligen det?

Permalänk
Medlem

Nu har jag fixat och trixat lite och provat det mesta som föreslagits i tråden och (ta i trä!) så verkar det funka nu. Det har varit en kombination av intern/extern DNS-server på datorn, inställningar i NPM och i Adguard som behövt rättas till. Det enda som inte funkar än är Home Assistant som med jämna mellanrum slutar svara på domännamnet och bara står och tuggar, byter jag till IP så funkar det direkt, så det är antingen något med certet eller med namnuppslaget...

HA körs i en VM under Unraid med network bridge och egen IP. Hela subnätet är vitlistat i HAs configuration.yaml:

http: use_x_forwarded_for: true trusted_proxies: - 192.168.1.0/24

Skrivet av Hothep:

Bor alla dina tjänster på en server och den har bara en ip-adress?
Du kan ju alltid testa lägga in specifika namn utöver att ha wildcardet om det går bättre att resolva då. Om ip:t resolvas korrekt är det något som händer, inte händer eller händer fel i proxyn.

Antar att du har den setupen du har för du vill ha certen men behöver du verkligen det?

Ja, en enda server. De enda tjänster som "behöver" cert är Unifi Controller och Home Assistant (pga ESPhome) så jag skulle ju kunna lägga dem på egna cert om det behövs.

Visa signatur

Det finns bara två sorters hårddiskar: de som har gått sönder och de som skall gå sönder.

Permalänk
Medlem
Skrivet av zarkov:

Nu har jag fixat och trixat lite och provat det mesta som föreslagits i tråden och (ta i trä!) så verkar det funka nu. Det har varit en kombination av intern/extern DNS-server på datorn, inställningar i NPM och i Adguard som behövt rättas till. Det enda som inte funkar än är Home Assistant som med jämna mellanrum slutar svara på domännamnet och bara står och tuggar, byter jag till IP så funkar det direkt, så det är antingen något med certet eller med namnuppslaget...

Då är återstår tidigare fråga, vad får du för svar via nslookup när det inte fungerar?

Skrivet av zarkov:

HA körs i en VM under Unraid med network bridge och egen IP. Hela subnätet är vitlistat i HAs configuration.yaml:

http: use_x_forwarded_for: true trusted_proxies: - 192.168.1.0/24

Inte för att det kanske spelar någon roll, men det där är onödigt. Räcker med IP till din NPM som är din proxy.

Permalänk
Medlem
Skrivet av breakman:

Då är återstår tidigare fråga, vad får du för svar via nslookup när det inte fungerar?

192.168.1.24 är Nginx Proxy Manager
192.168.1.20 är AdGuard

Så här ser det ut i AdGuard DNS Rewrites:

Visa signatur

Det finns bara två sorters hårddiskar: de som har gått sönder och de som skall gå sönder.

Permalänk
Medlem

Så, namnuppslag via vanliga port 53-DNS tycks fungera som förväntat när du upplever att home assistant inte svarar via nginx.

Ideer:

Du har inte rett ut om din webbläsare använder DoH.

Använd nätverksfliken i webbläsarens utvecklarläge för att se om det ger nånga ledtrådar.

Se till att nginx har både access- och felloggar aktiverade och verifiera att i alla fall accessloggen fungerar. Vad händer när det inte fungerar?

Driv trafik med openssl s_client för att kolla handskakningen och prata rå HTTP genom nginx till HA. Det blir ett annat sätt att ignorera DNS-svartkonster som webbläsaren har för sig.

Vad säger HA:s loggar?

Vad säger Unraids loggar?

Kör tcpdump på lämpliga ställen längs vägen när det funkar och ta anteckningar på hur det ser ut. Gör nginx några DNS-uppslag och går det? Gör sedan om det när det inte funkar.