loadbalance

package
v0.0.0-...-0c57748 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 27, 2016 License: Apache-2.0 Imports: 6 Imported by: 0

README

loadbalance

loadbalance acts as a round-robin DNS loadbalancer by randomizing the order of A and AAAA records in the answer. See Wikipedia about the pros and cons on this setup.

It will take care to sort any CNAMEs before any address records, because some stub resolver implementations (like glibc) are particular about that.

Syntax

loadbalance [policy]
  • policy is how to balance, the default is "round_robin"

Examples

loadbalance round_robin

Documentation

Overview

Package loadbalance is middleware for rewriting responses to do "load balancing"

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type RoundRobin

type RoundRobin struct {
	Next middleware.Handler
}

RoundRobin is middleware to rewrite responses for "load balancing".

func (RoundRobin) ServeDNS

func (rr RoundRobin) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error)

ServeDNS implements the middleware.Handler interface.

type RoundRobinResponseWriter

type RoundRobinResponseWriter struct {
	dns.ResponseWriter
}

func NewRoundRobinResponseWriter

func NewRoundRobinResponseWriter(w dns.ResponseWriter) *RoundRobinResponseWriter

func (*RoundRobinResponseWriter) Hijack

func (r *RoundRobinResponseWriter) Hijack()

func (*RoundRobinResponseWriter) Write

func (r *RoundRobinResponseWriter) Write(buf []byte) (int, error)

Should we pack and unpack here to fiddle with the packet... Not likely.

func (*RoundRobinResponseWriter) WriteMsg

func (r *RoundRobinResponseWriter) WriteMsg(res *dns.Msg) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL