SlideShare a Scribd company logo
1 of 58
DNS
for Developers
Maarten Balliauw
@maartenballiauw
“Can we add a CNAME to
the DNS?”
Manager
“Sure, why?”
Me
“foo.bar.com
should redirect to
http://bar.com/foo.aspx”
Manager
Who am I?
Maarten Balliauw
Antwerp, Belgium
Developer Advocate, JetBrains
Founder, MyGet
AZUG
Focus on web
ASP.NET MVC, Azure, SignalR, ...
Former MVP Azure & ASPInsider
Big passion: Azure
http://blog.maartenballiauw.be
@maartenballiauw
Agenda
The 101 stuff
How the Internet works (the DNS part)
DNS zones
Security
DNS in application architecture
Failover, load balancing, CDN
Configuration and service discovery
DNS for fun and profit
How the Internet works
(the DNS part)
“Let’s Google!”
“Let’s Google!”
We need an IP address for www.google.com
Use Domain Name System (“phone book”)
Map www.google.com to 172.217.0.164 / 2a00:1450:4009:80f::2004
After which the browser will do its HTTP magic
“Let’s Google!”
Check operating system (hosts file, ...)
Check DNS cache
Ask home router
Check DNS cache at ISP, not in cache? Iterate!
“Let’s Google!”
Ask root servers where .com. lives
Ask .com. authoritative server where google.com. lives
Ask .google.com. authoritative server for www.google.com. IP address
Digging into the DNS
DEMO
DNS
2 types of servers
Authoritative
“Owns the domain”
Cache (recursor)
“Resolves the domain for you”
DNS
Designed in 1983 by Paul Mockapetris (University of California, Irvine)
Converts hostnames to IP addresses
Stores mail delivery information for a domain
Stores other information for a domain (TXT records)
How do I get a domain name?
TLD’s managed by separate organisations
Verisign (.com) - Canadian Internet Registration Authority (CIRA) (.ca) - DNS Belgium (.be) - EURid (.eu) - …
Rules!
Who can register a name?
Ownership change procedures
Disputes
Technical rules
Usually domain registration done by registrar
E.g. DNSimple - http://bit.ly/dns4developers
Hierarchical system
.
com
google
www
mail
org
example
www staff
www
ca
confoo
…
Root servers
ICANN’s 13 root servers http://root-servers.org/
Why only 13?
UDP packets limited to 512 bytes
Response with > 13 entries would be > 512 bytes
There are more: anycast
gTLD, ccTLD, iTLD, … servers
Delegation from root servers to gTLD, ccTLD, iTLD, … servers
List managed by IANA http://www.iana.org/domains/root/db
“Where does .tld live?”
.ca - https://www.iana.org/domains/root/db/ca.html
“any.ca-servers.ca”
Root servers are a convention!
Every OS has them, but they can be replaced
E.g. www.opennicproject.org
They have their own gTLD’s as well, e.g. .bit, .free, .null, .oss, …
Not widely used (?) as it’s an alternate realm
E.g. www.orsn.org Open Root Server Network
Mirrors ICANN root servers
Reduce over-dependence on the USA
“Independent mode” in case political situation requires it
Caches, caches everywhere!
“Let’s change the IP address for our webserver in the DNS”
Caches in recursive resolvers (e.g. at ISP’s)
https://www.whatsmydns.net/
Caches in OS
ipconfig /flushdns
Caches in application (e.g. in browser)
Restart browser
Lower TTL beforehand to make updating smoother
DNS zones
DNS zone
“A Domain Name System (DNS) zone file is a text file that describes a
DNS zone. A DNS zone is a subset, often a single domain, of the
hierarchical domain name structure of the DNS.
The zone file contains mappings between domain names and IP
addresses and other resources, organized in the form of text
representations of resource records (RR).
A zone file may be either a DNS master file, authoritatively describing a
zone, or it may be used to list the contents of a DNS cache. [1]“
DNS zone
$ORIGIN example.com. ; designates the start of this zone file in the namespace
$TTL 1h ; default expiration time of all resource records
example.com. IN SOA ns.example.com. username.example.com. ( 2007120710 1d 2h 4w 1h )
example.com. IN NS ns ; ns.example.com is a nameserver for example.com
example.com. IN NS ns.somewhere.example. ; another nameserver
example.com. IN MX 10 mail.example.com. ; mail.example.com is the mailserver for example.com
@ IN MX 20 mail2.example.com. ; equivalent to above line, "@" represents zone origin
@ IN MX 50 mail3 ; equivalent to above line, but using a relative host name
example.com. IN A 192.0.2.1 ; IPv4 address for example.com
IN AAAA 2001:db8:10::1 ; IPv6 address for example.com
ns IN A 192.0.2.2 ; IPv4 address for ns.example.com
www IN CNAME example.com. ; www.example.com is an alias for example.com
mail IN A 192.0.2.3 ; IPv4 address for mail.example.com
mail2 IN A 192.0.2.4 ; IPv4 address for mail2.example.com
mail3 IN A 192.0.2.5 ; IPv4 address for mail3.example.com
DNS zone
Contains records describing a domain
Value + TTL
At the minimum: Start of Authority (SOA) record
“which server stores all the information about the website I want to look up”
Name of authoritative master name server
Email address of someone responsible for management of the name server
Expiration parameters
(serial #, slave refresh, slave retry time, slave expiration rime, cache duration or Time To Live)
DNS zone
Typical other records:
NS – Which are my nameservers? (or subdomain delegation)
A – IPv4 address pointer
AAAA – IPv6 address pointer
CNAME – Reference to another record (NOT A REDIRECT)
MX – Mail exchangers for the domain, with priorities
TXT – Textual value, often used to validate domain ownership/spam rules/…
SRV – Describes a service type and port
PTR
“Reverse DNS” used for e.g. diagnostics tools like ping and traceroute
Email anti-spam uses this as well (check EHLO IP address)
Zone transfer
Usually more than one nameserver for a zone
1 primary, other secondaries
No need to maintain zones on every slave!
Zone transfer
Primary knows secondary IP’s (we don’t want to transfer to just anyone)
Secondary knows zone name, queries primary over TCP (53) to replicate data
Uses SOA serial to check zone version & decide on update
Security
DNS cache poisoning
Consider this DNS zone…
Consider this web page…
Browser & OS cache ns1.google.com as 123.123.123.123.
$ORIGIN evil.com.
$TTL 1h
evil.com. IN SOA ns.evil.com. username.example.com. ( 2007120710 1d 2h 4w 1h )
evil.com. IN NS ns1.google.com.
ns1.google.com. IN A 123.123.123.123
<!-- ... -->
<img src="http://www.evil.com/image.gif"/>
<!-- ... -->
DNS cache poisoning
DEMO
DNSSEC (Domain Name SystemSecurity Extensions)
Set of extensions to DNS
Origin verification
Is the record really coming from the proper name server?
Adds signing support (and delegation)
Top-down the chain (root servers have DNSSEC, gTLD servers have DNSSEC, …)
Why did that demo work?
Custom resolver without DNSSEC  trust chain broken
DNS Amplification for DDoS
DNS recursion is awesome! (and often default)
Lots of DNS servers out there have recursion enabled for all
Lots of open resolvers out there
Saturate a victim’s network connection by using open DNS resolvers
UDP traffic has no source IP verification
Spoof source traffic
DNS Amplification for DDoS
Attacker Victim
Open DNS resolver
Open DNS resolver
Open DNS resolver
DNS Amplification for DDoS
Make sure to disable recursion
Or limit it to known, trusted networks
Use a DDoS filtering service
Akamai, CloudFlare, Verisign, ...
Use SPI firewall to verify packet origin
DNS in application
architecture
DNS failover / load balancing
Simple “round-robin”
www.example.local. IN A 192.168.0.1.
www.example.local. IN A 192.168.0.2.
www.example.local. IN A 192.168.0.3.
Most DNS servers return different IP as first item in list
Issues
What if one of the addresses is unreachable?
What if the order is cached at ISP?
DNS failover / load balancing
Intelligent DNS server
e.g. Azure Traffic Manager / Amazon Route 53
Scenarios
Round-robin
Failover
Performance
Issues
What if one of the addresses is unreachable?  monitoring of endpoints
What if the order is cached at ISP?  low TTL (still gaps)
Azure Traffic Manager
DEMO
Content Delivery Network (CDN)
Serve origin content from edge location close to the user
www.cdnreviews.com
Content Delivery Network (CDN)
Serve origin content from edge location close to the user
Intelligent DNS approach
Check user IP address location, return DNS record closer to the user
Try nslookup myget-2e16.kxcdn.com
Use IP Anycast
Advertise the same IP for edge server in different networks
No logic needed in DNS
The DNS root servers use this as well
Configuration in DNS
Typical application configuration
Key/value pairs
Hierarchy
 Store as DNS records (TXT?)
Typically multiple environments
One special DNS server per environment
One master to which we can recurse (e.g. shared settings)
Configuration in DNS
DEMO
Configuration in DNS
Alternative: store just the hostnames per environment
api.app.local  different IP per environment
Downside to configuration in DNS
Still need to maintain “the phone book” when changes occur
Not very flexible with dynamic resources...
Caches, CACHES!
Service discovery
“Detect services on various devices on a network of computers with minimal
configuration.”
UPnP
Service Location Protocol (SLP)
Zero Configuration Networking (Zeroconf)
Simple way to find and list services without maintaining a directory
Every service announces itself
Service discovery
Multicast DNS (mDNS)
224.0.0.251 port 5353 - every machine on the network listens
DNS Service Discovery (DNS-SD)
Works with mDNS and DNS
SRV (name + type, port, hostname)
PTR (pointer)
A (service IP)
TXT (additional information)
You are probably already using this today!
Printer, Apple Bonjour, Office365, …
46ce01.local. A 192.168.1.101
46ce01._printer._tcp.local. SRV 515 46ce01.local
_printer._tcp.local. PTR 46ce01._printer._tcp.local.
Service Discovery
with mDNS and DNS-SD
DEMO
Abusing DNS
For fun and profit
Public hotspots
Connect to wifi
Captive portal
Usually intercepts HTTP(S) only
Usually allows DNS lookups
Public hotspots
HTTP over DNS
Custom client and server
Server
Identify client
Fetch upstream data and make it available as DNS records
Client
Expose itself as a local proxy
Make DNS lookups with custom server
Things to be aware of…
UDP packet size, maximum length of records, maximum # of records
Encrypt transport
HTTP over DNS
Local browser
HoD client
HoD server
Target HTTP server
Browser uses local HoD client as proxy HoD server makes upstream request
Translates into DNS response(s)
HTTP over DNS on the Internet
Local browser
HoD client
HoD server
Target HTTP server
ISP nameserver
HTTP over DNS
DEMO
IP over DNS
Same idea as HTTP over DNS: tunnel traffic
http://code.kryo.se/iodine/
More elaborate protocol:
User identification
Auto-optimize UDP packet size
Compression
Conclusion
Conclusion
DNS is a hierarchical system
Built in 1983, flexible and widely used
Record types
DNSSEC
Application architecture
Failover, load balancing, CDN
Configuration and service discovery
Fun
Thank you!
http://blog.maartenballiauw.be
@maartenballiauw

More Related Content

What's hot

How to Make Norikra Perfect
How to Make Norikra PerfectHow to Make Norikra Perfect
How to Make Norikra PerfectSATOSHI TAGOMORI
 
Xapian vs sphinx
Xapian vs sphinxXapian vs sphinx
Xapian vs sphinxpanjunyong
 
What's new in Elasticsearch v5
What's new in Elasticsearch v5What's new in Elasticsearch v5
What's new in Elasticsearch v5Idan Tohami
 
Workshop: Learning Elasticsearch
Workshop: Learning ElasticsearchWorkshop: Learning Elasticsearch
Workshop: Learning ElasticsearchAnurag Patel
 
Cool bonsai cool - an introduction to ElasticSearch
Cool bonsai cool - an introduction to ElasticSearchCool bonsai cool - an introduction to ElasticSearch
Cool bonsai cool - an introduction to ElasticSearchclintongormley
 
Hopsworks Secure Streaming as-a-service with Kafka Flinkspark - Theofilos Kak...
Hopsworks Secure Streaming as-a-service with Kafka Flinkspark - Theofilos Kak...Hopsworks Secure Streaming as-a-service with Kafka Flinkspark - Theofilos Kak...
Hopsworks Secure Streaming as-a-service with Kafka Flinkspark - Theofilos Kak...Evention
 
From Zero to Production Hero: Log Analysis with Elasticsearch (from Velocity ...
From Zero to Production Hero: Log Analysis with Elasticsearch (from Velocity ...From Zero to Production Hero: Log Analysis with Elasticsearch (from Velocity ...
From Zero to Production Hero: Log Analysis with Elasticsearch (from Velocity ...Sematext Group, Inc.
 
SQL Monitoring in Oracle Database 12c
SQL Monitoring in Oracle Database 12cSQL Monitoring in Oracle Database 12c
SQL Monitoring in Oracle Database 12cTanel Poder
 
Elasticsearch quick Intro (English)
Elasticsearch quick Intro (English)Elasticsearch quick Intro (English)
Elasticsearch quick Intro (English)Federico Panini
 
Side by Side with Elasticsearch & Solr, Part 2
Side by Side with Elasticsearch & Solr, Part 2Side by Side with Elasticsearch & Solr, Part 2
Side by Side with Elasticsearch & Solr, Part 2Sematext Group, Inc.
 
Managing Your Content with Elasticsearch
Managing Your Content with ElasticsearchManaging Your Content with Elasticsearch
Managing Your Content with ElasticsearchSamantha Quiñones
 
Debugging PySpark: Spark Summit East talk by Holden Karau
Debugging PySpark: Spark Summit East talk by Holden KarauDebugging PySpark: Spark Summit East talk by Holden Karau
Debugging PySpark: Spark Summit East talk by Holden KarauSpark Summit
 
Introduction to Elasticsearch with basics of Lucene
Introduction to Elasticsearch with basics of LuceneIntroduction to Elasticsearch with basics of Lucene
Introduction to Elasticsearch with basics of LuceneRahul Jain
 
Solr and Elasticsearch, a performance study
Solr and Elasticsearch, a performance studySolr and Elasticsearch, a performance study
Solr and Elasticsearch, a performance studyCharlie Hull
 
How to automate all your SEO projects
How to automate all your SEO projectsHow to automate all your SEO projects
How to automate all your SEO projectsVincent Terrasi
 
Apache Spark and Object Stores
Apache Spark and Object StoresApache Spark and Object Stores
Apache Spark and Object StoresSteve Loughran
 
Best Practices of IoT in the Cloud
Best Practices of IoT in the CloudBest Practices of IoT in the Cloud
Best Practices of IoT in the CloudAmazon Web Services
 

What's hot (20)

How to Make Norikra Perfect
How to Make Norikra PerfectHow to Make Norikra Perfect
How to Make Norikra Perfect
 
Eyeing the Onion
Eyeing the OnionEyeing the Onion
Eyeing the Onion
 
Xapian vs sphinx
Xapian vs sphinxXapian vs sphinx
Xapian vs sphinx
 
What's new in Elasticsearch v5
What's new in Elasticsearch v5What's new in Elasticsearch v5
What's new in Elasticsearch v5
 
Workshop: Learning Elasticsearch
Workshop: Learning ElasticsearchWorkshop: Learning Elasticsearch
Workshop: Learning Elasticsearch
 
Cool bonsai cool - an introduction to ElasticSearch
Cool bonsai cool - an introduction to ElasticSearchCool bonsai cool - an introduction to ElasticSearch
Cool bonsai cool - an introduction to ElasticSearch
 
Hopsworks Secure Streaming as-a-service with Kafka Flinkspark - Theofilos Kak...
Hopsworks Secure Streaming as-a-service with Kafka Flinkspark - Theofilos Kak...Hopsworks Secure Streaming as-a-service with Kafka Flinkspark - Theofilos Kak...
Hopsworks Secure Streaming as-a-service with Kafka Flinkspark - Theofilos Kak...
 
From Zero to Production Hero: Log Analysis with Elasticsearch (from Velocity ...
From Zero to Production Hero: Log Analysis with Elasticsearch (from Velocity ...From Zero to Production Hero: Log Analysis with Elasticsearch (from Velocity ...
From Zero to Production Hero: Log Analysis with Elasticsearch (from Velocity ...
 
SQL Monitoring in Oracle Database 12c
SQL Monitoring in Oracle Database 12cSQL Monitoring in Oracle Database 12c
SQL Monitoring in Oracle Database 12c
 
Elasticsearch quick Intro (English)
Elasticsearch quick Intro (English)Elasticsearch quick Intro (English)
Elasticsearch quick Intro (English)
 
Side by Side with Elasticsearch & Solr, Part 2
Side by Side with Elasticsearch & Solr, Part 2Side by Side with Elasticsearch & Solr, Part 2
Side by Side with Elasticsearch & Solr, Part 2
 
Managing Your Content with Elasticsearch
Managing Your Content with ElasticsearchManaging Your Content with Elasticsearch
Managing Your Content with Elasticsearch
 
Debugging PySpark: Spark Summit East talk by Holden Karau
Debugging PySpark: Spark Summit East talk by Holden KarauDebugging PySpark: Spark Summit East talk by Holden Karau
Debugging PySpark: Spark Summit East talk by Holden Karau
 
Introduction to Elasticsearch with basics of Lucene
Introduction to Elasticsearch with basics of LuceneIntroduction to Elasticsearch with basics of Lucene
Introduction to Elasticsearch with basics of Lucene
 
Top ten-list
Top ten-listTop ten-list
Top ten-list
 
Solr and Elasticsearch, a performance study
Solr and Elasticsearch, a performance studySolr and Elasticsearch, a performance study
Solr and Elasticsearch, a performance study
 
How to automate all your SEO projects
How to automate all your SEO projectsHow to automate all your SEO projects
How to automate all your SEO projects
 
Introduction to solr
Introduction to solrIntroduction to solr
Introduction to solr
 
Apache Spark and Object Stores
Apache Spark and Object StoresApache Spark and Object Stores
Apache Spark and Object Stores
 
Best Practices of IoT in the Cloud
Best Practices of IoT in the CloudBest Practices of IoT in the Cloud
Best Practices of IoT in the Cloud
 

Viewers also liked

The Progressive Web and its New Challenges - Confoo Montréal 2017
The Progressive Web and its New Challenges - Confoo Montréal 2017The Progressive Web and its New Challenges - Confoo Montréal 2017
The Progressive Web and its New Challenges - Confoo Montréal 2017Christian Heilmann
 
Securing MicroServices - ConFoo 2017
Securing MicroServices - ConFoo 2017Securing MicroServices - ConFoo 2017
Securing MicroServices - ConFoo 2017Majid Fatemian
 
What is going on? Application Diagnostics on Azure - Copenhagen .NET User Group
What is going on? Application Diagnostics on Azure - Copenhagen .NET User GroupWhat is going on? Application Diagnostics on Azure - Copenhagen .NET User Group
What is going on? Application Diagnostics on Azure - Copenhagen .NET User GroupMaarten Balliauw
 
The Soul in The Machine - Developing for Humans
The Soul in The Machine - Developing for HumansThe Soul in The Machine - Developing for Humans
The Soul in The Machine - Developing for HumansChristian Heilmann
 
Microservices Minus the Hype: How to Build and Why
Microservices Minus the Hype: How to Build and WhyMicroservices Minus the Hype: How to Build and Why
Microservices Minus the Hype: How to Build and WhyMark Heckler
 
Protect your Users with Circuit breakers
Protect your Users with Circuit breakersProtect your Users with Circuit breakers
Protect your Users with Circuit breakersScott Triglia
 
Monitoring system with Grafana and StatsD
Monitoring system with Grafana and StatsDMonitoring system with Grafana and StatsD
Monitoring system with Grafana and StatsDArtur Prado
 
Exploring .NET memory management - A trip down memory lane - Copenhagen .NET ...
Exploring .NET memory management - A trip down memory lane - Copenhagen .NET ...Exploring .NET memory management - A trip down memory lane - Copenhagen .NET ...
Exploring .NET memory management - A trip down memory lane - Copenhagen .NET ...Maarten Balliauw
 
Paris Redis Meetup Introduction
Paris Redis Meetup IntroductionParis Redis Meetup Introduction
Paris Redis Meetup IntroductionGregory Boissinot
 
Designing irresistible APIs
Designing irresistible APIsDesigning irresistible APIs
Designing irresistible APIsKirsten Hunter
 
Java programming lab_manual_by_rohit_jaiswar
Java programming lab_manual_by_rohit_jaiswarJava programming lab_manual_by_rohit_jaiswar
Java programming lab_manual_by_rohit_jaiswarROHIT JAISWAR
 
My app is secure... I think
My app is secure... I thinkMy app is secure... I think
My app is secure... I thinkWim Godden
 
Of Gaps, Fillers and Empty Spaces… Fronteers2015 closing keynote
Of Gaps, Fillers and Empty Spaces… Fronteers2015 closing keynoteOf Gaps, Fillers and Empty Spaces… Fronteers2015 closing keynote
Of Gaps, Fillers and Empty Spaces… Fronteers2015 closing keynoteChristian Heilmann
 
Protect your users with Circuit breakers
Protect your users with Circuit breakersProtect your users with Circuit breakers
Protect your users with Circuit breakersScott Triglia
 
Designing irresistible apis
Designing irresistible apisDesigning irresistible apis
Designing irresistible apisKirsten Hunter
 
Cassandra vs. Redis
Cassandra vs. RedisCassandra vs. Redis
Cassandra vs. RedisTim Lossen
 
Introducing Azure DocumentDB - NoSQL, No Problem
Introducing Azure DocumentDB - NoSQL, No ProblemIntroducing Azure DocumentDB - NoSQL, No Problem
Introducing Azure DocumentDB - NoSQL, No ProblemAndrew Liu
 

Viewers also liked (20)

The Progressive Web and its New Challenges - Confoo Montréal 2017
The Progressive Web and its New Challenges - Confoo Montréal 2017The Progressive Web and its New Challenges - Confoo Montréal 2017
The Progressive Web and its New Challenges - Confoo Montréal 2017
 
Securing MicroServices - ConFoo 2017
Securing MicroServices - ConFoo 2017Securing MicroServices - ConFoo 2017
Securing MicroServices - ConFoo 2017
 
What is going on? Application Diagnostics on Azure - Copenhagen .NET User Group
What is going on? Application Diagnostics on Azure - Copenhagen .NET User GroupWhat is going on? Application Diagnostics on Azure - Copenhagen .NET User Group
What is going on? Application Diagnostics on Azure - Copenhagen .NET User Group
 
The Soul in The Machine - Developing for Humans
The Soul in The Machine - Developing for HumansThe Soul in The Machine - Developing for Humans
The Soul in The Machine - Developing for Humans
 
Microservices Minus the Hype: How to Build and Why
Microservices Minus the Hype: How to Build and WhyMicroservices Minus the Hype: How to Build and Why
Microservices Minus the Hype: How to Build and Why
 
Protect your Users with Circuit breakers
Protect your Users with Circuit breakersProtect your Users with Circuit breakers
Protect your Users with Circuit breakers
 
Microservices
MicroservicesMicroservices
Microservices
 
Monitoring system with Grafana and StatsD
Monitoring system with Grafana and StatsDMonitoring system with Grafana and StatsD
Monitoring system with Grafana and StatsD
 
Exploring .NET memory management - A trip down memory lane - Copenhagen .NET ...
Exploring .NET memory management - A trip down memory lane - Copenhagen .NET ...Exploring .NET memory management - A trip down memory lane - Copenhagen .NET ...
Exploring .NET memory management - A trip down memory lane - Copenhagen .NET ...
 
Paris Redis Meetup Introduction
Paris Redis Meetup IntroductionParis Redis Meetup Introduction
Paris Redis Meetup Introduction
 
Designing irresistible APIs
Designing irresistible APIsDesigning irresistible APIs
Designing irresistible APIs
 
Java programming lab_manual_by_rohit_jaiswar
Java programming lab_manual_by_rohit_jaiswarJava programming lab_manual_by_rohit_jaiswar
Java programming lab_manual_by_rohit_jaiswar
 
My app is secure... I think
My app is secure... I thinkMy app is secure... I think
My app is secure... I think
 
TDD and Getting Paid
TDD and Getting PaidTDD and Getting Paid
TDD and Getting Paid
 
Sensible scaling
Sensible scalingSensible scaling
Sensible scaling
 
Of Gaps, Fillers and Empty Spaces… Fronteers2015 closing keynote
Of Gaps, Fillers and Empty Spaces… Fronteers2015 closing keynoteOf Gaps, Fillers and Empty Spaces… Fronteers2015 closing keynote
Of Gaps, Fillers and Empty Spaces… Fronteers2015 closing keynote
 
Protect your users with Circuit breakers
Protect your users with Circuit breakersProtect your users with Circuit breakers
Protect your users with Circuit breakers
 
Designing irresistible apis
Designing irresistible apisDesigning irresistible apis
Designing irresistible apis
 
Cassandra vs. Redis
Cassandra vs. RedisCassandra vs. Redis
Cassandra vs. Redis
 
Introducing Azure DocumentDB - NoSQL, No Problem
Introducing Azure DocumentDB - NoSQL, No ProblemIntroducing Azure DocumentDB - NoSQL, No Problem
Introducing Azure DocumentDB - NoSQL, No Problem
 

Similar to DNS for Developers - ConFoo Montreal (20)

DNS for Developers - NDC Oslo 2016
DNS for Developers - NDC Oslo 2016DNS for Developers - NDC Oslo 2016
DNS for Developers - NDC Oslo 2016
 
Introduction
IntroductionIntroduction
Introduction
 
Domain Name System(ppt)
Domain Name System(ppt)Domain Name System(ppt)
Domain Name System(ppt)
 
DNSSEC - WHAT IS IT ? INSTALL AND CONFIGURE IN CHROOT JAIL
DNSSEC - WHAT IS IT ? INSTALL AND CONFIGURE IN CHROOT JAILDNSSEC - WHAT IS IT ? INSTALL AND CONFIGURE IN CHROOT JAIL
DNSSEC - WHAT IS IT ? INSTALL AND CONFIGURE IN CHROOT JAIL
 
DNS/DNSSEC by Nurul Islam
DNS/DNSSEC by Nurul IslamDNS/DNSSEC by Nurul Islam
DNS/DNSSEC by Nurul Islam
 
Dns
DnsDns
Dns
 
Domain Name Server
Domain Name ServerDomain Name Server
Domain Name Server
 
Dns
DnsDns
Dns
 
DNS_Tutorial 2.pptx
DNS_Tutorial 2.pptxDNS_Tutorial 2.pptx
DNS_Tutorial 2.pptx
 
Domain name system advanced power point presentation
Domain name system advanced power point presentationDomain name system advanced power point presentation
Domain name system advanced power point presentation
 
Domain Name Service
Domain Name ServiceDomain Name Service
Domain Name Service
 
DNS – Domain Name Service
DNS – Domain Name ServiceDNS – Domain Name Service
DNS – Domain Name Service
 
Linux basics andng hosti
Linux basics andng hostiLinux basics andng hosti
Linux basics andng hosti
 
Hands-on DNSSEC Deployment
Hands-on DNSSEC DeploymentHands-on DNSSEC Deployment
Hands-on DNSSEC Deployment
 
Ad fundamentals
Ad fundamentalsAd fundamentals
Ad fundamentals
 
Wintel
WintelWintel
Wintel
 
D.N.S
D.N.SD.N.S
D.N.S
 
Dns
DnsDns
Dns
 
Domainnamesystem
DomainnamesystemDomainnamesystem
Domainnamesystem
 
6425 b 10
6425 b 106425 b 10
6425 b 10
 

More from Maarten Balliauw

Bringing nullability into existing code - dammit is not the answer.pptx
Bringing nullability into existing code - dammit is not the answer.pptxBringing nullability into existing code - dammit is not the answer.pptx
Bringing nullability into existing code - dammit is not the answer.pptxMaarten Balliauw
 
Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...
Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...
Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...Maarten Balliauw
 
Building a friendly .NET SDK to connect to Space
Building a friendly .NET SDK to connect to SpaceBuilding a friendly .NET SDK to connect to Space
Building a friendly .NET SDK to connect to SpaceMaarten Balliauw
 
Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo...
Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo...Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo...
Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo...Maarten Balliauw
 
Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday...
Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday...Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday...
Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday...Maarten Balliauw
 
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...Maarten Balliauw
 
JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m...
JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m...JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m...
JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m...Maarten Balliauw
 
.NET Conf 2019 - Indexing and searching NuGet.org with Azure Functions and Se...
.NET Conf 2019 - Indexing and searching NuGet.org with Azure Functions and Se....NET Conf 2019 - Indexing and searching NuGet.org with Azure Functions and Se...
.NET Conf 2019 - Indexing and searching NuGet.org with Azure Functions and Se...Maarten Balliauw
 
CloudBurst 2019 - Indexing and searching NuGet.org with Azure Functions and S...
CloudBurst 2019 - Indexing and searching NuGet.org with Azure Functions and S...CloudBurst 2019 - Indexing and searching NuGet.org with Azure Functions and S...
CloudBurst 2019 - Indexing and searching NuGet.org with Azure Functions and S...Maarten Balliauw
 
NDC Oslo 2019 - Indexing and searching NuGet.org with Azure Functions and Search
NDC Oslo 2019 - Indexing and searching NuGet.org with Azure Functions and SearchNDC Oslo 2019 - Indexing and searching NuGet.org with Azure Functions and Search
NDC Oslo 2019 - Indexing and searching NuGet.org with Azure Functions and SearchMaarten Balliauw
 
Approaches for application request throttling - Cloud Developer Days Poland
Approaches for application request throttling - Cloud Developer Days PolandApproaches for application request throttling - Cloud Developer Days Poland
Approaches for application request throttling - Cloud Developer Days PolandMaarten Balliauw
 
Indexing and searching NuGet.org with Azure Functions and Search - Cloud Deve...
Indexing and searching NuGet.org with Azure Functions and Search - Cloud Deve...Indexing and searching NuGet.org with Azure Functions and Search - Cloud Deve...
Indexing and searching NuGet.org with Azure Functions and Search - Cloud Deve...Maarten Balliauw
 
Approaches for application request throttling - dotNetCologne
Approaches for application request throttling - dotNetCologneApproaches for application request throttling - dotNetCologne
Approaches for application request throttling - dotNetCologneMaarten Balliauw
 
CodeStock - Exploring .NET memory management - a trip down memory lane
CodeStock - Exploring .NET memory management - a trip down memory laneCodeStock - Exploring .NET memory management - a trip down memory lane
CodeStock - Exploring .NET memory management - a trip down memory laneMaarten Balliauw
 
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...Maarten Balliauw
 
ConFoo Montreal - Approaches for application request throttling
ConFoo Montreal - Approaches for application request throttlingConFoo Montreal - Approaches for application request throttling
ConFoo Montreal - Approaches for application request throttlingMaarten Balliauw
 
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...Maarten Balliauw
 
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...Maarten Balliauw
 
DotNetFest - Let’s refresh our memory! Memory management in .NET
DotNetFest - Let’s refresh our memory! Memory management in .NETDotNetFest - Let’s refresh our memory! Memory management in .NET
DotNetFest - Let’s refresh our memory! Memory management in .NETMaarten Balliauw
 
VISUG - Approaches for application request throttling
VISUG - Approaches for application request throttlingVISUG - Approaches for application request throttling
VISUG - Approaches for application request throttlingMaarten Balliauw
 

More from Maarten Balliauw (20)

Bringing nullability into existing code - dammit is not the answer.pptx
Bringing nullability into existing code - dammit is not the answer.pptxBringing nullability into existing code - dammit is not the answer.pptx
Bringing nullability into existing code - dammit is not the answer.pptx
 
Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...
Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...
Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...
 
Building a friendly .NET SDK to connect to Space
Building a friendly .NET SDK to connect to SpaceBuilding a friendly .NET SDK to connect to Space
Building a friendly .NET SDK to connect to Space
 
Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo...
Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo...Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo...
Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo...
 
Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday...
Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday...Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday...
Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday...
 
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
 
JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m...
JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m...JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m...
JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m...
 
.NET Conf 2019 - Indexing and searching NuGet.org with Azure Functions and Se...
.NET Conf 2019 - Indexing and searching NuGet.org with Azure Functions and Se....NET Conf 2019 - Indexing and searching NuGet.org with Azure Functions and Se...
.NET Conf 2019 - Indexing and searching NuGet.org with Azure Functions and Se...
 
CloudBurst 2019 - Indexing and searching NuGet.org with Azure Functions and S...
CloudBurst 2019 - Indexing and searching NuGet.org with Azure Functions and S...CloudBurst 2019 - Indexing and searching NuGet.org with Azure Functions and S...
CloudBurst 2019 - Indexing and searching NuGet.org with Azure Functions and S...
 
NDC Oslo 2019 - Indexing and searching NuGet.org with Azure Functions and Search
NDC Oslo 2019 - Indexing and searching NuGet.org with Azure Functions and SearchNDC Oslo 2019 - Indexing and searching NuGet.org with Azure Functions and Search
NDC Oslo 2019 - Indexing and searching NuGet.org with Azure Functions and Search
 
Approaches for application request throttling - Cloud Developer Days Poland
Approaches for application request throttling - Cloud Developer Days PolandApproaches for application request throttling - Cloud Developer Days Poland
Approaches for application request throttling - Cloud Developer Days Poland
 
Indexing and searching NuGet.org with Azure Functions and Search - Cloud Deve...
Indexing and searching NuGet.org with Azure Functions and Search - Cloud Deve...Indexing and searching NuGet.org with Azure Functions and Search - Cloud Deve...
Indexing and searching NuGet.org with Azure Functions and Search - Cloud Deve...
 
Approaches for application request throttling - dotNetCologne
Approaches for application request throttling - dotNetCologneApproaches for application request throttling - dotNetCologne
Approaches for application request throttling - dotNetCologne
 
CodeStock - Exploring .NET memory management - a trip down memory lane
CodeStock - Exploring .NET memory management - a trip down memory laneCodeStock - Exploring .NET memory management - a trip down memory lane
CodeStock - Exploring .NET memory management - a trip down memory lane
 
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
 
ConFoo Montreal - Approaches for application request throttling
ConFoo Montreal - Approaches for application request throttlingConFoo Montreal - Approaches for application request throttling
ConFoo Montreal - Approaches for application request throttling
 
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
 
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
 
DotNetFest - Let’s refresh our memory! Memory management in .NET
DotNetFest - Let’s refresh our memory! Memory management in .NETDotNetFest - Let’s refresh our memory! Memory management in .NET
DotNetFest - Let’s refresh our memory! Memory management in .NET
 
VISUG - Approaches for application request throttling
VISUG - Approaches for application request throttlingVISUG - Approaches for application request throttling
VISUG - Approaches for application request throttling
 

Recently uploaded

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 

Recently uploaded (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

DNS for Developers - ConFoo Montreal

  • 2. “Can we add a CNAME to the DNS?” Manager
  • 5.
  • 6. Who am I? Maarten Balliauw Antwerp, Belgium Developer Advocate, JetBrains Founder, MyGet AZUG Focus on web ASP.NET MVC, Azure, SignalR, ... Former MVP Azure & ASPInsider Big passion: Azure http://blog.maartenballiauw.be @maartenballiauw
  • 7. Agenda The 101 stuff How the Internet works (the DNS part) DNS zones Security DNS in application architecture Failover, load balancing, CDN Configuration and service discovery DNS for fun and profit
  • 8. How the Internet works (the DNS part)
  • 10. “Let’s Google!” We need an IP address for www.google.com Use Domain Name System (“phone book”) Map www.google.com to 172.217.0.164 / 2a00:1450:4009:80f::2004 After which the browser will do its HTTP magic
  • 11. “Let’s Google!” Check operating system (hosts file, ...) Check DNS cache Ask home router Check DNS cache at ISP, not in cache? Iterate!
  • 12. “Let’s Google!” Ask root servers where .com. lives Ask .com. authoritative server where google.com. lives Ask .google.com. authoritative server for www.google.com. IP address
  • 13. Digging into the DNS DEMO
  • 14. DNS 2 types of servers Authoritative “Owns the domain” Cache (recursor) “Resolves the domain for you”
  • 15. DNS Designed in 1983 by Paul Mockapetris (University of California, Irvine) Converts hostnames to IP addresses Stores mail delivery information for a domain Stores other information for a domain (TXT records)
  • 16. How do I get a domain name? TLD’s managed by separate organisations Verisign (.com) - Canadian Internet Registration Authority (CIRA) (.ca) - DNS Belgium (.be) - EURid (.eu) - … Rules! Who can register a name? Ownership change procedures Disputes Technical rules Usually domain registration done by registrar E.g. DNSimple - http://bit.ly/dns4developers
  • 18. Root servers ICANN’s 13 root servers http://root-servers.org/ Why only 13? UDP packets limited to 512 bytes Response with > 13 entries would be > 512 bytes There are more: anycast
  • 19. gTLD, ccTLD, iTLD, … servers Delegation from root servers to gTLD, ccTLD, iTLD, … servers List managed by IANA http://www.iana.org/domains/root/db “Where does .tld live?” .ca - https://www.iana.org/domains/root/db/ca.html “any.ca-servers.ca”
  • 20. Root servers are a convention! Every OS has them, but they can be replaced E.g. www.opennicproject.org They have their own gTLD’s as well, e.g. .bit, .free, .null, .oss, … Not widely used (?) as it’s an alternate realm E.g. www.orsn.org Open Root Server Network Mirrors ICANN root servers Reduce over-dependence on the USA “Independent mode” in case political situation requires it
  • 21. Caches, caches everywhere! “Let’s change the IP address for our webserver in the DNS” Caches in recursive resolvers (e.g. at ISP’s) https://www.whatsmydns.net/ Caches in OS ipconfig /flushdns Caches in application (e.g. in browser) Restart browser Lower TTL beforehand to make updating smoother
  • 23. DNS zone “A Domain Name System (DNS) zone file is a text file that describes a DNS zone. A DNS zone is a subset, often a single domain, of the hierarchical domain name structure of the DNS. The zone file contains mappings between domain names and IP addresses and other resources, organized in the form of text representations of resource records (RR). A zone file may be either a DNS master file, authoritatively describing a zone, or it may be used to list the contents of a DNS cache. [1]“
  • 24. DNS zone $ORIGIN example.com. ; designates the start of this zone file in the namespace $TTL 1h ; default expiration time of all resource records example.com. IN SOA ns.example.com. username.example.com. ( 2007120710 1d 2h 4w 1h ) example.com. IN NS ns ; ns.example.com is a nameserver for example.com example.com. IN NS ns.somewhere.example. ; another nameserver example.com. IN MX 10 mail.example.com. ; mail.example.com is the mailserver for example.com @ IN MX 20 mail2.example.com. ; equivalent to above line, "@" represents zone origin @ IN MX 50 mail3 ; equivalent to above line, but using a relative host name example.com. IN A 192.0.2.1 ; IPv4 address for example.com IN AAAA 2001:db8:10::1 ; IPv6 address for example.com ns IN A 192.0.2.2 ; IPv4 address for ns.example.com www IN CNAME example.com. ; www.example.com is an alias for example.com mail IN A 192.0.2.3 ; IPv4 address for mail.example.com mail2 IN A 192.0.2.4 ; IPv4 address for mail2.example.com mail3 IN A 192.0.2.5 ; IPv4 address for mail3.example.com
  • 25. DNS zone Contains records describing a domain Value + TTL At the minimum: Start of Authority (SOA) record “which server stores all the information about the website I want to look up” Name of authoritative master name server Email address of someone responsible for management of the name server Expiration parameters (serial #, slave refresh, slave retry time, slave expiration rime, cache duration or Time To Live)
  • 26. DNS zone Typical other records: NS – Which are my nameservers? (or subdomain delegation) A – IPv4 address pointer AAAA – IPv6 address pointer CNAME – Reference to another record (NOT A REDIRECT) MX – Mail exchangers for the domain, with priorities TXT – Textual value, often used to validate domain ownership/spam rules/… SRV – Describes a service type and port
  • 27. PTR “Reverse DNS” used for e.g. diagnostics tools like ping and traceroute Email anti-spam uses this as well (check EHLO IP address)
  • 28. Zone transfer Usually more than one nameserver for a zone 1 primary, other secondaries No need to maintain zones on every slave! Zone transfer Primary knows secondary IP’s (we don’t want to transfer to just anyone) Secondary knows zone name, queries primary over TCP (53) to replicate data Uses SOA serial to check zone version & decide on update
  • 30. DNS cache poisoning Consider this DNS zone… Consider this web page… Browser & OS cache ns1.google.com as 123.123.123.123. $ORIGIN evil.com. $TTL 1h evil.com. IN SOA ns.evil.com. username.example.com. ( 2007120710 1d 2h 4w 1h ) evil.com. IN NS ns1.google.com. ns1.google.com. IN A 123.123.123.123 <!-- ... --> <img src="http://www.evil.com/image.gif"/> <!-- ... -->
  • 32. DNSSEC (Domain Name SystemSecurity Extensions) Set of extensions to DNS Origin verification Is the record really coming from the proper name server? Adds signing support (and delegation) Top-down the chain (root servers have DNSSEC, gTLD servers have DNSSEC, …) Why did that demo work? Custom resolver without DNSSEC  trust chain broken
  • 33. DNS Amplification for DDoS DNS recursion is awesome! (and often default) Lots of DNS servers out there have recursion enabled for all Lots of open resolvers out there Saturate a victim’s network connection by using open DNS resolvers UDP traffic has no source IP verification Spoof source traffic
  • 34. DNS Amplification for DDoS Attacker Victim Open DNS resolver Open DNS resolver Open DNS resolver
  • 35. DNS Amplification for DDoS Make sure to disable recursion Or limit it to known, trusted networks Use a DDoS filtering service Akamai, CloudFlare, Verisign, ... Use SPI firewall to verify packet origin
  • 37. DNS failover / load balancing Simple “round-robin” www.example.local. IN A 192.168.0.1. www.example.local. IN A 192.168.0.2. www.example.local. IN A 192.168.0.3. Most DNS servers return different IP as first item in list Issues What if one of the addresses is unreachable? What if the order is cached at ISP?
  • 38. DNS failover / load balancing Intelligent DNS server e.g. Azure Traffic Manager / Amazon Route 53 Scenarios Round-robin Failover Performance Issues What if one of the addresses is unreachable?  monitoring of endpoints What if the order is cached at ISP?  low TTL (still gaps)
  • 40. Content Delivery Network (CDN) Serve origin content from edge location close to the user www.cdnreviews.com
  • 41. Content Delivery Network (CDN) Serve origin content from edge location close to the user Intelligent DNS approach Check user IP address location, return DNS record closer to the user Try nslookup myget-2e16.kxcdn.com Use IP Anycast Advertise the same IP for edge server in different networks No logic needed in DNS The DNS root servers use this as well
  • 42. Configuration in DNS Typical application configuration Key/value pairs Hierarchy  Store as DNS records (TXT?) Typically multiple environments One special DNS server per environment One master to which we can recurse (e.g. shared settings)
  • 44. Configuration in DNS Alternative: store just the hostnames per environment api.app.local  different IP per environment Downside to configuration in DNS Still need to maintain “the phone book” when changes occur Not very flexible with dynamic resources... Caches, CACHES!
  • 45. Service discovery “Detect services on various devices on a network of computers with minimal configuration.” UPnP Service Location Protocol (SLP) Zero Configuration Networking (Zeroconf) Simple way to find and list services without maintaining a directory Every service announces itself
  • 46. Service discovery Multicast DNS (mDNS) 224.0.0.251 port 5353 - every machine on the network listens DNS Service Discovery (DNS-SD) Works with mDNS and DNS SRV (name + type, port, hostname) PTR (pointer) A (service IP) TXT (additional information) You are probably already using this today! Printer, Apple Bonjour, Office365, … 46ce01.local. A 192.168.1.101 46ce01._printer._tcp.local. SRV 515 46ce01.local _printer._tcp.local. PTR 46ce01._printer._tcp.local.
  • 47. Service Discovery with mDNS and DNS-SD DEMO
  • 48. Abusing DNS For fun and profit
  • 49. Public hotspots Connect to wifi Captive portal Usually intercepts HTTP(S) only Usually allows DNS lookups
  • 51. HTTP over DNS Custom client and server Server Identify client Fetch upstream data and make it available as DNS records Client Expose itself as a local proxy Make DNS lookups with custom server Things to be aware of… UDP packet size, maximum length of records, maximum # of records Encrypt transport
  • 52. HTTP over DNS Local browser HoD client HoD server Target HTTP server Browser uses local HoD client as proxy HoD server makes upstream request Translates into DNS response(s)
  • 53. HTTP over DNS on the Internet Local browser HoD client HoD server Target HTTP server ISP nameserver
  • 55. IP over DNS Same idea as HTTP over DNS: tunnel traffic http://code.kryo.se/iodine/ More elaborate protocol: User identification Auto-optimize UDP packet size Compression
  • 57. Conclusion DNS is a hierarchical system Built in 1983, flexible and widely used Record types DNSSEC Application architecture Failover, load balancing, CDN Configuration and service discovery Fun

Editor's Notes

  1. Run command line nslookup www.google.com Note that the response is from an unauthoritative server (meaning it is served from a cache somewhere in between our PC and the Internet) Dig provides us more info about how the name resolution happens dig A www.google.com +trace
  2. Maybe visit the site and look at a few of the servers – there are tonnes of them!
  3. Browser makes a request to a non-existent hostname Our DNS resolver learns that ns1.google.com is in an IP address that we own Our OS (or worse, our recursive DNS) caches this, I own Google on your machine 
  4. Open 02 CachePoisoning demo Walk through the code, explain the redirects that happen (our custom domain says it’s in Google’s DNS, for which we send the IP address in the response) Set machine’s nameserver to 127.0.0.1 Visit the custom HTML page Visit www.google.com Ping www.google.com and note the IP address is wrong
  5. Create new Traffic Manager endpoint in new portal (maartenba.trafficmanager.net) Set DNS TTL to 30 seconds to make the talk more enjoyable Add external endpoints: www.bing.com www.google.com Run nslookup set type=CNAME maartenba.trafficmanager.net See result, wait 30 seconds and try again See different result We can do this failover, round-robin, or “performance”
  6. Mention CDN’s exist with both approaches. Both have own advantages. No logic = no logic, just route. Logic = be smart, eg Cedexis does multi-CDN, picks host based on all kinds of parameters, uses monitoring, …
  7. Open 03 ConfigurationSample demo Explain ConfigurationServer class – it adds an entry per configuration value we want to store and serves it up as a TXT record Explain we could have multiple of the same, the client would just get multiple entries instead of one. Useful for failover scenarios etc. Show server Program.cs where we store some values, then run it Show client Program.cs where we fetch values, then run it Explain we could have multiple servers, to which we can recurse for shared settings across environments
  8. You are probably already using this today! (Office 365? Apple Bonjour)
  9. Open 04 ServiceDiscovery Run ServiceDiscovery.Client and see if there are any printers (or other) on the local network. Probably not but let’s check anyway. Open ServiceDiscovery.SampleService, explain what we are doing here We have a simple OWIN Web API running, nothing fancy Now let’s publish this service! ZeroconfService package from NuGet using (var service = new ZeroconfService.NetService( "local.", "_webapi._tcp", "Maarten's awesome API", 9999)) { service.Publish(); Console.ReadLine(); } Run the client again, see that our service is now discovered – zero configuration! The service tells everyone else where it lives and what it does.
  10. Open 05 HTTP over DNS Demonstrate the server – run the server project Use nslookup set type=TXT Query for www.google.com See that we get back a number of chunks – we need this as the DNS response can only contain a limited amount of data Get a chunk, 1.www.google.com Get another, 2.www.google.com Now look at the server code – Open HttpProxyingDnsServer Important work is in “ResolveLocal” Explain the code – we check if we request a chunk or not. If not, calculate number of chunks and return it as a TXT If we do want a chunk, fetch the chunk and the next chunks, return TXT records for each Now look at the custom client we created Create a DNS client Get the value for number of chunks Get the chunks and concatenate them Run the client as well, see what it does…