bufsize

package
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: Jan 2, 2021 License: Apache-2.0 Imports: 6 Imported by: 0

README

bufsize

Name

bufsize - sizes EDNS0 buffer size to prevent IP fragmentation.

Description

bufsize limits a requester's UDP payload size. It prevents IP fragmentation, mitigating certain DNS vulnerabilities.

Syntax

bufsize [SIZE]

[SIZE] is an int value for setting the buffer size. The default value is 512, and the value must be within 512 - 4096. Only one argument is acceptable, and it covers both IPv4 and IPv6.

Examples

Enable limiting the buffer size of outgoing query to the resolver (172.31.0.10):

. {
    bufsize 512
    forward . 172.31.0.10
    log
}

Enable limiting the buffer size as an authoritative nameserver:

. {
    bufsize 512
    file db.example.org
    log
}

Considerations

  • Setting 1232 bytes to bufsize may avoid fragmentation on the majority of networks in use today, but it depends on the MTU of the physical network links.
  • For now, if a client does not use EDNS, this plugin adds OPT RR.

Documentation

Overview

Package bufsize implements a plugin that modifies EDNS0 buffer size.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Bufsize

type Bufsize struct {
	Next plugin.Handler
	Size int
}

Bufsize implements bufsize plugin.

func (Bufsize) Name

func (buf Bufsize) Name() string

Name implements the Handler interface.

func (Bufsize) ServeDNS

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

ServeDNS implements the plugin.Handler interface.

Jump to

Keyboard shortcuts

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