bufsize

package
v1.10.0 Latest Latest
Warning

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

Go to latest
Published: Sep 19, 2022 License: Apache-2.0 Imports: 6 Imported by: 13

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. This will only affect queries that have an OPT RR.

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.

Documentation

Overview

Package bufsize implements a plugin that clamps EDNS0 buffer size preventing packet fragmentation.

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