loadbalance

package
v0.0.0-...-cf0c5cd Latest Latest
Warning

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

Go to latest
Published: Dec 19, 2020 License: Apache-2.0 Imports: 7 Imported by: 0

README

loadbalance

Name

loadbalance - randomizes the order of A, AAAA and MX records.

Description

The loadbalance will act as a round-robin DNS load balancer by randomizing the order of A, AAAA, and MX records in the answer.

See Wikipedia about the pros and cons of 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, and only option, is "round_robin".

Examples

Load balance replies coming back from Google Public DNS:

. {
    loadbalance round_robin
    forward . 8.8.8.8 8.8.4.4
}

Documentation

Overview

Package loadbalance is a plugin for rewriting responses to do "load balancing"

Package loadbalance shuffles A, AAAA and MX records.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type RoundRobin

type RoundRobin struct {
	Next plugin.Handler
}

RoundRobin is a plugin to rewrite responses for "load balancing".

func (RoundRobin) Name

func (rr RoundRobin) Name() string

Name implements the Handler interface.

func (RoundRobin) ServeDNS

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

ServeDNS implements the plugin.Handler interface.

type RoundRobinResponseWriter

type RoundRobinResponseWriter struct{ dns.ResponseWriter }

RoundRobinResponseWriter is a response writer that shuffles A, AAAA and MX records.

func (*RoundRobinResponseWriter) Write

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

Write implements the dns.ResponseWriter interface.

func (*RoundRobinResponseWriter) WriteMsg

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

WriteMsg implements the dns.ResponseWriter interface.

Jump to

Keyboard shortcuts

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