10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 1/44 Domain Name System Áron Csendes Universität Szeged, Ungarn
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 2/44 Gliederung DNS in Theorie DNS-Klient Einstellung DNS Benutzung: Klient-Seite DNS-Server Einstellung Dynamisches DNS
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 3/44 Domain Name {System Service} verteilte Datenbank Milliarden von IP-Adressen (und viele haben Rechnernamen) Hunderte von Millionen Benutzer täglich Mehrere Milliarden Abfragen pro Tag Millionen von Updates täglich die größte Datenbank an unserem Planet ohne DNS geht im Internet nichts mehr
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 4/44 Domain Name {System Service} Menschen bemerken Namen leichter als Nummer Programme benutzen auch oft Strings statt IP-Adressen Aber das Internet-Protokoll arbeitet mit 4-Byte Adressen Also wir brauchen eine Name IP-Adresse Abbildung (und umgekährt wäre es auch sehr nützlich) In ARPANET-Zeiten: eine zentrale hosts.txt Datei Seit 1983, dank Paul Mockapetris: hierarchische, domänbasierte, verteilte Datenbank
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 5/44 DNS Namensraum: Domäne Generic Countries int com edu gov mil org net jp us nl... sun yale acm ieee ac co oce vu eng cs eng jack jill keio nec cs ai linda cs csl flits fluit robot pc24 Andrew S. Tanenbaum
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 6/44 DNS Namensraum: Zonen Generic Countries int com edu gov mil org net jp us nl... sun yale acm ieee ac co oce vu eng cs eng jack jill keio nec cs ai linda cs csl flits fluit robot pc24 Andy Tanenbaum
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 7/44 Rechnernamen Klein/Großbuchstaben-unempfindlich sollten eigentlich mit. (Punkt) beenden (relativ, absolut)
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 8/44 resource records (DNS Einträge) Jede Zeile hat diese Syntax: Domänname Time-To-Live Klasse Typ Wert AST
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 9/44
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 10/44 DNS Abfragen Originator 1 VU CS name server 2 Edu name server 3 Yale name server 4 Yale CS name server flits.cs.vu.nl 8 cs.vu.nl edu-server.net yale.edu cs.yale.edu 7 6 5 AST authoritative record: Angabe stammt vom zoneeigenen Server caching: Namenserver merken sich die Antworten Redundanz: es gibt mehrere Server rekursive Abfrage: wenn selbst nicht weisst, fragt der Namenserver selbst nach sagt uns wo wir nachfragen können
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 11/44 Technische Einzelheiten Port 53, meistens mit UDP, binär kodiert. (Effizienz!) TCP wird für zone transfers benutzt (mit Protokoll AXFR). +---------------------------------------------------+ Header OPCODE=SQUERY, RESPONSE, AA +---------------------------------------------------+ Question QNAME=SRI-NIC.ARPA., QCLASS=IN, QTYPE=A +---------------------------------------------------+ Answer SRI-NIC.ARPA. 86400 IN A 26.0.0.73 86400 IN A 10.0.0.51 +---------------------------------------------------+ Authority <empty> +---------------------------------------------------+ Additional <empty> +---------------------------------------------------+
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 12/44 DNS-Klient Einstellung Konfigurationsdateien unter.*n.x /etc/hosts /etc/hostname /etc/host.conf /etc/nsswitch.conf /etc/resolv.conf
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 13/44 DNS-Klient Einstellung /etc/hosts Wie in HOSTS.TXT: manuelle Einstellung von Rechneradressen und Rechnernamen. Zum Beispiel: 127.0.0.1 localhost.localdomain localhost 111.2.3.4 rechner.beispiel.net /etc/hostname Die Name des eigenen Rechners steht drin.
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 14/44 DNS-Klient Einstellung /etc/host.conf Konfigurationsdatei der resolver library. Stellt z. B. die reihenfolge der Auflösungsversuche ein. Wichtigste Schlüsselwörter: order Reihenfolge der Auflösungmethoden multi ob alle oder nur eine Adresse zurückgegeben wird Zum Beispiel: order hosts, bind multi on
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 15/44 DNS-Klient Einstellung /etc/nsswitch.conf Eine Datei die die Einstellungen der Systemdatenbanken und Name Service Switch leistet. Hier kann man einstellen, was das resolver library beim Auflösen von Rechnernamen machen soll. Zum Beispiel: #... hosts: files dns [NOTFOUND=return] nis #...
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 16/44 DNS-Klient Einstellung /etc/resolv.conf Enthält die IP-Adressen der DNS-Server, sowie die Name unseres Domains: domain search nameserver domain beispiel.net nameserver 1.1.1.1 nameserver 2.2.2.2 unsere Domainname: so können lokale Rechner auch mit ihre kurze Name benennt werden. Liste von Domains. Die Möglichkeiten werden von links nach rechts probiert. wenn eine Zeile mit diesem Wort beginnt, enthält sie die IP-Adresse eines DNS-Servers:
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 17/44 DNS-Funktionen in bash-scripts [...]$ host heise.de heise.de has address 193.99.144.80 heise.de mail is handled by 10 relay.heise.de. [...]$ nslookup heise.de Server: 131.188.30.106 Address: 131.188.30.106#53 Non-authoritative answer: Name: heise.de Address: 193.99.144.80 [...]$ host -t txt cs.vu.nl cs.vu.nl descriptive text "Vrije Universiteit - Mathematics and Computer Science" [...]$ host -t hinfo faui05.informatik.uni-erlangen.de faui05.informatik.uni-erlangen.de host information "PC" "Linux"
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 18/44 [...]$ host -vv -t mx cs.vu.nl Trying "cs.vu.nl" ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52654 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 5 ;; QUESTION SECTION: ;cs.vu.nl. IN MX ;; ANSWER SECTION: cs.vu.nl. 85390 IN MX 1 mail.few.vu.nl. ;; AUTHORITY SECTION: cs.vu.nl. 67241 IN NS top.cs.vu.nl. cs.vu.nl. 67241 IN NS solo.cs.vu.nl. cs.vu.nl. 67241 IN NS star.cs.vu.nl. cs.vu.nl. 67241 IN NS ns.vu.nl. ;; ADDITIONAL SECTION: ns.vu.nl. 35850 IN A 130.37.129.4 top.cs.vu.nl. 67241 IN A 130.37.20.4 solo.cs.vu.nl. 85390 IN A 130.37.20.5 star.cs.vu.nl. 35836 IN A 192.31.231.42 star.cs.vu.nl. 35836 IN A 130.37.24.6 Received 204 bytes from 131.188.24.2#53 in 7 ms
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 19/44 DNS-Funktionen in der Programmierungssprache PHP gethostbyname(), gethostbynamel(), gethostbyaddr() <?php $ip = gethostbyname( www.met.hu ); echo $ip; echo "Du bist:".gethostbyaddr($remote_addr)."\n\n";?>
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 20/44 DNS-Funktionen in der Programmierungssprache C gethostbyname(), gethostbyaddr() #include <stdio.h> #include <netdb.h> #include <netinet/in.h> int main(int argc, char *argv[]){ struct hostent *h; if ((h=gethostbyname(argv[1]))==null)exit(1); printf("name: %s\n", h->h_name); printf("ip : %s\n", inet_ntoa(*((struct in_addr*)h->h_addr))); return 0; }
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 21/44 DNS-Funktionen in Java Package java.net, class InetAddress // Determines the IP address of a host, // given the host s name. static InetAddress getbyname(string host) // Gets the host name for this IP address. String gethostname()
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 22/44 DNS-Funktionen in Perl ($cname, $aliase, $adr_typ, $laenge, @adrss) = gethostbyname($name); #!/usr/bin/perl $name = "faui05.informatik.uni-erlangen.de"; ($adresse) = (gethostbyname($name))[4]; print(join(".", unpack("c4", $adresse)), "\n");
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 23/44 DNS-Dienstleistungen im Web www.netcraft.com Webserver Suche SearchDNS: Domäne Suche www.dnsstuff.com DNS und Webhosting DNS Suche, Geschwindigkeitsmessung IP-geolocate Ping, Traceroute WHOIS Spam lookup...
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 24/44 DNS-Server Einstellung bind beschaffen bind steht für Berkeley Internet Name Domain Internet Systems Consortium: http://www.isc.org/index.pl?/sw/bind/ wget ftp://ftp.isc.org/isc/bind9/9.3.1/bind-9.3.1.tar.gz bind installieren tar -zxvf bind-9.3.1.tar.gz cd bind-9.3.1./configure; make; make install
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 25/44 Einstellung von bind Konfigurationsdatei: /etc/named.conf C-Syntax Einstellungsdatei des Slave-Servers sirius.cab.u-szeged.hu: ACL: Access Control List: damit kann man eine Abkürzung für eine Zone definieren um Zugriff zu regulieren. acl cab{ }; 160.114.54/23; acl local{ 127/8; //ist gleich: 127.0.0.0-127.255.255.255 };
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 26/44 Optionen für named options { directory "/var/named"; //wo die DNS-Daten sind allow-query{ //wer den Server benutzen darf local; cab; }; #noch eine Möglichkeit: #"recursion no" ODER "allow-recursion" }; Logging-Optionen logging { // was geloggt wird category lame-servers { null; }; //don t log };
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 27/44 Angaben zur root Zone named.root enthält IP-Adressen für die DNS-Servers der. Zone. zone "." { type hint;//das benutzt man nur für diese Zone file "named.root"; }; Angaben zur localhost Zone named.local ist Zonefile für localhost. zone "0.0.127.in-addr.arpa"{ type master; file "named.local"; };
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 28/44 Informationen zur Zone "u-szeged.hu": Wir als slave haben hier nur eine Kopie. Master Server ist 160.114.8.16. zone "u-szeged.hu"{ type slave; file "sec/u-szeged.hu"; masters{ 160.114.8.16; }; notify no; };
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 29/44 Angaben für "Reverse Query" (IP-Adresse Domänname) zone "114.160.in-addr.arpa"{ type slave; file "sec/u-szeged.hu.rev"; masters{ 160.114.8.16; }; notify no; };
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 30/44 "zone files": die DNS-Datenbanken named.root Sie befinden sich meistens in /var/named/, oder in /etc/bind/. Zum Beispiel: /var/named/named.root: ;This file holds the information on root name servers needed to ;initialize cache of Internet domain name servers ;(e.g. reference this file in the "cache. <file>" ;configuration file of BIND domain name servers). ; ;formerly NS.INTERNIC.NET. 3600000 IN NS A.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 31/44 /var/named/named.root ; formerly NS1.ISI.EDU. 3600000 NS B.ROOT-SERVERS.NET. B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201 ; ;... ; ; operated by WIDE. 3600000 NS M.ROOT-SERVERS.NET. M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33 ; End of File
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 32/44 /var/named/named.local zonefile für local loopback interface @ IN SOA localhost. root.localhost. ( 1997022700 ; serial 28800 ; refresh 14400 ; retry 3600000 ; expire 86400 ; default_ttl ) @ IN NS localhost. 1 IN PTR localhost.
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 33/44 Master Server mit Subdomäne-Delegation Situation: Domäne Name : example.com Domäne Host Name : bill.example.com Subdomäne Name : us.example.com Subdomäne Rechner Name : ftp.us.example.com
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 34/44 named.conf options {... allow-transfer {"none";};... }; zone "example.com" in{ type master; file "master/master.example.com"; // explicitly allow slave allow-transfer {192.168.0.4;}; }; // optional - we act as the slave (secondary) for the delegated domain zone "us.example.com" IN { type slave; file "slave/slave.us.example.com"; masters {10.10.0.24;}; };
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 35/44 master/master.example.com ; zone fragment for example.com ; name servers in the same zone $TTL 2d ; default TTL is 2 days $ORIGIN example.com. @ IN SOA ns1.example.com. hostmaster.example.com. ( 2003080800 ; serial number 2h ; refresh = 2 hours 15M ; update retry = 15 minutes 3W12h ; expiry = 3 weeks + 12 hours 2h20M ; minimum = 2 hours + 20 minutes ) ; main domain name servers IN NS ns1.example.com. IN NS ns2.example.com. ; main domain mail servers IN MX 10 mail.example.com. ns1 IN A 192.168.0.3 ns2 IN A 192.168.0.4 mail IN A 192.168.0.5 bill IN A 192.168.0.6
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 36/44 master/master.example.com (Subdomäne Definition) ; sub-domain definitions $ORIGIN us.example.com. @ IN NS ns3.us.example.com. ; the next name server points to ns1 above IN NS ns1.example.com. ; sub-domain address records for name server only - glue record ns3 IN A 10.10.0.24 ; glue record ; the record above could have been written as ; ns3.us.example.com. IN A 10.10.0.24 if it s less confusing
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 37/44 Subdomäne named.conf options {... allow-transfer {"none";};... }; zone "us.example.com" in{ type master; file "master/master.us.example.com"; // explicitly allow slave allow-transfer {192.168.0.3;}; };
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 38/44 Subdomäne master.us.example.com ; zone fragment for sub-domain us.example.com ; name servers in the same zone $TTL 2d ; default TTL = 2 days $ORIGIN us.example.com. @ IN SOA ns3.us.example.com. hostmaster.us.example.com.( 2003080800 ;serial number 2h ;refresh = 2 hours 15M ;update retry = 15 minutes 3W12h ;expiry = 3 weeks + 12 hours 2h20M ;minimum = 2 hours + 20 minutes ) ; sub-domain name servers IN NS ns3.us.example.com. IN NS ns1.example.com. ; see notes below ; sub-domain mail server IN MX 10 mail.us.example.com. ; above record could have been written as ; IN MX 10 mail
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 39/44 Subdomäne master.us.example.com ; A records for name servers above ns3 IN A 10.10.0.24 ns1.example.com. IN A 192.168.0.3 ; glue record ; A record for mail server above mail IN A 10.10.0.25 ; next record defines our ftp server ftp IN A 10.10.0.28 ; the record above could have been written as ; ftp.us.example.com. A 10.10.0.24 if it s less confusing... ; other sub-domain records...
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 40/44 bind Sicherheitsmassnahme: chroot Benutzer(gruppe) für bind: [...]$ groupadd -g 53 named [...]$ useradd -u 53 -g named \ -c "bind user mit chroot" -d /var/named/jail -m named Verzeichnisstruktur für bind: [...]$ cd ~named [...:/var/named/jail]$ mkdir -p {dev,etc,var/run,var/named/slave} [...:/var/named/jail]$ chown named:named var/named/slave [...:/var/named/jail]$ cp -Rav /var/named/data var/named [...:/var/named/jail]$ cp -av /dev/{null,random} dev/ [...:/var/named/jail]$ cp -av /etc/{localtime,named.conf,rndc.key} etc/ [...:/var/named/jail]$ chown root:root. [...:/var/named/jail]$ chmod 0755. [...:/var/named/jail]$ chown named:named var/named/data [...:/var/named/jail]$ chmod 0700 var/named/data [...:/var/named/jail]$ chown named:named var/run [...]$ /usr/sbin/named -u named -t /var/named/jail -c /etc/named.conf
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 41/44 Dynamisches DNS manche ISPs wächseln oft unsere IP-Adressen die Rechnername vom ISP wird dabei auch geändert die wächselnde IP muss immer mit unserem festen Domänname verbunden sein DynDNS Anbieters führen je ein Datenbank Time-To-Live soll sehr niedrig sein (nur wenige Sekunden) Benutzername/Passwort zur automatische IP Einstellung z. B.: DynDns.org, EasyDns.com, No-IP.com
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 42/44 Informationsquellen zum Thema DNS BIND 9 Administrator Reference Manual: www.csd.uwo.ca/staff/magi/doc/bind9/ man dig man host man bind man named man hostname man host.conf man resolv.conf man nsswitch.conf man gethostbyname RFC 1034, RFC 1035,... www.dnsstuff.com/ www.dns.net/dnsrd/
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 43/44 DNS Tricks und schlechte Ideen ;-) banner killing /etc/hosts : 127.0.0.1 ad.doubleclick.net /etc/host.conf : order hosts,nis,bind Spam Weiterleitung wir.de : spammich.wir.de 86400 IN MX 1 localhost wir.de : spamsie.wir.de 86400 IN MX 1 mail.sie.de
10. Januar, 2006. Seminar zu ausgewählten Web(Site) Engineering Themen (SemWebSe) 44/44 Vielen Dank für die Aufmerksamkeit! Fragen?