Permalänk
Medlem

Avancerat (?) DNS-problem

Hej,

Har lite problem med BIND/DNS server på en Raspberry Pi (Debian Wheezy). Allt fungerar med en Windows-DNS, men den vill jag fimpa.

Nätverket ser ut som följande;

Ett LAN (10.205.10.0), en gateway till internet (10.205.10.4) samt en router till ett företagsnätverk (10.205.10.1).

Företagsnätverket har två st DNSer jag behöver "åtkomst till"; 10.20.1.22 och 10.16.32.8.

Jag skall då sätta upp en DNS-server på LANet (10.205.10.60) som skall användas av DHCP-servern för att klienterna skall kunna använda DNS för att komma åt internet samt företagsresurser.

Problemet är att jag bara kommer åt internet-resurser från DHCP-klienterna på LANet, medan DNS-servern (.60) kommer åt alla resurser.

I named.conf.local har jag testat både att ha LAN-DNSen som master med företags-DNSerna som forwarders och även ha LAN DNS som slave med företags-DNSerna som masters. Men inget funkar vad gäller klientåtkomst till företagsgrejer.

Kör jag en nslookup från LAN-DNS får jag

Citat:

pi@sedns1 ~ $ nslookup remoteapps
;; Got SERVFAIL reply from 10.205.10.60, trying next server
Server: 10.16.32.8
Address: 10.16.32.8#53

Eller om jag bara kör LAN-DNSen som nån form av forwarder (hur man nu gör detta?). Finns egentligen inga LAN-resurser jag behöver komma åt med hostnamn, utan internet och "slussas vidare" ner till företagsnätet är det som behövs.

Visa signatur

5900X | CH8 | 64GB/3600MHz | RTX4080 | SN850 | H2O 2*360 Rad | LG CX48 | Ananda Nano, D30Pro & rHead

Permalänk
Medlem

Hej,

Jag är inte helt undra på vad du är ute efter, men är det något i denna bana?
- Företagsnätverkets DNS-servrar har en intern zon
- Du vill, ifrån LAN:ets DNS-resolver, kunna slå upp i den interna zonen som finns i företagsnätet?
- Och du kan ifrån DNS-resolvern du satt upp, slå upp i den interna zonen i företaget, men det går inte för klienterna som har sin DNS pekad mot LAN:ets DNS-resolver?

Förstår inte riktigt hur du menar med master och slave. Delar du zoner mellan företags DNS:erna och LAN:ets dns, eller har dessa egna konfigurationer? Vilka zoner är med i bilden?

Vad har LAN-DNS:en för nameserver konfigurerad i /etc/resolv.conf?

EDIT:
En duktig vän kanske har lurat ut det. Vi antar att företags-DNS:en är auktoritär server för den interna zonen som du vill kunna slå mot. Din DNS-resolver som du har satt upp för LAN:et kan, som jag tolkar det som, slå mot företagsdns:en på den interna zonen. Det du i sådana fall vill göra för att det ska fungera för klienterna är att forwarda den interna zonen i din DNS-resolver till företagsdns:en. Så när en klient försöker göra en dns-förfrågning mot den konfigurerade dns-servern (vilket är LAN-resolvern), så kommer den forwarda requesten till företagsservrarna istället, och få svar därifrån.

http://www.zytrax.com/books/dns/ch7/zone.html#type

Permalänk
Medlem

Hmm ja alltså det är väl egentligen skitsamma hur det sätts upp - bara det fungerar!

Det fungerar som sagt med en Windows-DNS. Som iofs är på en egen domän med en domäntrust till det andra företagsnätet. Nu ska den bort och jag vill bara ha en simpel DNS som kan slussa klienttrafik vidare dels till internet och dels ner till det andra nätet. Allt är därmed satt till samma domännamn som företagsnätet (tagit bort namnet här).

I LANet kan jag göra vad jag vill mer lr mindre.

Precis, jag vill forwarda till företagsservrarna, men även ut till internet. Då trodde jag att följande dög (där 10.16.32.8 och 10.20.1.22 är företagsDNS):

Citat:

zone "domän.local" {
type master;
forwarders
{
10.16.32.8;
10.20.1.22;
195.67.199.15;
195.67.199.16;
8.8.8.8;
};
file "/etc/bind/domän.local";
allow-transfer {
10.20.1.22;
10.16.32.8;
};
allow-update {any;};
allow-query {any;};
};

zone "10.205.10.in-addr.arpa" {
type master;
file "/etc/bind/rev.domän.local";
};

Visa signatur

5900X | CH8 | 64GB/3600MHz | RTX4080 | SN850 | H2O 2*360 Rad | LG CX48 | Ananda Nano, D30Pro & rHead

Permalänk
Medlem

Om du vill att en viss domain ska forwardas till en specifik server kan du konfigurera det för sig.

Tex.

# DNS For mycompany1 zone "mycompany1.local" { type master; forwarders { 8.8.8.8 8.8.4.4 } } # DNS Forward to mycompany2.local zone "mycompany2.local" { type forward; forward only; forwarders { 10.16.32.8 } }

Förut satt att 10.16.32.8 är namnserver för mycompany2.local

Permalänk
Medlem
Skrivet av robbzor:

Om du vill att en viss domain ska forwardas till en specifik server kan du konfigurera det för sig.

Tex.

# DNS For mycompany1 zone "mycompany1.local" { type master; forwarders { 8.8.8.8 8.8.4.4 } } # DNS Forward to mycompany2.local zone "mycompany2.local" { type forward; forward only; forwarders { 10.16.32.8 } }

Förut satt att 10.16.32.8 är namnserver för mycompany2.local

Gjort precis sådär också, funkar inte från klienterna i "första zonen". Däremot fungerar det på Debian/DNS-burken att hitta mycompany2 resurser, dock med detta felmeddelande:

Citat:

pi@sedns1 ~ $ nslookup resurs.mycompany2.local
;; Got SERVFAIL reply from 10.205.10.60, trying next server
Server: 10.16.32.8
Address: 10.16.32.8#53

Name: resurs.mycompany2.local
Address: 10.20.3.144

Visa signatur

5900X | CH8 | 64GB/3600MHz | RTX4080 | SN850 | H2O 2*360 Rad | LG CX48 | Ananda Nano, D30Pro & rHead

Permalänk
Medlem

Du måste tillåta recursive för mycompany1.local för att de ska få slå upp andra domäner än bara den lokala

Permalänk
Medlem

Håller fortfarande på och tragglar...

Men egentligen... behöver jag hålla på en massa med master och forwarders osv? Jag vill ju egentligen bara slussa vidare ALL trafik till internet resp företagsnätverket?

Visa signatur

5900X | CH8 | 64GB/3600MHz | RTX4080 | SN850 | H2O 2*360 Rad | LG CX48 | Ananda Nano, D30Pro & rHead

Permalänk
Medlem

Jag är fortfarande inte helt hundra på vad vill göra. BIND kan konfigureras på olika sätt beroende på hur du vill att din DNS-server ska fungera. Den kan exempelvis själv göra querys mot root-servrarna och neråt i "kedjan", eller forwarda querys till en annan DNS-server som gör det åt dig. Master och slave blandar du in om du ska hantera en zon. Som jag förstår din beskrivning så hanteras den "privata" zonen av din företags-DNS, så det du bör göra är du att forwarda requests mot den zonen till de servrarna istället. Således bör din nyuppsatta DNS-server inte ha någonting med master och slavar att göra, för du behöver inte zonfilen där.

Testa med denna simpla bind-konfiguration. Jag är trött och kan ha gjort någonting galet (rätta mig gärna) och har dessvärre inte möjlighet att pröva konfigurationen, men den bör fungera. Vad den gör är att den tillåter alla på nätet 10.205.10.0/24 (korrigera om det är felaktigt) att använda dig som resolver. Gör vi inte detta och tillåter alla så kan elaka människor ute på internet nyttja dig att göra dumheter med (DDoS-attacker) - du blir en så kallad "öppen resolver". Så, klienterna har helt enkelt dig konfigurerad som sin DNS-server, och nyttjar dig för att slå upp domäner ute på internet. Försöker du slå upp en adress i zonen domain.local så kommer förfrågningen istället skickas vidare till din företags-DNS.

options { directory "/var/cache/bind"; version "bind"; allow-transfer { none; }; allow-recursion { 10.205.10.0/24; }; }; zone "." { type hint; file "/etc/bind/db.root"; }; zone "domain.local" { type forward; forwarders { 10.20.1.22; 10.16.32.8; }; };

Vill du skicka vidare DNS-förfrågningar ("ut mot internet") till andra namnservrar istället för att slå upp dem själv så bör du kunna göra på detta vis:

options { directory "/var/cache/bind"; version "bind"; forwarders { 8.8.8.8; 8.8.4.4; }; forward only; allow-transfer { none; }; allow-recursion { 10.205.10.0/24; }; }; zone "domain.local" { type forward; forwarders { 10.20.1.22; 10.16.32.8; }; };

Båda konfigurationer cachar uppslagen för snabbare svarstider

EDIT: Glömde type forward; i zone-blocket.

Permalänk
Medlem
Skrivet av jagardaniel:

Jag är fortfarande inte helt hundra på vad vill göra. BIND kan konfigureras på olika sätt beroende på hur du vill att din DNS-server ska fungera. Den kan exempelvis själv göra querys mot root-servrarna och neråt i "kedjan", eller forwarda querys till en annan DNS-server som gör det åt dig. Master och slave blandar du in om du ska hantera en zon. Som jag förstår din beskrivning så hanteras den "privata" zonen av din företags-DNS, så det du bör göra är du att forwarda requests mot den zonen till de servrarna istället. Således bör din nyuppsatta DNS-server inte ha någonting med master och slavar att göra, för du behöver inte zonfilen där.

Testa med denna simpla bind-konfiguration. Jag är trött och kan ha gjort någonting galet (rätta mig gärna) och har dessvärre inte möjlighet att pröva konfigurationen, men den bör fungera. Vad den gör är att den tillåter alla på nätet 10.205.10.0/24 (korrigera om det är felaktigt) att använda dig som resolver. Gör vi inte detta och tillåter alla så kan elaka människor ute på internet nyttja dig att göra dumheter med (DDoS-attacker) - du blir en så kallad "öppen resolver". Så, klienterna har helt enkelt dig konfigurerad som sin DNS-server, och nyttjar dig för att slå upp domäner ute på internet. Försöker du slå upp en adress i zonen domain.local så kommer förfrågningen istället skickas vidare till din företags-DNS.

options { directory "/var/cache/bind"; version "bind"; allow-transfer { none; }; allow-recursion { 10.205.10.0/24; }; }; zone "." { type hint; file "/etc/bind/db.root"; }; zone "domain.local" { type forward; forwarders { 10.20.1.22; 10.16.32.8; }; };

Vill du skicka vidare DNS-förfrågningar ("ut mot internet") till andra namnservrar istället för att slå upp dem själv så bör du kunna göra på detta vis:

options { directory "/var/cache/bind"; version "bind"; forwarders { 8.8.8.8; 8.8.4.4; }; forward only; allow-transfer { none; }; allow-recursion { 10.205.10.0/24; }; }; zone "domain.local" { type forward; forwarders { 10.20.1.22; 10.16.32.8; }; };

Båda konfigurationer cachar uppslagen för snabbare svarstider

EDIT: Glömde type forward; i zone-blocket.

Stort tack, funka kanon!!

Visa signatur

5900X | CH8 | 64GB/3600MHz | RTX4080 | SN850 | H2O 2*360 Rad | LG CX48 | Ananda Nano, D30Pro & rHead