Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


How to set up anycast IP address (anycast DNS)? - Page 2
New on LowEndTalk? Please Register and read our Community Rules.

All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.

How to set up anycast IP address (anycast DNS)?

2»

Comments

  • vldvld Member
    edited January 2015

    gbshouse said: @vld - read the docs regarding GeoDNS :) the TTL should be 1 sec. and not 1 hour. Basically we have two types of cache enabled - one on packet level and one on backend level. The packets with EDNS0 are not cached (which is correct) but all backend results with TTL higher than 30 sec. are cached for performance reasons.

    A 1 second ttl is bad for performance, in my case. Why not respect the RFC and cache based on subnets.

    Edit: and even with 1 second, that's still 1 second cache - still not good.

  • gbshousegbshouse Member, Host Rep

    @vld - remember that clients never query our servers directly, always via public DNS (such as Google DNS or OpenDNS). As mentioned earlier EDNS0 packets are never cached on packet level and not cached on backend level if TTL is lower than 30 sec. We have customers which do over billion requests domain/month and they are happy with our GeoDNS. In your case of your test - try to create new test records are previous can still be cached

    Thanked by 1aglodek
  • aglodekaglodek Member
    edited January 2015

    @gbshouse: sure, I'm open to ideas and happy to discuss options. In the meantime, here's what I'm looking for in terms of DNS management:

    • zone templates + adding zones en masse;

    • zone name wildcards + zone category field, making it possible to modify all zones in same category or using wildcard (using zone templates);

    • DDNS + automation (i.e. API making zone + record adding/modifying using scripts possible);

    • configurable TTL;

    • DNSSEC support;

    • vanity nameservers, including SOA record;

    • economy of scale, i.e. same (low) cost at 1000 and 10,000 domains ;)

    Have I forgotten about anything here...? ;) But seriously now: started doing housekeeping in my little domain collection and almost went bonkers trying to set up zones and make modifications using run of the mill DNS CP of one of my providers. Threw in the towel at domain no. 50 of 1000+ or thereabouts. And this is just the beginning. Hence this sudden, crazy urge to set up my own DNS, together with some bells and whistles while at it ;)

    EDIT: I mention DNS management and not DNS CP, as I'm perfectly happy to deal with raw text files and scripts, without benefit of any webpanel or DB backend. Automation is key here. Managing each zone separately is out of the question.

  • I feel that AnyCast is somewhat misunderstood sometimes. Shortening it somewhat bluntly, Anycast solves the Providers problem (availability, least cost reachability, etc) while aglodek wants to mainly accomodate the client. Also, as some correctly noted, AnyCast isn't concerned anout the "best" Ip but about getting you to the closest DNS server (or a fall back if needed).

    As for GeoIP I wouldn't worry at all about the precision of data. After all, the point here is not "find the best/next pop in your city" but sth. like "You're in Asia. OK, we won't send you to a server in Norway but one in India or HK or ...".

    I agree that some "customer accessible BGB routing" (btw: AnyCast does it's magic using ... bingo, BGB) or some kind of GeoIP based solution is better and more adequate.
    One "but" though: Considering the low granularity needed ("roughly your part of the world") and the project (couple a 1000 domains) and the resources available (VPS) I'd opt for a "cooked myself every day" local GeoIP DB rather than creating lots of traffic and lag with dyn. lookups. In other words: Get a worldmap every day or, even better, a changes only map, process that (say, with country granularity) and use it for a given day (Hint: Doing that and providing it might turn into a profitable small service itself).

    Thanked by 1aglodek
  • @bsdguy said:

    MaxMind provides international GeoIP database with selectable granularity, with daily diffs or fulls.

    Thanked by 1aglodek
  • @GoodHosting said:
    MaxMind provides international GeoIP database with selectable granularity, with daily diffs or fulls.

    Cool! So, voila, there's a simple and liteweight solution for that problem. Any idea about cost?

  • aglodekaglodek Member
    edited January 2015

    @bsdguy said: I feel that AnyCast is somewhat misunderstood sometimes. Shortening it somewhat bluntly, Anycast solves the Providers problem (availability, least cost reachability, etc) while aglodek wants to mainly accomodate the client. Also, as some correctly noted, AnyCast isn't concerned anout the "best" Ip but about getting you to the closest DNS server (or a fall back if needed).

    Very good point here. Correct me if I'm wrong, but my understanding of anycast DNS was that it works like BIND Views, where each DNS node is assigned a "View" with different "A" record(s), selected for their proximity - n'est pas? If not this, then how does the DNS node, receiving the query, determine which "A" record, out of the many listed, points to the closest POP (webserver or whatever)?

    As for GeoIP I wouldn't worry at all about the precision of data. After all, the point here is not "find the best/next pop in your city" but sth. like "You're in Asia. OK, we won't send you to a server in Norway but one in India or HK or ..."

    Exactly right. And from where I sit, I'm not concerned with miliseconds but differences measured in hundreds of miliseconds... well, maybe 50's of miliseconds ;)

  • Huh! Yesno. Like many funny things AnyCast sounds dead simple - but isn't.

    Sure, you can set up every dns server with data for "it's" region. So, if a client ends up at your EU DNS server, (s)he gets the EU "view", i.e. the IP of, say, your NL web server.

    But (that's where it gets funny) What if your Asia DNS is down and, thanks to AnyCast, your client get's routed to the EU DNS? Before you say "So what. A bad answer is better than asking a dead DNS server" wait. Because there hve been cases were the server was alive but the DNS service wasn't. And AnyCast happily sent people to a dead DNS service on a not dead server.
    Moreover, you are usually not in control of the underlying bits and pieces (like BGB), unless you are a pretty hefty major player. Which basically means that AnyCast for you is a bet with many open variables.
    Also, don't forget that you are not talking about dozens of AnyCasted servers but just a handful. Which means that each of your 3 or 5 (anycasted) DNS servers must have all records for all zones anyway (after all, a client might come from who knows where thanks to AnyCast and your modest setp). Bingo, you are back at start.
    And there are more funny issues you as a not major player wouldn't love to meet ...

    Probably most importantly though, DNS already has built-in fall back capability. Each of your domains has >= 2 DNS servers in its records anyway.
    I see it like that:

    • you want realiability.That's built-in anyway with DNS (and can be cheaply extended)
    • you want reasonably granular data and losely matching answers for your clients
    • your operations are relatively modest.

    Solution: ExaBGB would be nice but they are, in a way, having the same problem you have, namely (still) modest operations and low coverage. Once they have grown bigger that might be very interesting to look at. I think they've got something really interesting and promising, albeit not yet grown to an attractive size (like 10 or 12 smartly distributed global POPs).
    Currently standard, well implemented DNS combined with some reasonably low granularity and reasonable dynamic (like 1 - 4 times per day update) GeoIP looks like the best and most reasonable way to go.

    BTW: A compliment to ourselves, the colourful LET community here! I find it amazing, how even not that trivial problems get crunched, digested, processed and solved here thanks to the guys and the combined know-how, experience and brain-power (well, except me, probably **g) around here.

    Thanked by 1aglodek
  • aglodekaglodek Member
    edited January 2015

    @bsdguy said: But (that's where it gets funny) What if your Asia DNS is down and, thanks to AnyCast, your client get's routed to the EU DNS?

    Very good point, but as you correctly point out later in your comment, there will be at least 2 anycast DNS nodes in each POP (ns1 + ns2). Me, like Arthur C. Clarke's Ramans, like threes, so: ns1 + ns2 + ns3 ;)

    This aside, assuming that all "A" records for all regions are listed in each DNS node and there are no BIND-like Views, my question stands: how does the DNS node, receiving the query, determine which "A" record, out of the many listed, points to the closest POP (webserver or whatever)?

    @gbshouse or @William - if it's not a closely held secret? ;)

  • Raw (dynamic lookup) or cooked GeoIP I suggest, the latter being more attractive in your case.

    Oh, and btw: your 2nd anycasted DNS server won't do you no good because from AnyCasts point of view there is no problem. Actually it may turn against you because you can't know how the "client" (usually an ISPs recursor) interprets the situation (and reacts) nor how AnyCast reacts the next time. Large players typically handle those trouble cases (in one way or another depending on their general setup) through unicast measures but you can't do that easily because almost everything in the whole game is outside your control.

  • @bsdguy: what do you mean by "raw (dynamic lookup)?

  • Raw: Client request comes in, dns server asks GeoIP server "Where is this (clients) IP from?", GeoIP server answers "country X", dns server finds closest/best/whatever IP for country X and responds to client.

    Cooked: You download 1 - 4 times/days the GeoIP changes, update your local (low granularity) database and serve DNS requests based on your local GeoIP copy.

    Thanked by 1aglodek
  • @bsdguy said: Raw: Client request comes in, dns server asks GeoIP server "Where is this (clients) IP from?", GeoIP server answers "country X", dns server finds closest/best/whatever IP for country X and responds to client.

    Sounds pretty straightforward. Do you know if NSD4 comes with any API/hooks to build on maybe?

  • Sorry, no. But from what I remember (from quite some while ago) the source was well structured and of good quality.

    Thanked by 1aglodek
Sign In or Register to comment.