Dns domain name system
This presentation is the property of its rightful owner.
Sponsored Links
1 / 34

DNS: Domain Name System PowerPoint PPT Presentation


  • 98 Views
  • Uploaded on
  • Presentation posted in: General

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:

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


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:

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


Dns domain name system

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


Distributed hierarchical database

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


Dns root name servers

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


Tld and authoritative servers

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


Local name server

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


Dns name resolution example

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


Dns name resolution example1

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


Dns caching and updating records

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


Dns records

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


Dns protocol messages

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


Dns protocol messages1

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


Inserting records into dns

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


Quelques compl ments java r seaux

Quelques compléments Java réseaux

M2-Internet


Sommaire

Sommaire

  • URL et URI

  • html et swing

  • URLconnections

    • URLStreamHandler URLStreamHandlerFactory

    • ContentHandler ContentHandlerFactory

M2-Internet


Dns domain name system

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


Dns domain name system

URI

  • URI:

    • URL (location)

      http://java.sun.com/j2se/1.3/docs/guide/collections/designfaq.html#28

    • ou URN (name):

      mailto:[email protected]

  • Syntaxe:

    • Général:

      [scheme:]scheme-specific-part[#fragment]

    • Hiérarchique:

      [scheme:][//authority][path][?query][#fragment]

      Authorité: [user-info@]host[:port]

M2-Internet


Dns domain name system

URL

  • http://www.bib.org:80/javafaq/book/index.html?isbn=56888#toc

  • ftp://anonymous:[email protected]/c%3a/stuff

    • protocol

    • port

    • authority

    • chemin

    • référence

    • requête

    • user

M2-Internet


Construire une url

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


Remarques

Remarques

  • tous les protocoles ne sont pas compris par la machine virtuelle…

  • exception MalFormedURLException

M2-Internet


Exemple quels protocoles

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:[email protected]");

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


Quels protocoles suite

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


D composer l url

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


Suite

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


R sultat

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


Obtenir des donn es

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


Charger le contenu d une url

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


Type du contenu

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


Et encore

Et encore

  • URLEncoder

  • URLDecoder

M2-Internet


Urlencode exemple

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


Exemple suite

Exemple (suite)

/…

public String getQuery() {

return query.toString();

}

public String toString() {

return getQuery();

}

}

M2-Internet


Authentication

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


Pour apache

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


Exemple

Exemple

M2-Internet


  • Login