Att sätta upp en egen DNS server med BIND

Trädvy Permalänk
Medlem
Plats
Skåne
Registrerad
Feb 2002

Att sätta upp en egen DNS server med BIND

Hej.
Jag har försökt hitta en tutorial eller en guide som beskriver och förklarar hur man går tillväga för att sätta upp en fungerande DNS server mha BIND i Linux.

Jag har svårt att läsa mig till och förstå manualer och har läst man bind och även sökt på google.se och tom här i forumet.

Jag söker alltså efter en mer pedagogisk sida eller förklaring till hur man går tillväga.

Så om någon känner sig manad att skriva en förklaring i större drag (om man nu inte orkar lägga ner den tiden på en genomgående guide), vore jag väldigt tacksam.

Mvh //Magnus

P.s jag är medveten om att ISP's inte tillåter slutanvändaren att själv styra en reverse dns. Men så är inte fallet här.

#1: Intel i7-2600K | 8GB RAM | 780 GTX Ti | 8x Samsung EVO raid-10 LSI 9271-8i
#2: Dell XPS 1330
http://www.excellent-servers.se - http://www.excellent-hosting.se

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jul 2002

Lite konfigurationsfils-skelett att utgå ifrån:

named.conf (ligger oftast i /etc/ eller /etc/named/):

options { directory "/var/named"; //Tillåt alla att fråga om vad som helst allow-query { any; }; allow-transfer { any; }; allow-recursion {any; }; }; //Rot-DNS:er zone "." IN { type hint; file "named.ca"; }; //Nån slags DNS-zon för localhost som man tydligen ska ha zone "localhost" IN { type master; file "localhost.zone"; allow-update { none; }; }; //En framåtzon (för 1.2.3.0/25) zone "3.2.1.in-addr.arpa" IN { type master; file "1.2.3"; }; //Och en bakåtzon zone "mindomän.se" IN { type master; file "mindomän.se"; };

Zonfil för framåtzonen (mindomän.se, enligt named.conf ligger den i /var/named/)

$ORIGIN mindomän.se. $TTL 86400 IN SOA min.dns.com. epost.adre.ss ( 2005080101 ; serial 7200 ; refresh (2 hours) 3600 ; retry (1 hour) 604800 ; expire (1 week) 3600 ; minimum (1 hour) ) IN NS min.dns.com. IN NS enannan.dns.se. IN MX 10 mail.mindomän.se. adam IN A 1.2.3.1 bertil IN A 1.2.3.2 caesar IN A 1.2.3.3 www IN CNAME bertil mail IN CNAME caesar tryggve IN CNAME ulme.gummiman.se. ;Skapar 100 entries utan att du behöver skriva 100 rader... $GENERATE 100-199 dhcp$ IN A 1.2.3.$

Edit:
Zonfiler för vanliga framlänges-zoner är nog det som folk gör mest galenskaper i. Till att börja med, "IN" som står här och där står för "internet". Det finns några andra alternativ där, som i stort sett aldrig används. IN kan utelämnas, det är defaultvärdet ändå.

Saker som börjar med $ är "magiska ord" i zonfiler. $TTL betyder "time-to-live", hur länge man får cacha data ur zonen innan man måste fråga igen. Det går att sätta TTL för varje enskild post.
"$ORIGIN mindomän.se." betyder "alla namn som inte slutar med punkt ska sluta med mindomän.se.". De namn som står nedan utan punkt är alltså egentligen t.ex. "adam.mindomän.se.".
$GENERATE är ett bra "makro" att ta till om man ska ha flera namn uppbyggda enligt samma mönster.

I SOA-posten längst upp (Start Of Authority) står dels en "auktoritativ DNS" för zonen (vanligtvis någon av de utpekade DNS:erna, oftast väljer man sin primary), dels en epostadress där @ är utbytt mot en punkt.

@ är nämligen också ett magiskt tecken, det betyder "den domän zonfilen gäller för", i det här fallet "mindomän.se.". Man kan m.a.o. skriva
$ORIGIN @ överst i i stort sett alla zonfiler.

Zonfil för bakåtzonen (1.2.3)

$TTL 86400 3.2.1.in-addr.arpa. IN SOA min.dns.com. epost.adre.ss ( 2005080101 ; serial 28800 ; refresh (8 hours) 7200 ; retry (2 hours) 604800 ; expire (1 week) 86400 ; minimum (1 day) ) NS min.dns.com. $ORIGIN 3.2.1.in-addr.arpa. 1 PTR adam.mindomän.se. 2 PTR bertil.mindomän.se. 3 PTR caesar.mindomän.se. 4 PTR bs.gummiman.se. 5 ;Motsvarande snabbkommando för 100 PTR-poster $GENERATE 100-199 $ PTR dhcp$.mindomän.se.

Sen är det väl en miljard saker man borde säga om de där, men jag vet inte riktigt var jag ska börja.

Min dator är tuffare än din.

Trädvy Permalänk
Medlem
Registrerad
Nov 2004

Jag rekommenderar boken "DNS & Bind" av Albitz och Liu. Den går igenom allt på ett utförligt och lättbegripligt sätt. Jag tror tyvärr inte att det går att förklara allt på kort utrymme.. möjligen kan du få igång något som (eventuellt) fungerar, dock utan att förstå varför.

Trädvy Permalänk
Medlem
Plats
Skåne
Registrerad
Feb 2002

Ok..
Jag vill ju gärna lära mig något utav det hela med..
Får kanske ta mig en titt på den boken..

Synd att det ska vara så himla komplicerat..

Mvh //Magnus

#1: Intel i7-2600K | 8GB RAM | 780 GTX Ti | 8x Samsung EVO raid-10 LSI 9271-8i
#2: Dell XPS 1330
http://www.excellent-servers.se - http://www.excellent-hosting.se

Trädvy Permalänk
Medlem
Plats
Mölndal
Registrerad
Jul 2005

Har gjort en liten tutorial för att konfigurera en caching-only DNS server, du kan börja med den och när du fått den att fungera så är det enkelt att lägga till zoner (domäner).

http://www.gunnard.se/network/bind.phtml

Kriga mot min brute: http://gunnard.se.mybrute.com om du vågar :D

Trädvy Permalänk
Medlem
Plats
Skåne
Registrerad
Feb 2002

Det där förstår jag ganska bra (tror jag).
Jag har läst lite på RIPE's hemsida..(och på andra isc.org bla)

Hur gör jag för att lägga in så tex 192.168.0.15 (internt) 212.181.76.32 (externt) blir mindomän.se ??

Mvh //Magnus

#1: Intel i7-2600K | 8GB RAM | 780 GTX Ti | 8x Samsung EVO raid-10 LSI 9271-8i
#2: Dell XPS 1330
http://www.excellent-servers.se - http://www.excellent-hosting.se

Trädvy Permalänk
Medlem
Plats
Mölndal
Registrerad
Jul 2005

Har byggt ut min tutorial med hur man lägger up en zone och en reverse zone.

I ditt fall behöver du 2 DNS'er en som är åtkomlig från insidan och som pekar på dina interna ip-adresser och en DNS server som bara är åtkomlig från utsidan och som pekar på din externa ip-adress.

Jag har lagt up min domän hos zoneedit (kostar gratis) så att ni använder deras DNS servrar när ni accessar min webserver eller skickar mail till mig, men internt i mitt nät använder jag en egen DNS server som ger mig dom interna ip-adresserna som inte är åtkomlig utifrån.

Kriga mot min brute: http://gunnard.se.mybrute.com om du vågar :D

Trädvy Permalänk
Medlem
Plats
Skåne
Registrerad
Jun 2003
Citat:

Ursprungligen inskrivet av ViZioN
Det där förstår jag ganska bra (tror jag).
Jag har läst lite på RIPE's hemsida..(och på andra isc.org bla)

Hur gör jag för att lägga in så tex 192.168.0.15 (internt) 212.181.76.32 (externt) blir mindomän.se ??

Mvh //Magnus

Du kan testa det som finns på denna sida. det funkar rätt bra för mig iaf
http://www.hansenonline.net/Networking/bind.html
zone filerna ser precis samma ut som tidigare .. men det är olika filer.. en för det interna och en för externa..

Trädvy Permalänk
Medlem
Plats
Sthlm
Registrerad
Nov 2003

Om du vill ha lite grafisk hjälp istället för att pula med text editorn i config filerna för BIND så finns det ett program som heter webmin där man kan confa BIND DNS + en massa andra saker på din linux burk.

webmin:
http://www.webmin.com/

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jul 2002
Citat:

Ursprungligen inskrivet av GunnarD
I ditt fall behöver du 2 DNS'er en som är åtkomlig från insidan och som pekar på dina interna ip-adresser och en DNS server som bara är åtkomlig från utsidan och som pekar på din externa ip-adress.

Det går att göra det med två separata named-processer (med varsin config-fil) som lyssnar på olika interface, men det går också att låta samma named ge olika svar åt olika håll med "view"-grejer. Blir oftast enklare att hålla reda på med bara en uppsättning config-filer, och en process att bängla med. Tillexempel:

acl "interna" { 192.168.0.0/16; 127.0.0.0/24; }; view "internt" { match-clients { interna; }; zone "intern.zon"{ type master; file "internt.jox"; }; }; view "externt" { match-clients { any; }; //Allt annat tjossan här };

intern.zon kommer bara synas från de "interna" näten. Man kan också ha samma zon men med olika zonfiler (eller, om man använder $ORIGIN och @ rätt, ha samma zonfil för två olika zoner).

Min dator är tuffare än din.

Trädvy Permalänk
Medlem
Plats
Mölndal
Registrerad
Jul 2005

view hadde jag glömt, vet du i vilken version av BIND den kom?

Kriga mot min brute: http://gunnard.se.mybrute.com om du vågar :D

Trädvy Permalänk
Medlem
Plats
Skåne
Registrerad
Feb 2002

Om man bara har externa (så kallade skarpa) ip-adresser, hur gör man då?
Räcker det med 1 DNS server då lr?
Eller ska man ha 2st ifall den ena går ner?

Mvh //Magnus

#1: Intel i7-2600K | 8GB RAM | 780 GTX Ti | 8x Samsung EVO raid-10 LSI 9271-8i
#2: Dell XPS 1330
http://www.excellent-servers.se - http://www.excellent-hosting.se

Trädvy Permalänk
Medlem
Plats
Mölndal
Registrerad
Jul 2005

Är det en domän som skall vara åtkomlig från "Internet" så kräver dom flesta att man har 2st DNS servrar och då helst inte på dynamiska adresser.

Kriga mot min brute: http://gunnard.se.mybrute.com om du vågar :D

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jul 2002
Citat:

Ursprungligen inskrivet av GunnarD
view hadde jag glömt, vet du i vilken version av BIND den kom?

Jag har för mig att det kom i BIND 9.

Citat:

Ursprungligen inskrivet av ViZioN
Om man bara har externa (så kallade skarpa) ip-adresser, hur gör man då?

Du kan fortfarande ha en egen "privat" zon för bara dina egna maskiner om du vill, men man kan precis lika gärna ha en riktig domän och använda den utåt "på riktigt". Det är väldigt lite poäng i att hålla DNS-namn hemliga (och om man gör sin säkerhet beroende av det så har man tänkt fel).

Citat:

Ursprungligen inskrivet av GunnarD
Är det en domän som skall vara åtkomlig från "Internet" så kräver dom flesta att man har 2st DNS servrar och då helst inte på dynamiska adresser.

Det finns ett gäng "gratis DNS"-tjänster på nätet. Man kan köra sin egen burk som master och låta de andra hämta därifrån. Om man bara har deras som utpekade DNS:er (man kan ju ta dem från olika) kan man t.o.m. ha sin egen server på en dynamisk adress (eftersom det bara är slavDNS:erna som ska nå den, inte hela internätet, och de cachar den information de fick senast ifall hemmaburken är nere en stund).

Några av dem:
http://soa.granitecanyon.com/
http://freedns.afraid.org/
http://www.zoneedit.com/

Min dator är tuffare än din.

Trädvy Permalänk
Medlem
Plats
Skåne
Registrerad
Feb 2002

Stack: Läser du dina PM här på Swec?

Vad ska man med "interna"/"privata" zoner till ?
Jag har 256st statiska ip-adresser tilldelade till mig..så det är alltså inte dynamiska.
Och ja, de ska vara åtkomliga från internet, om ip-adressen är 83.192.78.210 så ska reverse-DNS'en vara mindomän.se.

Kan man göra detta med BIND9 ?

Mvh //Magnus

#1: Intel i7-2600K | 8GB RAM | 780 GTX Ti | 8x Samsung EVO raid-10 LSI 9271-8i
#2: Dell XPS 1330
http://www.excellent-servers.se - http://www.excellent-hosting.se

Trädvy Permalänk
Medlem
Plats
Mölndal
Registrerad
Jul 2005

Ja.

Privata/Interna zoner är bra att ha om man inte vill publicera alla DNS records som man har satt upp för internt bruk ut på Internet.

Ex. om man har en DNS som också sköter en AD domän så vill man nog inte att all information som AD'et lägger in i DNS'en skall vara åtkomlig från Internet.

Kriga mot min brute: http://gunnard.se.mybrute.com om du vågar :D

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jul 2002
Citat:

Ursprungligen inskrivet av ViZioN
Stack: Läser du dina PM här på Swec?

Vad ska man med "interna"/"privata" zoner till ?
Jag har 256st statiska ip-adresser tilldelade till mig..så det är alltså inte dynamiska.

NU gör jag det.
Jag har alltid trott att jag har haft nån slags "du har ett meddelande"-notifiering på, men tydligen inte. Har petat igång det nu...

Jag har två interna zoner för maskinerna på mitt NAT:ade "hemmanät" (har bara en extern IP). En för framlängesuppslagning av domänen local (maskinerna heter typ foo.local), en för baklängesuppslagning av 192.168.0.0. Båda zonerna tillåter dynamisk uppdatering (av maskiner som kör DHCP). Jag skulle kunna "publicera" dessa zoner öppet på nätet (låser jag bara ner dynamisk uppdatering till mitt nät är det ingen fara), men jag låter bli bara för att jag kan.

Om du har ett helt /24-nät med statiska adresser så har du nog så du klarar dig i det här fallet. Teoretiskt klarar man sig bra med _en_ DNS-server, men de flesta toppdomäner kräver att man har (minst) två. Du skulle kunna sätta upp två dns-servrar på olika maskiner, eller "fuska" och ge din DNS-serverburk två olika IP-adresser. Säkrast är dock att ha en andra DNS någon helt annanstans, för då kommer DNS för din domän att funka även om din lina går ner. Å andra sidan, om alla hosts den tillhandahåller namn för finns på ditt nät spelar ju det egentligen ingen roll.

Min dator är tuffare än din.

Trädvy Permalänk
Medlem
Plats
Skåne
Registrerad
Feb 2002

Hur lång tid brukar det ta innan ändringarna tas i bruk?
Nedan följer min config..

$TTL 3600
@ IN SOA dns1.domän.toppdomän. epost.addr.ss. (
2005080505 ; Serial
3600 ; Refresh after 3 hours
3600 ; Retry after 1 hour
604800 ; Expire after 1 week
86400 ) ; Minimum TTL of 1 day

@ IN NS dns1.domän.toppdomän.
@ IN NS dns2.domän.toppdomän.

$ORIGIN @

2 IN PTR subdomän.domän.toppdomän.
$GENERATE 3-8 $ PTR domän.toppdomän.

Är det något som är fel i denna?
Givetvis använder jag inte den data som jag skrivit här.
epost.addr.se är en emailadress, och domän.toppdomän är tex sunet.se

Mvh //Magnus

#1: Intel i7-2600K | 8GB RAM | 780 GTX Ti | 8x Samsung EVO raid-10 LSI 9271-8i
#2: Dell XPS 1330
http://www.excellent-servers.se - http://www.excellent-hosting.se

Trädvy Permalänk
Medlem
Plats
Mölndal
Registrerad
Jul 2005

Frågar du dns1.domän.toppdomän och dns2.domän.toppdomän så skall dom svara direkt om dom är rätt uppsatta.

För att informationen skall sprida sig "ut på Internet" så kan det ta ett tag, brukar räkna med 1 dygn.

PM'a mig eller maila mig den riktiga domänen så kan jag kontrollera den.

Kriga mot min brute: http://gunnard.se.mybrute.com om du vågar :D

Trädvy Permalänk
Medlem
Plats
Skåne
Registrerad
Feb 2002

Du har PM!

//Magnus

#1: Intel i7-2600K | 8GB RAM | 780 GTX Ti | 8x Samsung EVO raid-10 LSI 9271-8i
#2: Dell XPS 1330
http://www.excellent-servers.se - http://www.excellent-hosting.se