This site will have limited functionality while we undergo maintenance to improve your experience. If an article doesn't solve your issue and you want to ask a question, we have our support community waiting to help you at @FirefoxSupport on Twitter and/r/firefox on Reddit.

Search Support

Avoid support scams. We will never ask you to call or text a phone number or share personal information. Please report suspicious activity using the “Report Abuse” option.

Learn More

How does Firefox DNS cache work with multi A records?

  • 1 ŋuɖoɖo
  • 2 masɔmasɔ sia le wosi
  • 1 view
  • Nuɖoɖo mlɔetɔ cor-el

more options

Hi Everyone,

I'm trying to understand how Firefox works internally when querying its DNS cache regarding domains with multi A records, this means a domain with more than one IP associated, like www.google.com.

Facts: - The SO has priority when resolving DNS and sends his cache content to the browser when asked. It sends ALL IPs associated to a requested domain. - Firefox's cache then has all IPs for every domain and calls the shots. - DNS Timeouts change per browser, in Firefox I've seen some domains have 4 minutes of TTL, others even less (1 minute TTL) - If I open Firebug plugin I can see the "IP Address" field in each request and see which IP was resolved per domain

Scenario 1: - I hit www.google-analytics.com (which has 12 defined IPs, found it in chrome's dns cache: chrome://net-internals/#dns, or querying the OS: nslookup www.google-analytics.com in a Mac Console ) - Then one IP is resolved and the SAME will be used during the 4 minutes the cache lasts (as validated with trial and error) - After 4 minutes the dice is thrown again and any other of the 12 IPs may be returned when hitting the URL again. (in one test I got IP finishing in 58, second hit IP finishing in 56, they are not ordered either)

Scenario 2: - I hit www.livenation.com and then filter for hits to www.google-analytics.com to see which IPs are used through AJAX in all the multiple hits - Then one IP is resolved and the SAME is used for all google-analytics hits during the 4 minutes the cache lasts.

Scenario 3 (Exactly SAME as 2): - I hit www.livenation.com and then filter for hits to www.google-analytics.com to see which IPs are used through AJAX in all the multiple hits - Then different IPs are defined for different AJAX hits of www.google-analytics.com, seamlessly random. In every request each AJAX hit will be resolved to a different IP (or repeat some, with no pattern). Behavior will keep going until 4 minutes come by and the DICE of DNS is rolled again.

Conclusions and Questions: - Scenario 2 and Scenario 3 are easy to reproduce but it's not deterministic, every 4 minutes Firefox seems to choose whether to use ONE or ALL IPs during the period and then if it's ALL, it throws a new decision dice on EVERY hit. What is Firefox's internal behavior regarding reading its own DNS cache? - Does this mean that if my site has multi-record DNS then there is no level of IP stickiness? - Is there any pattern on how it happens? The context path is used?

NOTE: I've seen this happen both in Firefox and Chrome and both in MAC and Windows. I've validated this behavior in many multi-record domains, including www.google.com, google-analytics, assets.livenation.com, twitter.com, etc.

Any help or insight on this is MOST appreciated. Don't hesitate to ask if you need more details on this. Thanks! Federico

Hi Everyone, I'm trying to understand how Firefox works internally when querying its DNS cache regarding domains with multi A records, this means a domain with more than one IP associated, like www.google.com. Facts: - The SO has priority when resolving DNS and sends his cache content to the browser when asked. It sends ALL IPs associated to a requested domain. - Firefox's cache then has all IPs for every domain and calls the shots. - DNS Timeouts change per browser, in Firefox I've seen some domains have 4 minutes of TTL, others even less (1 minute TTL) - If I open Firebug plugin I can see the "IP Address" field in each request and see which IP was resolved per domain Scenario 1: - I hit www.google-analytics.com (which has 12 defined IPs, found it in chrome's dns cache: chrome://net-internals/#dns, or querying the OS: nslookup www.google-analytics.com in a Mac Console ) - Then one IP is resolved and the SAME will be used during the 4 minutes the cache lasts (as validated with trial and error) - After 4 minutes the dice is thrown again and any other of the 12 IPs may be returned when hitting the URL again. (in one test I got IP finishing in 58, second hit IP finishing in 56, they are not ordered either) Scenario 2: - I hit www.livenation.com and then filter for hits to www.google-analytics.com to see which IPs are used through AJAX in all the multiple hits - Then one IP is resolved and the SAME is used for all google-analytics hits during the 4 minutes the cache lasts. Scenario 3 (Exactly SAME as 2): - I hit www.livenation.com and then filter for hits to www.google-analytics.com to see which IPs are used through AJAX in all the multiple hits - Then different IPs are defined for different AJAX hits of www.google-analytics.com, seamlessly random. In every request each AJAX hit will be resolved to a different IP (or repeat some, with no pattern). Behavior will keep going until 4 minutes come by and the DICE of DNS is rolled again. Conclusions and Questions: - Scenario 2 and Scenario 3 are easy to reproduce but it's not deterministic, every 4 minutes Firefox seems to choose whether to use ONE or ALL IPs during the period and then if it's ALL, it throws a new decision dice on EVERY hit. What is Firefox's internal behavior regarding reading its own DNS cache? - Does this mean that if my site has multi-record DNS then there is no level of IP stickiness? - Is there any pattern on how it happens? The context path is used? NOTE: I've seen this happen both in Firefox and Chrome and both in MAC and Windows. I've validated this behavior in many multi-record domains, including www.google.com, google-analytics, assets.livenation.com, twitter.com, etc. Any help or insight on this is MOST appreciated. Don't hesitate to ask if you need more details on this. Thanks! Federico

All Replies (1)

more options