Doing
                               Horrible Things
                                  to DNS
                            ...
The basics of DNS



Thursday, September 23, 2010
Thursday, September 23, 2010
Thursday, September 23, 2010
Thursday, September 23, 2010
Thursday, September 23, 2010
Thursday, September 23, 2010
San Francisco - Mission Branch
Thursday, September 23, 2010
Thursday, September 23, 2010
Thursday, September 23, 2010
San Francisco - Main Library
Thursday, September 23, 2010
Thursday, September 23, 2010
Thursday, September 23, 2010
New York City - 5th & 42nd Branch
Thursday, September 23, 2010
Thursday, September 23, 2010
Thursday, September 23, 2010
New York City - 5th & 42nd Branch
Thursday, September 23, 2010
Thursday, September 23, 2010
San Francisco - Main Library
Thursday, September 23, 2010
San Francisco - Main Library
Thursday, September 23, 2010
Thursday, September 23, 2010
San Francisco - Mission Branch
Thursday, September 23, 2010
San Francisco - Mission Branch
Thursday, September 23, 2010
Thursday, September 23, 2010
Thursday, September 23, 2010
Thursday, September 23, 2010
Thursday, September 23, 2010
DNS for performance



Thursday, September 23, 2010
Page Load Time vs. Bandwidth
Thursday, September 23, 2010
Page Load Time vs. Round Trip Time
Thursday, September 23, 2010
Trend Curves for Bandwidth vs. RTT
Thursday, September 23, 2010
Serial HTTP loading
Thursday, September 23, 2010
Parallel HTTP loading
Thursday, September 23, 2010
Why not just use a bunch of domains?




Thursday, September 23, 2010
DNS Querying
Thursday, September 23, 2010
Ideal? 1 domain many threads




Thursday, September 23, 2010
Option 1: SPDY




Thursday, September 23, 2010
Good: Multi-thread TCP connections
                        Bad: Only works on Chrome




Thursday, September 23, 2010
Option 2: Do horrible things to DNS




Thursday, September 23, 2010
Good: Works now
                               Bad: Might have to violate RFCs




Thursday, September 23, 2010
Option 2a - Mucking about with C names




Thursday, September 23, 2010
CNAMES are hosts which
                               are aliases of other hosts




Thursday, September 23, 2010
ajax1.hackerhouse.org.        1800   IN   CNAME   ajax2.hackerhouse.
 ajax2.hackerhouse.org.        1800   IN   CNAME   aj...
We now have 6 hostnames




Thursday, September 23, 2010
Good: 6 hostnames
                                 Bad: Inflexible




Thursday, September 23, 2010
Option 2b - Doing weird things with RRs




Thursday, September 23, 2010
RR is the section of a DNS response which
              contains the HOST records




Thursday, September 23, 2010
;; QUESTION SECTION:
 ;ajax.hackerhouse.org.           IN A

 ;; ANSWER SECTION:
 ajax.hackerhouse.org.         60 IN A   ...
;; QUESTION SECTION:
 ;ajax.hackerhouse.org.             IN A
 ;ajax1.hackerhouse.org.            IN A
 ;ajax2.hackerhouse...
;; QUESTION SECTION:
 ;ajax.hackerhouse.org.         IN A

 ;; ANSWER SECTION:
 ajax.hackerhouse.org.         60   IN   A ...
Good: Flexible
                               Bad: Caching /Violating RFCs




Thursday, September 23, 2010
Upcoming SlideShare
Loading in …5
×

Doing Horrible Things to DNS in the Name of Science - SF Performance Meetup

3,453 views
3,344 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,453
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Doing Horrible Things to DNS in the Name of Science - SF Performance Meetup

  1. 1. Doing Horrible Things to DNS (in the name of science) @sh1mmer SF Perf Meetup Thursday, September 23, 2010
  2. 2. The basics of DNS Thursday, September 23, 2010
  3. 3. Thursday, September 23, 2010
  4. 4. Thursday, September 23, 2010
  5. 5. Thursday, September 23, 2010
  6. 6. Thursday, September 23, 2010
  7. 7. Thursday, September 23, 2010
  8. 8. San Francisco - Mission Branch Thursday, September 23, 2010
  9. 9. Thursday, September 23, 2010
  10. 10. Thursday, September 23, 2010
  11. 11. San Francisco - Main Library Thursday, September 23, 2010
  12. 12. Thursday, September 23, 2010
  13. 13. Thursday, September 23, 2010
  14. 14. New York City - 5th & 42nd Branch Thursday, September 23, 2010
  15. 15. Thursday, September 23, 2010
  16. 16. Thursday, September 23, 2010
  17. 17. New York City - 5th & 42nd Branch Thursday, September 23, 2010
  18. 18. Thursday, September 23, 2010
  19. 19. San Francisco - Main Library Thursday, September 23, 2010
  20. 20. San Francisco - Main Library Thursday, September 23, 2010
  21. 21. Thursday, September 23, 2010
  22. 22. San Francisco - Mission Branch Thursday, September 23, 2010
  23. 23. San Francisco - Mission Branch Thursday, September 23, 2010
  24. 24. Thursday, September 23, 2010
  25. 25. Thursday, September 23, 2010
  26. 26. Thursday, September 23, 2010
  27. 27. Thursday, September 23, 2010
  28. 28. DNS for performance Thursday, September 23, 2010
  29. 29. Page Load Time vs. Bandwidth Thursday, September 23, 2010
  30. 30. Page Load Time vs. Round Trip Time Thursday, September 23, 2010
  31. 31. Trend Curves for Bandwidth vs. RTT Thursday, September 23, 2010
  32. 32. Serial HTTP loading Thursday, September 23, 2010
  33. 33. Parallel HTTP loading Thursday, September 23, 2010
  34. 34. Why not just use a bunch of domains? Thursday, September 23, 2010
  35. 35. DNS Querying Thursday, September 23, 2010
  36. 36. Ideal? 1 domain many threads Thursday, September 23, 2010
  37. 37. Option 1: SPDY Thursday, September 23, 2010
  38. 38. Good: Multi-thread TCP connections Bad: Only works on Chrome Thursday, September 23, 2010
  39. 39. Option 2: Do horrible things to DNS Thursday, September 23, 2010
  40. 40. Good: Works now Bad: Might have to violate RFCs Thursday, September 23, 2010
  41. 41. Option 2a - Mucking about with C names Thursday, September 23, 2010
  42. 42. CNAMES are hosts which are aliases of other hosts Thursday, September 23, 2010
  43. 43. ajax1.hackerhouse.org. 1800 IN CNAME ajax2.hackerhouse. ajax2.hackerhouse.org. 1800 IN CNAME ajax3.hackerhouse. ajax3.hackerhouse.org. 1800 IN CNAME ajax4.hackerhouse. ajax4.hackerhouse.org. 1800 IN CNAME ajax5.hackerhouse. ajax5.hackerhouse.org. 1800 IN CNAME ajax.hackerhouse. ajax.hackerhouse.org. 1800 IN A 127.0.0.1 Thursday, September 23, 2010
  44. 44. We now have 6 hostnames Thursday, September 23, 2010
  45. 45. Good: 6 hostnames Bad: Inflexible Thursday, September 23, 2010
  46. 46. Option 2b - Doing weird things with RRs Thursday, September 23, 2010
  47. 47. RR is the section of a DNS response which contains the HOST records Thursday, September 23, 2010
  48. 48. ;; QUESTION SECTION: ;ajax.hackerhouse.org. IN A ;; ANSWER SECTION: ajax.hackerhouse.org. 60 IN A 184.106.231.91 Thursday, September 23, 2010
  49. 49. ;; QUESTION SECTION: ;ajax.hackerhouse.org. IN A ;ajax1.hackerhouse.org. IN A ;ajax2.hackerhouse.org. IN A ;; ANSWER SECTION: ajax.hackerhouse.org. 60 IN A 184.106.231.91 ajax1.hackerhouse.org. 60 IN A 184.106.231.90 ajax2.hackerhouse.org. 60 IN A 184.106.231.89 Thursday, September 23, 2010
  50. 50. ;; QUESTION SECTION: ;ajax.hackerhouse.org. IN A ;; ANSWER SECTION: ajax.hackerhouse.org. 60 IN A 184.106.231.91 ;; ADDITIONAL SECTION: ajax1.hackerhouse.org. 60 IN A 184.106.231.90 ajax2.hackerhouse.org. 60 IN A 184.106.231.89 Thursday, September 23, 2010
  51. 51. Good: Flexible Bad: Caching /Violating RFCs Thursday, September 23, 2010

×