SlideShare une entreprise Scribd logo
1  sur  146
Introduction To DNS everything you never wanted to know about IP directory services Linux Users Victoria, April 3 rd  2007 Jonathan Oxer  <jon@ivt.com.au>
what is the domain name system anyway? Introduction To DNS  Jonathan Oxer  < [email_address] >
it's like a phone book ...kinda Introduction To DNS  Jonathan Oxer  < [email_address] >
DNS is (1) a directory service Introduction To DNS  Jonathan Oxer  < [email_address] >
DNS is (2) an identity mechanism Introduction To DNS  Jonathan Oxer  < [email_address] >
DNS is (3) a namespace structure Introduction To DNS  Jonathan Oxer  < [email_address] >
DNS is (4) an abstraction layer Introduction To DNS  Jonathan Oxer  < [email_address] >
think of the phone book... Introduction To DNS  Jonathan Oxer  < [email_address] >
maps hostnames to IP addresses Introduction To DNS  Jonathan Oxer  < [email_address] >
maps jon.oxer.com.au to 221.133.213.151 Introduction To DNS  Jonathan Oxer  < [email_address] >
forward vs reverse Introduction To DNS  Jonathan Oxer  < [email_address] >
maps jon.oxer.com.au to 221.133.213.151 Introduction To DNS  Jonathan Oxer  < [email_address] >
maps 221.133.213.151 to jon.oxer.com.au Introduction To DNS  Jonathan Oxer  < [email_address] >
simple beginnings: hosts.txt Introduction To DNS  Jonathan Oxer  < [email_address] >
...but phone books Introduction To DNS  Jonathan Oxer  < [email_address] >
...but phone books don't Introduction To DNS  Jonathan Oxer  < [email_address] >
...but phone books don't Introduction To DNS  Jonathan Oxer  < [email_address] >  scale
so modern DNS is managed like a distributed phone book Introduction To DNS  Jonathan Oxer  < [email_address] >
DNS is (5) delegation of authority Introduction To DNS  Jonathan Oxer  < [email_address] >
a “zone” defines an area of authority Introduction To DNS  Jonathan Oxer  < [email_address] >
think of it as an inverted tree Introduction To DNS  Jonathan Oxer  < [email_address] >
Introduction To DNS  Jonathan Oxer  < [email_address] >
anatomy of a host name Introduction To DNS  Jonathan Oxer  < [email_address] >
(a host name is a record inside a domain name) Introduction To DNS  Jonathan Oxer  < [email_address] >
read right to left: jon.oxer.com.au. Introduction To DNS  Jonathan Oxer  < [email_address] >
yes, it really ends in a dot! Introduction To DNS  Jonathan Oxer  < [email_address] >
root zone: jon.oxer.com.au . Introduction To DNS  Jonathan Oxer  < [email_address] >
top level domain: jon.oxer.com .au . Introduction To DNS  Jonathan Oxer  < [email_address] >
2nd level zone: jon.oxer .com .au. Introduction To DNS  Jonathan Oxer  < [email_address] >
3rd level zone: jon .oxer .com.au. Introduction To DNS  Jonathan Oxer  < [email_address] >
host name: jon .oxer.com.au. Introduction To DNS  Jonathan Oxer  < [email_address] >
back to that dot: jon.oxer.com.au . Introduction To DNS  Jonathan Oxer  < [email_address] >
“ ICANN's 13” : the A to M root servers Introduction To DNS  Jonathan Oxer  < [email_address] >
root.hints Introduction To DNS  Jonathan Oxer  < [email_address] >
“ There can be only 13” Introduction To DNS  Jonathan Oxer  < [email_address] >
(UDP packets limited to 512B) Introduction To DNS  Jonathan Oxer  < [email_address] >
A response with more than 13 entries > 512B Introduction To DNS  Jonathan Oxer  < [email_address] >
root servers replicated globally using anycast Introduction To DNS  Jonathan Oxer  < [email_address] >
Introduction To DNS  Jonathan Oxer  < [email_address] >
root servers delegate ccTLDs, gTLDs, and iTLDs Introduction To DNS  Jonathan Oxer  < [email_address] >
so what is this “ delegation” of which you speak? Introduction To DNS  Jonathan Oxer  < [email_address] >
registries, registrars, resellers, registrants, InterNIC, ICANN, OpenSRS, oh my! Introduction To DNS  Jonathan Oxer  < [email_address] >
Introduction To DNS  Jonathan Oxer  < [email_address] >
ICANN controls the registries Introduction To DNS  Jonathan Oxer  < [email_address] >
registries control the registrars Introduction To DNS  Jonathan Oxer  < [email_address] >
registrars control delegations Introduction To DNS  Jonathan Oxer  < [email_address] >
domain allocation policies Introduction To DNS  Jonathan Oxer  < [email_address] >
own or lease? Introduction To DNS  Jonathan Oxer  < [email_address] >
trademarks and disputes Introduction To DNS  Jonathan Oxer  < [email_address] >
Introduction To DNS  Jonathan Oxer  < [email_address] >
alt roots (alternative DNS roots) Introduction To DNS  Jonathan Oxer  < [email_address] >
DNS works because we agree to let it work Introduction To DNS  Jonathan Oxer  < [email_address] >
alt roots are just alternative agreements Introduction To DNS  Jonathan Oxer  < [email_address] >
Introduction To DNS  Jonathan Oxer  < [email_address] >
critical concept alert! Introduction To DNS  Jonathan Oxer  < [email_address] >
authoritative vs recursive servers Introduction To DNS  Jonathan Oxer  < [email_address] >
authoritative servers answer questions about zones they own Introduction To DNS  Jonathan Oxer  < [email_address] >
recursive resolvers query other servers on your behalf Introduction To DNS  Jonathan Oxer  < [email_address] >
recursive lookups require multiple queries Introduction To DNS  Jonathan Oxer  < [email_address] >
Introduction To DNS  Jonathan Oxer  < [email_address] >
 
 
 
 
 
 
 
 
 
 
 
caching good! Introduction To DNS  Jonathan Oxer  < [email_address] >
caching bad! Introduction To DNS  Jonathan Oxer  < [email_address] >
beware the cache Introduction To DNS  Jonathan Oxer  < [email_address] >
caching: in the recursive DNS resolver Introduction To DNS  Jonathan Oxer  < [email_address] >
(Big Pond bad! Bad, I say!) Introduction To DNS  Jonathan Oxer  < [email_address] >
caching: in your OSs resolver library Introduction To DNS  Jonathan Oxer  < [email_address] >
caching: directly inside applications Introduction To DNS  Jonathan Oxer  < [email_address] >
(IE very bad too!) Introduction To DNS  Jonathan Oxer  < [email_address] >
internationalisation Introduction To DNS  Jonathan Oxer  < [email_address] >
anatomy of a zone[file] Introduction To DNS  Jonathan Oxer  < [email_address] >
; zone file for example.com. $TTL 2d  ; 172800 TTL @  IN  SOA  ns1.example.com. hostmaster.example.com. ( 2007040304 ; serial 12h  ; refresh 15m  ; retry 3w  ; expiry 3h  ; minimum ) IN  NS  ns1.myprovider.com. IN  NS  ns1.example.com. IN  MX  10  mail.example.net. homer  IN  A  192.168.254.3 marge  IN  A  192.168.12.15 www  IN  CNAME  homer vpn  IN  CNAME  marge  Introduction To DNS  Jonathan Oxer  < [email_address] >
types of DNS records Introduction To DNS  Jonathan Oxer  < [email_address] >
“ A” (address) links names and IPv4 addresses Introduction To DNS  Jonathan Oxer  < [email_address] >
“ AAAA” (address) links names and IPv6 addresses Introduction To DNS  Jonathan Oxer  < [email_address] >
“ CNAME” (canonical name) aliases names to other names Introduction To DNS  Jonathan Oxer  < [email_address] >
“ MX” (mail exchange) name of machine for mail delivery Introduction To DNS  Jonathan Oxer  < [email_address] >
“ NS” (name server) name of DNS server for a zone Introduction To DNS  Jonathan Oxer  < [email_address] >
“ TXT” (text) arbitrary text string Introduction To DNS  Jonathan Oxer  < [email_address] >
“ NAPTR” (naming auth pointer) fun with regex Introduction To DNS  Jonathan Oxer  < [email_address] >
“ SOA” (start of authority) controls inter-server data synchronisation Introduction To DNS  Jonathan Oxer  < [email_address] >
SOA (Start Of Authority) Introduction To DNS  Jonathan Oxer  < [email_address] >
SOA sets TTL (Time To Live) Introduction To DNS  Jonathan Oxer  < [email_address] >
TTL says how long data may be cached Introduction To DNS  Jonathan Oxer  < [email_address] >
SOA parameters Serial : identifies version of SOA Introduction To DNS  Jonathan Oxer  < [email_address] >
SOA parameters Refresh : seconds between updates Introduction To DNS  Jonathan Oxer  < [email_address] >
SOA parameters Retry : seconds to wait after failure Introduction To DNS  Jonathan Oxer  < [email_address] >
SOA parameters Expire : seconds before data flushed Introduction To DNS  Jonathan Oxer  < [email_address] >
SOA parameters Minimum : used now for negative caching Introduction To DNS  Jonathan Oxer  < [email_address] >
circular dependencies: self-delegation Introduction To DNS  Jonathan Oxer  < [email_address] >
the solution: glue records Introduction To DNS  Jonathan Oxer  < [email_address] >
breaking your brain: reverse DNS Introduction To DNS  Jonathan Oxer  < [email_address] >
Let's look up 1.2.3.4! Introduction To DNS  Jonathan Oxer  < [email_address] >
4.3.2.1.in-addr.arpa. Introduction To DNS  Jonathan Oxer  < [email_address] >
security Introduction To DNS  Jonathan Oxer  < [email_address] >
DNS cache poisoning Introduction To DNS  Jonathan Oxer  < [email_address] >
Introduction To DNS  Jonathan Oxer  < [email_address] >
Practical example: Dr Evil wants to take over “ www.bigbank.com” Introduction To DNS  Jonathan Oxer  < [email_address] >
Dr Evil attack vector #1 redirecting the target domain's nameserver Introduction To DNS  Jonathan Oxer  < [email_address] >
(1) Dr Evil creates a sub-zone of a zone he controls, such as “ bigbank.dr-evil.com” Introduction To DNS  Jonathan Oxer  < [email_address] >
(2) Dr Evil delegates his evil zone to “ www.bigbank.com” Introduction To DNS  Jonathan Oxer  < [email_address] >
(3) Dr Evil configures his DNS server to return the wrong IP address for “www.bigbank.com” Introduction To DNS  Jonathan Oxer  < [email_address] >
(4) Dr Evil issues a DNS lookup for “ bigbank.dr-evil.com” to your DNS resolver Introduction To DNS  Jonathan Oxer  < [email_address] >
(5) Your DNS server caches the evil IP and uses it for future requests for “ www.bigbank.com” Introduction To DNS  Jonathan Oxer  < [email_address] >
what happened? request: bigbank.dr-evil.com. IN A response: Answer: (no response) Authority section: bigbank.dr-evil.com. 3600 IN NS www.bigbank.com. Additional section: www.bigbank.com. IN A 1.2.3.4 Introduction To DNS  Jonathan Oxer  < [email_address] >
what happened? request: bigbank.dr-evil.com. IN A response: Answer: (no response) Authority section: bigbank.dr-evil.com. 3600 IN NS www.bigbank.com. Additional section: www.bigbank.com. IN A 1.2.3.4 Introduction To DNS  Jonathan Oxer  < [email_address] >
what happened? request: bigbank.dr-evil.com. IN A response: Answer: (no response) Authority section: bigbank.dr-evil.com. 3600 IN NS www.bigbank.com. Additional section: www.bigbank.com. IN A 1.2.3.4 Introduction To DNS  Jonathan Oxer  < [email_address] >
what happened? request: bigbank.dr-evil.com. IN A response: Answer: (no response) Authority section: bigbank.dr-evil.com. 3600 IN NS www.bigbank.com. Additional section: www.bigbank.com. IN A 1.2.3.4 Introduction To DNS  Jonathan Oxer  < [email_address] >
Introduction To DNS  Jonathan Oxer  < [email_address] >
Dr Evil attack vector #2 redirect the NS record of the target domain Introduction To DNS  Jonathan Oxer  < [email_address] >
compare this with... request: bigbank.dr-evil.com. IN A response: Answer: (no response) Authority section: bigbank.dr-evil.com. 3600 IN NS www.bigbank.com. Additional section: www.bigbank.com. IN A 1.2.3.4 Introduction To DNS  Jonathan Oxer  < [email_address] >
...alternative attack request: bigbank.dr-evil.com. IN A response: Answer: (no response) Authority section: bigbank.com. 3600 IN NS ns.dr-evil.com. Additional section: ns.dr-evil.com. IN A 1.2.3.4   Introduction To DNS  Jonathan Oxer  < [email_address] >
Dr Evil attack vector #3 DNS forgery: respond before the real nameserver Introduction To DNS  Jonathan Oxer  < [email_address] >
not as easy as it sounds! Introduction To DNS  Jonathan Oxer  < [email_address] >
do a “ birthday attack” against the nonce  value Introduction To DNS  Jonathan Oxer  < [email_address] >
Introduction To DNS  Jonathan Oxer  < [email_address] >  Start with the Taylor series approximation to the probability of a “nonce” value collision where “n” is the number of attempts and “H” is the number of unique outputs: Invert the expression: Now assigning a 0.5 probability of collision: So it's obvious that for a 16 bit hash there are 65536 outputs, ie: only 301 attempts are required to generate a collision by brute force!
Introduction To DNS  Jonathan Oxer  < [email_address] >  Start with the Taylor series approximation to the probability of a “nonce” value collision where “n” is the number of attempts and “H” is the number of unique outputs: Invert the expression: Now assigning a 0.5 probability of collision: So it's obvious that for a 16 bit hash there are 65536 outputs, ie: only 301 attempts are required to generate a collision by brute force!
Introduction To DNS  Jonathan Oxer  < [email_address] >  Start with the Taylor series approximation to the probability of a “nonce” value collision where “n” is the number of attempts and “H” is the number of unique outputs: Invert the expression: Now assigning a 0.5 probability of collision: So it's obvious that for a 16 bit hash there are 65536 outputs, ie: only 301 attempts are required to generate a collision by brute force!
301 attempts against 2 x16  hash Introduction To DNS  Jonathan Oxer  < [email_address] >
secure zone transfers Introduction To DNS  Jonathan Oxer  < [email_address] >
(mis?)using DNS Introduction To DNS  Jonathan Oxer  < [email_address] >
TCP-over-DNS Introduction To DNS  Jonathan Oxer  < [email_address] >
dynamic DNS Introduction To DNS  Jonathan Oxer  < [email_address] >
SPF Introduction To DNS  Jonathan Oxer  < [email_address] >
useful tools nslookup Introduction To DNS  Jonathan Oxer  < [email_address] >
useful tools nslookup Introduction To DNS  Jonathan Oxer  < [email_address] >
useful tools whois Introduction To DNS  Jonathan Oxer  < [email_address] >
useful tools dig Introduction To DNS  Jonathan Oxer  < [email_address] >
DNS server software Introduction To DNS  Jonathan Oxer  < [email_address] >
authoritative and recursive: BIND, MaraDNS Introduction To DNS  Jonathan Oxer  < [email_address] >
authoritative: MyDNS, tinydns Introduction To DNS  Jonathan Oxer  < [email_address] >
recursive: dnscache Introduction To DNS  Jonathan Oxer  < [email_address] >
master vs slave Introduction To DNS  Jonathan Oxer  < [email_address] >
firewall issues port 53 UDP  and  TCP Introduction To DNS  Jonathan Oxer  < [email_address] >
Introduction To DNS  Jonathan Oxer  < [email_address] >
Introduction to DNS Thankyou  :-) questions? Slid es:  jon.oxer.com.au/talks Contact: Jonathan Oxer < [email_address] > We're hiring!  www.ivt.com.au/jobs

Contenu connexe

Tendances (20)

Dns(Domain name system)
Dns(Domain name system)Dns(Domain name system)
Dns(Domain name system)
 
Domain Name System
Domain Name SystemDomain Name System
Domain Name System
 
DNS server configuration
DNS server configurationDNS server configuration
DNS server configuration
 
Intro to DNS
Intro to DNSIntro to DNS
Intro to DNS
 
Dns name resolution process
Dns name resolution processDns name resolution process
Dns name resolution process
 
Dns ppt
Dns pptDns ppt
Dns ppt
 
DNS Record
DNS RecordDNS Record
DNS Record
 
Domain name system (dns)
Domain name system (dns)Domain name system (dns)
Domain name system (dns)
 
Domain name server
Domain name serverDomain name server
Domain name server
 
Domain name service
Domain name serviceDomain name service
Domain name service
 
Dns presentation
Dns presentationDns presentation
Dns presentation
 
Security of DNS
Security of DNSSecurity of DNS
Security of DNS
 
DNS(Domain Name System)
DNS(Domain Name System)DNS(Domain Name System)
DNS(Domain Name System)
 
Nat pat
Nat patNat pat
Nat pat
 
Dhcp
DhcpDhcp
Dhcp
 
Dns server
Dns server Dns server
Dns server
 
IP Subnetting
IP SubnettingIP Subnetting
IP Subnetting
 
IP Address
IP AddressIP Address
IP Address
 
Dns ppt
Dns pptDns ppt
Dns ppt
 
DNS Attacks
DNS AttacksDNS Attacks
DNS Attacks
 

En vedette

Osi model vs TCP/IP
Osi model vs TCP/IPOsi model vs TCP/IP
Osi model vs TCP/IPMannu Khani
 
DNS - Domain Name System
DNS - Domain Name SystemDNS - Domain Name System
DNS - Domain Name SystemPeter R. Egli
 
I Have the Power(View)
I Have the Power(View)I Have the Power(View)
I Have the Power(View)Will Schroeder
 
150928 - Verisign Public DNS
150928 - Verisign Public DNS150928 - Verisign Public DNS
150928 - Verisign Public DNSMichael Kaczmarek
 
OpenDNS Enterprise Web Content Filtering
OpenDNS Enterprise Web Content FilteringOpenDNS Enterprise Web Content Filtering
OpenDNS Enterprise Web Content FilteringOpenDNS
 
Remediating Violated Customers
Remediating Violated CustomersRemediating Violated Customers
Remediating Violated CustomersBarry Greene
 
DNS for Developers - NDC Oslo 2016
DNS for Developers - NDC Oslo 2016DNS for Developers - NDC Oslo 2016
DNS for Developers - NDC Oslo 2016Maarten Balliauw
 
Indusrty Strategy For Action
Indusrty Strategy For ActionIndusrty Strategy For Action
Indusrty Strategy For ActionBarry Greene
 
Are you ready for the next attack? reviewing the sp security checklist (apnic...
Are you ready for the next attack? reviewing the sp security checklist (apnic...Are you ready for the next attack? reviewing the sp security checklist (apnic...
Are you ready for the next attack? reviewing the sp security checklist (apnic...Barry Greene
 
Creating Domain Specific Languages in Python
Creating Domain Specific Languages in PythonCreating Domain Specific Languages in Python
Creating Domain Specific Languages in PythonSiddhi
 
Query-name Minimization and Authoritative Server Behavior
Query-name Minimization and Authoritative Server BehaviorQuery-name Minimization and Authoritative Server Behavior
Query-name Minimization and Authoritative Server BehaviorShumon Huque
 
IoT Security in Action - Boston Sept 2015
IoT Security in Action - Boston Sept 2015IoT Security in Action - Boston Sept 2015
IoT Security in Action - Boston Sept 2015Eurotech
 
Approaches to application request throttling
Approaches to application request throttlingApproaches to application request throttling
Approaches to application request throttlingMaarten Balliauw
 
DNS and Troubleshooting DNS issues in Linux
DNS and Troubleshooting DNS issues in LinuxDNS and Troubleshooting DNS issues in Linux
DNS and Troubleshooting DNS issues in LinuxKonkona Basu
 

En vedette (20)

Remote Login
Remote LoginRemote Login
Remote Login
 
Chap24
Chap24Chap24
Chap24
 
Osi model vs TCP/IP
Osi model vs TCP/IPOsi model vs TCP/IP
Osi model vs TCP/IP
 
DNS - Domain Name System
DNS - Domain Name SystemDNS - Domain Name System
DNS - Domain Name System
 
I Have the Power(View)
I Have the Power(View)I Have the Power(View)
I Have the Power(View)
 
PostgreSQL DBA Neler Yapar?
PostgreSQL DBA Neler Yapar?PostgreSQL DBA Neler Yapar?
PostgreSQL DBA Neler Yapar?
 
TTÜ Geeky Weekly
TTÜ Geeky WeeklyTTÜ Geeky Weekly
TTÜ Geeky Weekly
 
150928 - Verisign Public DNS
150928 - Verisign Public DNS150928 - Verisign Public DNS
150928 - Verisign Public DNS
 
OpenDNS Enterprise Web Content Filtering
OpenDNS Enterprise Web Content FilteringOpenDNS Enterprise Web Content Filtering
OpenDNS Enterprise Web Content Filtering
 
Managing Postgres with Ansible
Managing Postgres with AnsibleManaging Postgres with Ansible
Managing Postgres with Ansible
 
Remediating Violated Customers
Remediating Violated CustomersRemediating Violated Customers
Remediating Violated Customers
 
DNS for Developers - NDC Oslo 2016
DNS for Developers - NDC Oslo 2016DNS for Developers - NDC Oslo 2016
DNS for Developers - NDC Oslo 2016
 
Indusrty Strategy For Action
Indusrty Strategy For ActionIndusrty Strategy For Action
Indusrty Strategy For Action
 
Are you ready for the next attack? reviewing the sp security checklist (apnic...
Are you ready for the next attack? reviewing the sp security checklist (apnic...Are you ready for the next attack? reviewing the sp security checklist (apnic...
Are you ready for the next attack? reviewing the sp security checklist (apnic...
 
Creating Domain Specific Languages in Python
Creating Domain Specific Languages in PythonCreating Domain Specific Languages in Python
Creating Domain Specific Languages in Python
 
Query-name Minimization and Authoritative Server Behavior
Query-name Minimization and Authoritative Server BehaviorQuery-name Minimization and Authoritative Server Behavior
Query-name Minimization and Authoritative Server Behavior
 
IoT Security in Action - Boston Sept 2015
IoT Security in Action - Boston Sept 2015IoT Security in Action - Boston Sept 2015
IoT Security in Action - Boston Sept 2015
 
Approaches to application request throttling
Approaches to application request throttlingApproaches to application request throttling
Approaches to application request throttling
 
IDNOG - 2014
IDNOG - 2014IDNOG - 2014
IDNOG - 2014
 
DNS and Troubleshooting DNS issues in Linux
DNS and Troubleshooting DNS issues in LinuxDNS and Troubleshooting DNS issues in Linux
DNS and Troubleshooting DNS issues in Linux
 

Similaire à Introduction to DNS

Domain name system
Domain name systemDomain name system
Domain name systemRahul Baghla
 
2009 Itc Nslookup Rev01
2009 Itc Nslookup Rev012009 Itc Nslookup Rev01
2009 Itc Nslookup Rev01JayMNEA
 
Design of a campus network
Design of a campus networkDesign of a campus network
Design of a campus networkAalap Tripathy
 
Advanced MongoDB Aggregation Pipelines
Advanced MongoDB Aggregation PipelinesAdvanced MongoDB Aggregation Pipelines
Advanced MongoDB Aggregation PipelinesTom Schreiber
 
MongoDB Europe 2016 - Advanced MongoDB Aggregation Pipelines
MongoDB Europe 2016 - Advanced MongoDB Aggregation PipelinesMongoDB Europe 2016 - Advanced MongoDB Aggregation Pipelines
MongoDB Europe 2016 - Advanced MongoDB Aggregation PipelinesMongoDB
 
AWS re:Invent 2016: DNS Demystified: Getting Started with Amazon Route 53, fe...
AWS re:Invent 2016: DNS Demystified: Getting Started with Amazon Route 53, fe...AWS re:Invent 2016: DNS Demystified: Getting Started with Amazon Route 53, fe...
AWS re:Invent 2016: DNS Demystified: Getting Started with Amazon Route 53, fe...Amazon Web Services
 
Beyond Logging: Using MongoDB to Power a Private Social Network (Oh, and log ...
Beyond Logging: Using MongoDB to Power a Private Social Network (Oh, and log ...Beyond Logging: Using MongoDB to Power a Private Social Network (Oh, and log ...
Beyond Logging: Using MongoDB to Power a Private Social Network (Oh, and log ...justinjenkins
 
DNSSEC Tutorial, by Champika Wijayatunga [APNIC 38]
DNSSEC Tutorial, by Champika Wijayatunga [APNIC 38]DNSSEC Tutorial, by Champika Wijayatunga [APNIC 38]
DNSSEC Tutorial, by Champika Wijayatunga [APNIC 38]APNIC
 

Similaire à Introduction to DNS (20)

ppt.pptx
ppt.pptxppt.pptx
ppt.pptx
 
Domain Name System
Domain Name SystemDomain Name System
Domain Name System
 
Domain Name System(ppt)
Domain Name System(ppt)Domain Name System(ppt)
Domain Name System(ppt)
 
Dns
DnsDns
Dns
 
Domain name system
Domain name systemDomain name system
Domain name system
 
2009 Itc Nslookup Rev01
2009 Itc Nslookup Rev012009 Itc Nslookup Rev01
2009 Itc Nslookup Rev01
 
Design of a campus network
Design of a campus networkDesign of a campus network
Design of a campus network
 
Advanced MongoDB Aggregation Pipelines
Advanced MongoDB Aggregation PipelinesAdvanced MongoDB Aggregation Pipelines
Advanced MongoDB Aggregation Pipelines
 
MongoDB Europe 2016 - Advanced MongoDB Aggregation Pipelines
MongoDB Europe 2016 - Advanced MongoDB Aggregation PipelinesMongoDB Europe 2016 - Advanced MongoDB Aggregation Pipelines
MongoDB Europe 2016 - Advanced MongoDB Aggregation Pipelines
 
Hands-on DNSSEC Deployment
Hands-on DNSSEC DeploymentHands-on DNSSEC Deployment
Hands-on DNSSEC Deployment
 
DNS 101 for Non-Techs
DNS 101 for Non-TechsDNS 101 for Non-Techs
DNS 101 for Non-Techs
 
AWS re:Invent 2016: DNS Demystified: Getting Started with Amazon Route 53, fe...
AWS re:Invent 2016: DNS Demystified: Getting Started with Amazon Route 53, fe...AWS re:Invent 2016: DNS Demystified: Getting Started with Amazon Route 53, fe...
AWS re:Invent 2016: DNS Demystified: Getting Started with Amazon Route 53, fe...
 
Introduction
IntroductionIntroduction
Introduction
 
Curso: Redes y comunicaciones I: 07 Redes
Curso: Redes y comunicaciones I: 07 RedesCurso: Redes y comunicaciones I: 07 Redes
Curso: Redes y comunicaciones I: 07 Redes
 
Active directory dns
Active directory dnsActive directory dns
Active directory dns
 
Beyond Logging: Using MongoDB to Power a Private Social Network (Oh, and log ...
Beyond Logging: Using MongoDB to Power a Private Social Network (Oh, and log ...Beyond Logging: Using MongoDB to Power a Private Social Network (Oh, and log ...
Beyond Logging: Using MongoDB to Power a Private Social Network (Oh, and log ...
 
Domain Name Service
Domain Name ServiceDomain Name Service
Domain Name Service
 
DNS resolution
DNS resolutionDNS resolution
DNS resolution
 
Domainnamesystem
DomainnamesystemDomainnamesystem
Domainnamesystem
 
DNSSEC Tutorial, by Champika Wijayatunga [APNIC 38]
DNSSEC Tutorial, by Champika Wijayatunga [APNIC 38]DNSSEC Tutorial, by Champika Wijayatunga [APNIC 38]
DNSSEC Tutorial, by Champika Wijayatunga [APNIC 38]
 

Plus de Jonathan Oxer

OSDcLang On Mobile Devices
OSDcLang On Mobile DevicesOSDcLang On Mobile Devices
OSDcLang On Mobile DevicesJonathan Oxer
 
Debian Package Caching Solutions
Debian Package Caching SolutionsDebian Package Caching Solutions
Debian Package Caching SolutionsJonathan Oxer
 
Software Freedom: Pragmatic Idealism?
Software Freedom: Pragmatic Idealism?Software Freedom: Pragmatic Idealism?
Software Freedom: Pragmatic Idealism?Jonathan Oxer
 
Encrypted password storage
Encrypted password storageEncrypted password storage
Encrypted password storageJonathan Oxer
 
How to grow your eBusiness and build an online community
How to grow your eBusiness and build an online communityHow to grow your eBusiness and build an online community
How to grow your eBusiness and build an online communityJonathan Oxer
 
Self-Healing Databases
Self-Healing DatabasesSelf-Healing Databases
Self-Healing DatabasesJonathan Oxer
 
How To Build A Website And Stay Sane
How To Build A Website And Stay SaneHow To Build A Website And Stay Sane
How To Build A Website And Stay SaneJonathan Oxer
 
Managing Source Code With Subversion
Managing Source Code With SubversionManaging Source Code With Subversion
Managing Source Code With SubversionJonathan Oxer
 
PHP Performance Profiling
PHP Performance ProfilingPHP Performance Profiling
PHP Performance ProfilingJonathan Oxer
 
Compiling kernels the Debian way
Compiling kernels the Debian wayCompiling kernels the Debian way
Compiling kernels the Debian wayJonathan Oxer
 

Plus de Jonathan Oxer (13)

OSDcLang On Mobile Devices
OSDcLang On Mobile DevicesOSDcLang On Mobile Devices
OSDcLang On Mobile Devices
 
Geek My Ride
Geek My RideGeek My Ride
Geek My Ride
 
Debian Package Caching Solutions
Debian Package Caching SolutionsDebian Package Caching Solutions
Debian Package Caching Solutions
 
Software Freedom: Pragmatic Idealism?
Software Freedom: Pragmatic Idealism?Software Freedom: Pragmatic Idealism?
Software Freedom: Pragmatic Idealism?
 
Encrypted password storage
Encrypted password storageEncrypted password storage
Encrypted password storage
 
How to grow your eBusiness and build an online community
How to grow your eBusiness and build an online communityHow to grow your eBusiness and build an online community
How to grow your eBusiness and build an online community
 
Self-Healing Databases
Self-Healing DatabasesSelf-Healing Databases
Self-Healing Databases
 
How To Build A Website And Stay Sane
How To Build A Website And Stay SaneHow To Build A Website And Stay Sane
How To Build A Website And Stay Sane
 
Managing Source Code With Subversion
Managing Source Code With SubversionManaging Source Code With Subversion
Managing Source Code With Subversion
 
Large Scale PHP
Large Scale PHPLarge Scale PHP
Large Scale PHP
 
PHP On Steroids
PHP On SteroidsPHP On Steroids
PHP On Steroids
 
PHP Performance Profiling
PHP Performance ProfilingPHP Performance Profiling
PHP Performance Profiling
 
Compiling kernels the Debian way
Compiling kernels the Debian wayCompiling kernels the Debian way
Compiling kernels the Debian way
 

Dernier

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 

Dernier (20)

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 

Introduction to DNS

  • 1. Introduction To DNS everything you never wanted to know about IP directory services Linux Users Victoria, April 3 rd 2007 Jonathan Oxer <jon@ivt.com.au>
  • 2. what is the domain name system anyway? Introduction To DNS Jonathan Oxer < [email_address] >
  • 3. it's like a phone book ...kinda Introduction To DNS Jonathan Oxer < [email_address] >
  • 4. DNS is (1) a directory service Introduction To DNS Jonathan Oxer < [email_address] >
  • 5. DNS is (2) an identity mechanism Introduction To DNS Jonathan Oxer < [email_address] >
  • 6. DNS is (3) a namespace structure Introduction To DNS Jonathan Oxer < [email_address] >
  • 7. DNS is (4) an abstraction layer Introduction To DNS Jonathan Oxer < [email_address] >
  • 8. think of the phone book... Introduction To DNS Jonathan Oxer < [email_address] >
  • 9. maps hostnames to IP addresses Introduction To DNS Jonathan Oxer < [email_address] >
  • 10. maps jon.oxer.com.au to 221.133.213.151 Introduction To DNS Jonathan Oxer < [email_address] >
  • 11. forward vs reverse Introduction To DNS Jonathan Oxer < [email_address] >
  • 12. maps jon.oxer.com.au to 221.133.213.151 Introduction To DNS Jonathan Oxer < [email_address] >
  • 13. maps 221.133.213.151 to jon.oxer.com.au Introduction To DNS Jonathan Oxer < [email_address] >
  • 14. simple beginnings: hosts.txt Introduction To DNS Jonathan Oxer < [email_address] >
  • 15. ...but phone books Introduction To DNS Jonathan Oxer < [email_address] >
  • 16. ...but phone books don't Introduction To DNS Jonathan Oxer < [email_address] >
  • 17. ...but phone books don't Introduction To DNS Jonathan Oxer < [email_address] > scale
  • 18. so modern DNS is managed like a distributed phone book Introduction To DNS Jonathan Oxer < [email_address] >
  • 19. DNS is (5) delegation of authority Introduction To DNS Jonathan Oxer < [email_address] >
  • 20. a “zone” defines an area of authority Introduction To DNS Jonathan Oxer < [email_address] >
  • 21. think of it as an inverted tree Introduction To DNS Jonathan Oxer < [email_address] >
  • 22. Introduction To DNS Jonathan Oxer < [email_address] >
  • 23. anatomy of a host name Introduction To DNS Jonathan Oxer < [email_address] >
  • 24. (a host name is a record inside a domain name) Introduction To DNS Jonathan Oxer < [email_address] >
  • 25. read right to left: jon.oxer.com.au. Introduction To DNS Jonathan Oxer < [email_address] >
  • 26. yes, it really ends in a dot! Introduction To DNS Jonathan Oxer < [email_address] >
  • 27. root zone: jon.oxer.com.au . Introduction To DNS Jonathan Oxer < [email_address] >
  • 28. top level domain: jon.oxer.com .au . Introduction To DNS Jonathan Oxer < [email_address] >
  • 29. 2nd level zone: jon.oxer .com .au. Introduction To DNS Jonathan Oxer < [email_address] >
  • 30. 3rd level zone: jon .oxer .com.au. Introduction To DNS Jonathan Oxer < [email_address] >
  • 31. host name: jon .oxer.com.au. Introduction To DNS Jonathan Oxer < [email_address] >
  • 32. back to that dot: jon.oxer.com.au . Introduction To DNS Jonathan Oxer < [email_address] >
  • 33. “ ICANN's 13” : the A to M root servers Introduction To DNS Jonathan Oxer < [email_address] >
  • 34. root.hints Introduction To DNS Jonathan Oxer < [email_address] >
  • 35. “ There can be only 13” Introduction To DNS Jonathan Oxer < [email_address] >
  • 36. (UDP packets limited to 512B) Introduction To DNS Jonathan Oxer < [email_address] >
  • 37. A response with more than 13 entries > 512B Introduction To DNS Jonathan Oxer < [email_address] >
  • 38. root servers replicated globally using anycast Introduction To DNS Jonathan Oxer < [email_address] >
  • 39. Introduction To DNS Jonathan Oxer < [email_address] >
  • 40. root servers delegate ccTLDs, gTLDs, and iTLDs Introduction To DNS Jonathan Oxer < [email_address] >
  • 41. so what is this “ delegation” of which you speak? Introduction To DNS Jonathan Oxer < [email_address] >
  • 42. registries, registrars, resellers, registrants, InterNIC, ICANN, OpenSRS, oh my! Introduction To DNS Jonathan Oxer < [email_address] >
  • 43. Introduction To DNS Jonathan Oxer < [email_address] >
  • 44. ICANN controls the registries Introduction To DNS Jonathan Oxer < [email_address] >
  • 45. registries control the registrars Introduction To DNS Jonathan Oxer < [email_address] >
  • 46. registrars control delegations Introduction To DNS Jonathan Oxer < [email_address] >
  • 47. domain allocation policies Introduction To DNS Jonathan Oxer < [email_address] >
  • 48. own or lease? Introduction To DNS Jonathan Oxer < [email_address] >
  • 49. trademarks and disputes Introduction To DNS Jonathan Oxer < [email_address] >
  • 50. Introduction To DNS Jonathan Oxer < [email_address] >
  • 51. alt roots (alternative DNS roots) Introduction To DNS Jonathan Oxer < [email_address] >
  • 52. DNS works because we agree to let it work Introduction To DNS Jonathan Oxer < [email_address] >
  • 53. alt roots are just alternative agreements Introduction To DNS Jonathan Oxer < [email_address] >
  • 54. Introduction To DNS Jonathan Oxer < [email_address] >
  • 55. critical concept alert! Introduction To DNS Jonathan Oxer < [email_address] >
  • 56. authoritative vs recursive servers Introduction To DNS Jonathan Oxer < [email_address] >
  • 57. authoritative servers answer questions about zones they own Introduction To DNS Jonathan Oxer < [email_address] >
  • 58. recursive resolvers query other servers on your behalf Introduction To DNS Jonathan Oxer < [email_address] >
  • 59. recursive lookups require multiple queries Introduction To DNS Jonathan Oxer < [email_address] >
  • 60. Introduction To DNS Jonathan Oxer < [email_address] >
  • 61.  
  • 62.  
  • 63.  
  • 64.  
  • 65.  
  • 66.  
  • 67.  
  • 68.  
  • 69.  
  • 70.  
  • 71.  
  • 72. caching good! Introduction To DNS Jonathan Oxer < [email_address] >
  • 73. caching bad! Introduction To DNS Jonathan Oxer < [email_address] >
  • 74. beware the cache Introduction To DNS Jonathan Oxer < [email_address] >
  • 75. caching: in the recursive DNS resolver Introduction To DNS Jonathan Oxer < [email_address] >
  • 76. (Big Pond bad! Bad, I say!) Introduction To DNS Jonathan Oxer < [email_address] >
  • 77. caching: in your OSs resolver library Introduction To DNS Jonathan Oxer < [email_address] >
  • 78. caching: directly inside applications Introduction To DNS Jonathan Oxer < [email_address] >
  • 79. (IE very bad too!) Introduction To DNS Jonathan Oxer < [email_address] >
  • 80. internationalisation Introduction To DNS Jonathan Oxer < [email_address] >
  • 81. anatomy of a zone[file] Introduction To DNS Jonathan Oxer < [email_address] >
  • 82. ; zone file for example.com. $TTL 2d ; 172800 TTL @ IN SOA ns1.example.com. hostmaster.example.com. ( 2007040304 ; serial 12h ; refresh 15m ; retry 3w ; expiry 3h ; minimum ) IN NS ns1.myprovider.com. IN NS ns1.example.com. IN MX 10 mail.example.net. homer IN A 192.168.254.3 marge IN A 192.168.12.15 www IN CNAME homer vpn IN CNAME marge Introduction To DNS Jonathan Oxer < [email_address] >
  • 83. types of DNS records Introduction To DNS Jonathan Oxer < [email_address] >
  • 84. “ A” (address) links names and IPv4 addresses Introduction To DNS Jonathan Oxer < [email_address] >
  • 85. “ AAAA” (address) links names and IPv6 addresses Introduction To DNS Jonathan Oxer < [email_address] >
  • 86. “ CNAME” (canonical name) aliases names to other names Introduction To DNS Jonathan Oxer < [email_address] >
  • 87. “ MX” (mail exchange) name of machine for mail delivery Introduction To DNS Jonathan Oxer < [email_address] >
  • 88. “ NS” (name server) name of DNS server for a zone Introduction To DNS Jonathan Oxer < [email_address] >
  • 89. “ TXT” (text) arbitrary text string Introduction To DNS Jonathan Oxer < [email_address] >
  • 90. “ NAPTR” (naming auth pointer) fun with regex Introduction To DNS Jonathan Oxer < [email_address] >
  • 91. “ SOA” (start of authority) controls inter-server data synchronisation Introduction To DNS Jonathan Oxer < [email_address] >
  • 92. SOA (Start Of Authority) Introduction To DNS Jonathan Oxer < [email_address] >
  • 93. SOA sets TTL (Time To Live) Introduction To DNS Jonathan Oxer < [email_address] >
  • 94. TTL says how long data may be cached Introduction To DNS Jonathan Oxer < [email_address] >
  • 95. SOA parameters Serial : identifies version of SOA Introduction To DNS Jonathan Oxer < [email_address] >
  • 96. SOA parameters Refresh : seconds between updates Introduction To DNS Jonathan Oxer < [email_address] >
  • 97. SOA parameters Retry : seconds to wait after failure Introduction To DNS Jonathan Oxer < [email_address] >
  • 98. SOA parameters Expire : seconds before data flushed Introduction To DNS Jonathan Oxer < [email_address] >
  • 99. SOA parameters Minimum : used now for negative caching Introduction To DNS Jonathan Oxer < [email_address] >
  • 100. circular dependencies: self-delegation Introduction To DNS Jonathan Oxer < [email_address] >
  • 101. the solution: glue records Introduction To DNS Jonathan Oxer < [email_address] >
  • 102. breaking your brain: reverse DNS Introduction To DNS Jonathan Oxer < [email_address] >
  • 103. Let's look up 1.2.3.4! Introduction To DNS Jonathan Oxer < [email_address] >
  • 104. 4.3.2.1.in-addr.arpa. Introduction To DNS Jonathan Oxer < [email_address] >
  • 105. security Introduction To DNS Jonathan Oxer < [email_address] >
  • 106. DNS cache poisoning Introduction To DNS Jonathan Oxer < [email_address] >
  • 107. Introduction To DNS Jonathan Oxer < [email_address] >
  • 108. Practical example: Dr Evil wants to take over “ www.bigbank.com” Introduction To DNS Jonathan Oxer < [email_address] >
  • 109. Dr Evil attack vector #1 redirecting the target domain's nameserver Introduction To DNS Jonathan Oxer < [email_address] >
  • 110. (1) Dr Evil creates a sub-zone of a zone he controls, such as “ bigbank.dr-evil.com” Introduction To DNS Jonathan Oxer < [email_address] >
  • 111. (2) Dr Evil delegates his evil zone to “ www.bigbank.com” Introduction To DNS Jonathan Oxer < [email_address] >
  • 112. (3) Dr Evil configures his DNS server to return the wrong IP address for “www.bigbank.com” Introduction To DNS Jonathan Oxer < [email_address] >
  • 113. (4) Dr Evil issues a DNS lookup for “ bigbank.dr-evil.com” to your DNS resolver Introduction To DNS Jonathan Oxer < [email_address] >
  • 114. (5) Your DNS server caches the evil IP and uses it for future requests for “ www.bigbank.com” Introduction To DNS Jonathan Oxer < [email_address] >
  • 115. what happened? request: bigbank.dr-evil.com. IN A response: Answer: (no response) Authority section: bigbank.dr-evil.com. 3600 IN NS www.bigbank.com. Additional section: www.bigbank.com. IN A 1.2.3.4 Introduction To DNS Jonathan Oxer < [email_address] >
  • 116. what happened? request: bigbank.dr-evil.com. IN A response: Answer: (no response) Authority section: bigbank.dr-evil.com. 3600 IN NS www.bigbank.com. Additional section: www.bigbank.com. IN A 1.2.3.4 Introduction To DNS Jonathan Oxer < [email_address] >
  • 117. what happened? request: bigbank.dr-evil.com. IN A response: Answer: (no response) Authority section: bigbank.dr-evil.com. 3600 IN NS www.bigbank.com. Additional section: www.bigbank.com. IN A 1.2.3.4 Introduction To DNS Jonathan Oxer < [email_address] >
  • 118. what happened? request: bigbank.dr-evil.com. IN A response: Answer: (no response) Authority section: bigbank.dr-evil.com. 3600 IN NS www.bigbank.com. Additional section: www.bigbank.com. IN A 1.2.3.4 Introduction To DNS Jonathan Oxer < [email_address] >
  • 119. Introduction To DNS Jonathan Oxer < [email_address] >
  • 120. Dr Evil attack vector #2 redirect the NS record of the target domain Introduction To DNS Jonathan Oxer < [email_address] >
  • 121. compare this with... request: bigbank.dr-evil.com. IN A response: Answer: (no response) Authority section: bigbank.dr-evil.com. 3600 IN NS www.bigbank.com. Additional section: www.bigbank.com. IN A 1.2.3.4 Introduction To DNS Jonathan Oxer < [email_address] >
  • 122. ...alternative attack request: bigbank.dr-evil.com. IN A response: Answer: (no response) Authority section: bigbank.com. 3600 IN NS ns.dr-evil.com. Additional section: ns.dr-evil.com. IN A 1.2.3.4 Introduction To DNS Jonathan Oxer < [email_address] >
  • 123. Dr Evil attack vector #3 DNS forgery: respond before the real nameserver Introduction To DNS Jonathan Oxer < [email_address] >
  • 124. not as easy as it sounds! Introduction To DNS Jonathan Oxer < [email_address] >
  • 125. do a “ birthday attack” against the nonce value Introduction To DNS Jonathan Oxer < [email_address] >
  • 126. Introduction To DNS Jonathan Oxer < [email_address] > Start with the Taylor series approximation to the probability of a “nonce” value collision where “n” is the number of attempts and “H” is the number of unique outputs: Invert the expression: Now assigning a 0.5 probability of collision: So it's obvious that for a 16 bit hash there are 65536 outputs, ie: only 301 attempts are required to generate a collision by brute force!
  • 127. Introduction To DNS Jonathan Oxer < [email_address] > Start with the Taylor series approximation to the probability of a “nonce” value collision where “n” is the number of attempts and “H” is the number of unique outputs: Invert the expression: Now assigning a 0.5 probability of collision: So it's obvious that for a 16 bit hash there are 65536 outputs, ie: only 301 attempts are required to generate a collision by brute force!
  • 128. Introduction To DNS Jonathan Oxer < [email_address] > Start with the Taylor series approximation to the probability of a “nonce” value collision where “n” is the number of attempts and “H” is the number of unique outputs: Invert the expression: Now assigning a 0.5 probability of collision: So it's obvious that for a 16 bit hash there are 65536 outputs, ie: only 301 attempts are required to generate a collision by brute force!
  • 129. 301 attempts against 2 x16 hash Introduction To DNS Jonathan Oxer < [email_address] >
  • 130. secure zone transfers Introduction To DNS Jonathan Oxer < [email_address] >
  • 131. (mis?)using DNS Introduction To DNS Jonathan Oxer < [email_address] >
  • 132. TCP-over-DNS Introduction To DNS Jonathan Oxer < [email_address] >
  • 133. dynamic DNS Introduction To DNS Jonathan Oxer < [email_address] >
  • 134. SPF Introduction To DNS Jonathan Oxer < [email_address] >
  • 135. useful tools nslookup Introduction To DNS Jonathan Oxer < [email_address] >
  • 136. useful tools nslookup Introduction To DNS Jonathan Oxer < [email_address] >
  • 137. useful tools whois Introduction To DNS Jonathan Oxer < [email_address] >
  • 138. useful tools dig Introduction To DNS Jonathan Oxer < [email_address] >
  • 139. DNS server software Introduction To DNS Jonathan Oxer < [email_address] >
  • 140. authoritative and recursive: BIND, MaraDNS Introduction To DNS Jonathan Oxer < [email_address] >
  • 141. authoritative: MyDNS, tinydns Introduction To DNS Jonathan Oxer < [email_address] >
  • 142. recursive: dnscache Introduction To DNS Jonathan Oxer < [email_address] >
  • 143. master vs slave Introduction To DNS Jonathan Oxer < [email_address] >
  • 144. firewall issues port 53 UDP and TCP Introduction To DNS Jonathan Oxer < [email_address] >
  • 145. Introduction To DNS Jonathan Oxer < [email_address] >
  • 146. Introduction to DNS Thankyou :-) questions? Slid es: jon.oxer.com.au/talks Contact: Jonathan Oxer < [email_address] > We're hiring! www.ivt.com.au/jobs