1 / 34

DNS: Domain Name System

People: many identifiers: SSN, name, passport # Internet hosts, routers: IP address (32 bit) - used for addressing datagrams “name”, e.g., ww.yahoo.com - used by humans Q: map between IP addresses and name ?. Domain Name System:

Samuel
Download Presentation

DNS: Domain Name System

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. People: many identifiers: SSN, name, passport # Internet hosts, routers: IP address (32 bit) - used for addressing datagrams “name”, e.g., ww.yahoo.com - used by humans Q: map between IP addresses and name ? Domain Name System: distributed database implemented in hierarchy of many name servers application-layer protocol host, routers, name servers to communicate to resolvenames (address/name translation) note: core Internet function, implemented as application-layer protocol complexity at network’s “edge” DNS: Domain Name System M2-Internet

  2. Why not centralize DNS? single point of failure traffic volume distant centralized database maintenance doesn’t scale! DNS services hostname to IP address translation host aliasing Canonical, alias names mail server aliasing load distribution replicated Web servers: set of IP addresses for one canonical name DNS M2-Internet

  3. Root DNS Servers org DNS servers edu DNS servers com DNS servers poly.edu DNS servers umass.edu DNS servers pbs.org DNS servers yahoo.com DNS servers amazon.com DNS servers Distributed, Hierarchical Database Client wants IP for www.amazon.com; 1st approx: • client queries a root server to find com DNS server • client queries com DNS server to get amazon.com DNS server • client queries amazon.com DNS server to get IP address for www.amazon.com M2-Internet

  4. contacted by local name server that can not resolve name root name server: contacts authoritative name server if name mapping not known gets mapping returns mapping to local name server DNS: Root name servers a Verisign, Dulles, VA c Cogent, Herndon, VA (also LA) d U Maryland College Park, MD g US DoD Vienna, VA h ARL Aberdeen, MD j Verisign, ( 21 locations) k RIPE London (also 16 other locations) i Autonomica, Stockholm (plus 28 other locations) m WIDE Tokyo (also Seoul, Paris, SF) e NASA Mt View, CA f Internet Software C. Palo Alto, CA (and 36 other locations) 13 root name servers worldwide b USC-ISI Marina del Rey, CA l ICANN Los Angeles, CA M2-Internet

  5. TLD and Authoritative Servers • Top-level domain (TLD) servers: • responsible for com, org, net, edu, etc, and all top-level country domains uk, fr, ca, jp. • Network Solutions maintains servers for com TLD • Educause for edu TLD • Authoritative DNS servers: • organization’s DNS servers, providing authoritative hostname to IP mappings for organization’s servers (e.g., Web, mail). • can be maintained by organization or service provider M2-Internet

  6. Local Name Server • does not strictly belong to hierarchy • each ISP (residential ISP, company, university) has one. • also called “default name server” • when host makes DNS query, query is sent to its local DNS server • acts as proxy, forwards query into hierarchy M2-Internet

  7. Host at cis.poly.edu wants IP address for gaia.cs.umass.edu local DNS server dns.poly.edu DNS name resolution example root DNS server 2 3 TLD DNS server 4 5 • iterated query: • contacted server replies with name of server to contact • “I don’t know this name, but ask this server” 6 7 1 8 authoritative DNS server dns.cs.umass.edu requesting host cis.poly.edu gaia.cs.umass.edu M2-Internet

  8. root DNS server 2 3 6 7 TLD DNS server 4 local DNS server dns.poly.edu 5 1 8 authoritative DNS server dns.cs.umass.edu requesting host cis.poly.edu gaia.cs.umass.edu DNS name resolution example • recursive query: • puts burden of name resolution on contacted name server • heavy load? M2-Internet

  9. once (any) name server learns mapping, it caches mapping cache entries timeout (disappear) after some time TLD servers typically cached in local name servers Thus root name servers not often visited update/notify mechanisms under design by IETF RFC 2136 http://www.ietf.org/html.charters/dnsind-charter.html DNS: caching and updating records M2-Internet

  10. DNS: distributed db storing resource records (RR) Type=NS name is domain (e.g. foo.com) value is hostname of authoritative name server for this domain RR format: (name, value, type, ttl) DNS records • Type=A • name is hostname • value is IP address • Type=CNAME • name is alias name for some “canonical” (the real) name www.ibm.com is really servereast.backup2.ibm.com • value is canonical name • Type=MX • value is name of mailserver associated with name M2-Internet

  11. DNS protocol :queryand reply messages, both with same message format DNS protocol, messages • msg header • identification: 16 bit # for query, reply to query uses same # • flags: • query or reply • recursion desired • recursion available • reply is authoritative M2-Internet

  12. DNS protocol, messages Name, type fields for a query RRs in response to query records for authoritative servers additional “helpful” info that may be used M2-Internet

  13. Inserting records into DNS • example: new startup “Network Utopia” • register name networkuptopia.com at DNS registrar (e.g., Network Solutions) • provide names, IP addresses of authoritative name server (primary and secondary) • registrar inserts two RRs into com TLD server: (networkutopia.com, dns1.networkutopia.com, NS) (dns1.networkutopia.com, 212.212.212.1, A) • create authoritative server Type A record for www.networkuptopia.com; Type MX record for networkutopia.com • How do people get IP address of your Web site? M2-Internet

  14. Quelques compléments Java réseaux M2-Internet

  15. Sommaire • URL et URI • html et swing • URLconnections • URLStreamHandler URLStreamHandlerFactory • ContentHandler ContentHandlerFactory M2-Internet

  16. URL • la classe URL permet d'utiliser les URL • les classes URLDecoder et URLEncoder permettent de traiter les formulaires HTML • Une URI (Uniform ressource Identifier), est une sorte de généralisation des URL qui inclut de Uniform Resource Location (URL) mais aussi de Uniform Ressource Names (URN) • exemples • tel:1-800-9988-9938 • http://www.xml.comp/pub/stax.html#id =_hdbc • (la classe URLConnection sera décrite plus loin) M2-Internet

  17. URI • URI: • URL (location) http://java.sun.com/j2se/1.3/docs/guide/collections/designfaq.html#28 • ou URN (name): mailto:java-net@java.sun.com • Syntaxe: • Général: [scheme:]scheme-specific-part[#fragment] • Hiérarchique: [scheme:][//authority][path][?query][#fragment] Authorité: [user-info@]host[:port] M2-Internet

  18. URL • http://www.bib.org:80/javafaq/book/index.html?isbn=56888#toc • ftp://anonymous:anonymous@ftp.bib.org/c%3a/stuff • protocol • port • authority • chemin • référence • requête • user M2-Internet

  19. Construire une URL • public URL(String url) throws MalformedURLException • public URL(String protocol, String hostname, String file) throws MalformedURLException • public URL(String protocol, String host, int port, String file) throws MalformedURLException • public URL(URL base, String relative) throws MalformedURLException M2-Internet

  20. Remarques • tous les protocoles ne sont pas compris par la machine virtuelle… • exception MalFormedURLException M2-Internet

  21. Exemple: Quels protocoles? import java.net.*; public class ProtocolTester { public static void main(String[] args) { testProtocol("http://www.adc.org"); testProtocol("https://www.amazon.com/exec/obidos/order2/"); testProtocol("ftp://metalab.unc.edu/pub/languages/java/javafaq/"); testProtocol("mailto:elharo@metalab.unc.edu"); testProtocol("telnet://dibner.poly.edu/"); testProtocol("file:///etc/passwd"); testProtocol("gopher://gopher.anc.org.za/"); testProtocol( "ldap://ldap.itd.umich.edu/o=University%20of%20Michigan,c=US?postalAddress"); testProtocol( "jar:http://cafeaulait.org/books/javaio/ioexamples/javaio.jar!" +"/com/macfaq/io/StreamCopier.class"); testProtocol("nfs://utopia.poly.edu/usr/tmp/"); testProtocol("jdbc:mysql://luna.metalab.unc.edu:3306/NEWS"); testProtocol("rmi://metalab.unc.edu/RenderEngine"); testProtocol("doc:/UsersGuide/release.html"); testProtocol("netdoc:/UsersGuide/release.html"); testProtocol("systemresource://www.adc.org/+/index.html"); testProtocol("verbatim:http://www.adc.org/"); } M2-Internet

  22. Quels protocoles (suite) private static void testProtocol(String url) { try { URL u = new URL(url); System.out.println(u.getProtocol() + " is supported"); } catch (MalformedURLException ex) { String protocol = url.substring(0,url.indexOf(':')); System.out.println(protocol + " is not supported"); } } http is supported https is supported ftp is supported mailto is supported telnet is not supported file is supported gopher is supported ldap is not supported jar is supported nfs is not supported jdbc is not supported rmi is not supported doc is supported netdoc is supported systemresource is supported verbatim is supported M2-Internet

  23. Décomposer l'url public static void decomposeURL(String st) { try{ URL u = new URL(st); System.out.println("URL :" + u); System.out.println("Protocole : " + u.getProtocol( )); System.out.println("UserInfo :" + u.getUserInfo( )); String host = u.getHost( ); if (host != null) { int atSign = host.indexOf('@'); if (atSign != -1) host = host.substring(atSign+1); System.out.println("hôte " + host); } else { System.out.println("hôte null."); } M2-Internet

  24. suite System.out.println("Port :" + u.getPort( )); System.out.println("Path : " + u.getPath( )); System.out.println("Ref : " + u.getRef( )); System.out.println("Query: " + u.getQuery( )); } catch (MalformedURLException ex) {System.err.println(st + " URL malformée"); } } M2-Internet

  25. Résultat http://www.bib.org:80/javafaq/book/index.html?isbn=56888#toc URL :http://www.bib.org:80/javafaq/book/index.html?isbn=56888#toc Protocole : http UserInfo :null hôte www.bib.org Port :80 Path : /javafaq/book/index.html Ref : toc Query: isbn=56888 M2-Internet

  26. Obtenir des données • public InputStream openStream( ) throws IOException • public URLConnection openConnection( ) throws IOException • public URLConnection openConnection(Proxy proxy) throws IOException • public Object getContent( ) throws IOException • public Object getContent(Class[] classes) throws IOException M2-Internet

  27. Charger le contenu d'une URL public static void chargerFichier(String url) { try { URL u = new URL(url); InputStream in = u.openStream(); in = new BufferedInputStream(in); Reader r = new InputStreamReader(in); int c; while ((c = r.read()) != -1) { System.out.print((char) c); } } catch (MalformedURLException ex) { System.err.println(url + " mauvaise URL"); } catch (IOException e) { System.err.println(e + " problème de lecture url " + url); } } M2-Internet

  28. Type du contenu public static void typeObjetURL(String st) { try { URL u = new URL(st); try { Object o = u.getContent(); System.out.println("L'objet est un " + o.getClass().getName()); } catch (IOException ex) {System.err.println(ex);} } catch (MalformedURLException ex) { System.err.println(st + " URL malformée"); } } http://www.liafa.jussieu.fr L'objet est un sun.net.www.protocol.http.HttpURLConnection$HttpInputStream M2-Internet

  29. Et encore • URLEncoder • URLDecoder M2-Internet

  30. URLEncode: Exemple public class QueryString { private StringBuffer query = new StringBuffer(); public QueryString(String name, String value) { encode(name, value); } public synchronized void add(String name, String value) { query.append('&'); encode(name, value); } private synchronized void encode(String name, String value){ try { query.append(URLEncoder.encode(name, "UTF-8")); query.append('='); query.append(URLEncoder.encode(value, "UTF-8")); } catch (UnsupportedEncodingException ex) { throw new RuntimeException("??"); } //... M2-Internet

  31. Exemple (suite) /… public String getQuery() { return query.toString(); } public String toString() { return getQuery(); } } M2-Internet

  32. Authentication • Classe (abstraite) Authenticator • PasswordAuthentication représente un couple password + user • Méthode getPasswordAuthentication() à redéfinir pour obtenir un PasswordAuthenitcation • Méthode setDefault(Authenticator) définit l'Authenticator pour le système • C'est à lui que s'adressera le système à chaque fois que nécessaire M2-Internet

  33. Pour apache: • Fichier .htaccess: (il faut aussi un AllowOverride AuthConfig dans httpd.conf) AuthType Basic AuthName "restreint" AuthUserFile /Users/hf/Sites/.psswd Require user hf • .psswd est le fichier des mots de passe • htpasswd –c /Users/hf/Sites/.passwd hf M2-Internet

  34. Exemple M2-Internet

More Related