Date: Tue, 19 Sep 2006 06:23:57 -0600 From: Fred Clift <fred@clift.org> To: freebsd-stable@freebsd.org Subject: Re: bind round robin Message-ID: <450FE15D.8050905@clift.org> In-Reply-To: <20060919120109.9DCDF16A74C@hub.freebsd.org> References: <20060919120109.9DCDF16A74C@hub.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Sep 19, 2006 at 02:00:23PM +0800, pinoyskull wrote: >> One of my client's domain has multiple IPs for redundancy, i configured >> his www as such >> >> www IN A 10.10.10.10 >> www IN A 192.168.0.10 >> >> Is there a way to prioritize 10.10.10.10 over 192.168.0.10? How do i >> configure it? I missed the original question about this but if you're really interested in doing somethign in software rather than buying some kind of load-balancing hardware, then you could write your own (simple) backend for powerdns. powerdns is in ports and it has a simple "pipe" interface to the daemon that would let you write your own "proporitional-share" dns responder for some set of RRs. Check out the geographic load balancing that the blitzed.org guys use... http://wiki.blitzed.org/DNS_balancing Basically, you would delegate a subdomain (bar.example.org) to the server running your custom powerdns config and all lookups of foo.bar.example.org would end up at your server, where your custome (20 or 60 lines of perl) powerdns module could return which ever of the two IPs you prefer, either statistically, or based on some kind of remotely fetched load average, ping time, other-availibility-metric, etc. So, say you wanted 80% of your traffic to go to the primary box, then you turn off caching in your powerdns config file and have your pipe'd child return the primary IP 8 times for every 2 times you return the ip of the other box etc. Or always return the primary server unless it is having problems, in which case you return the secondary. Of course you want the TTL on these records, or perhaps the delegated subdomain to be low so the client doesn't cache it much. I'm currently got a geo-balanced test setup I've been playing with - it returns CNAMES to XX.clift.org for any lookup of test.geo.clift.org, where XX are theoreticaly country codes based on what IP addresses you make the requests from. The quality of the free geo-ip info isn't great, but at least it gets you on the right continent. The geo-ip data is 'free' via rsync from countries.nerd.dk - see http://countries.nerd.dk/more.html for more information Anyway, it'd take a bit of work, but would be doable. Fred Clift fred 'AT' clift <dot> org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?450FE15D.8050905>