nsid

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: 8 Imported by: 0

README

nsid

Name

nsid - adds an identifier of this server to each reply.

Description

This plugin implements RFC 5001 and adds an EDNS0 OPT resource record to replies that uniquely identify the server. This is useful in anycast setups to see which server was responsible for generating the reply and for debugging.

This plugin can only be used once per Server Block.

Syntax

nsid [DATA]

DATA is the string to use in the nsid record.

If DATA is not given, the host's name is used.

Examples

Enable nsid:

example.org {
    whoami
    nsid Use The Force
}

And now a client with NSID support will see an OPT record with the NSID option:

% dig +nsid @localhost a whoami.example.org

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46880
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 3

....

; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; NSID: 55 73 65 20 54 68 65 20 46 6f 72 63 65 ("Use The Force")
;; QUESTION SECTION:
;whoami.example.org.		IN	A

Also See

RFC 5001

Documentation

Overview

Package nsid implements NSID protocol

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Nsid

type Nsid struct {
	Next plugin.Handler
	Data string
}

Nsid plugin

func (Nsid) Name

func (n Nsid) Name() string

Name implements the Handler interface.

func (Nsid) ServeDNS

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

ServeDNS implements the plugin.Handler interface.

type ResponseWriter

type ResponseWriter struct {
	dns.ResponseWriter
	Data string
	// contains filtered or unexported fields
}

ResponseWriter is a response writer that adds NSID response

func (*ResponseWriter) WriteMsg

func (w *ResponseWriter) 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