dns64_hack

package
v0.0.0-...-80f0b6f Latest Latest
Warning

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

Go to latest
Published: Sep 13, 2024 License: Apache-2.0 Imports: 12 Imported by: 0

README

Не стандартный тип DNS64.

Переписанный встроенный модуль coredns dns64 Всегда на запрос А или АААА запрашивает сразу оба в любом из вариантов. Умеет вырезать оригинальные ответы А и\или АААА Применение мидлвара forward или аналогов внутри сервера нужно исключить! dns64_hack является тупиковым в цепочке. Т.е. другие мидлвары имеющие меньший приоритет не отработают!

Параметры

prefix на какой префикс мапировать ipv4 jump-to-dns следующая цепочка\сервер днс куда идти резолвить адреса v4_delete если указано значит из ответов необходимо удалить А ответы оставляя только АААА v6_delete если указано значит из ответов нужно удалять оригинальные АААА записи оставив только смапированные А в АААА

Примеры конфигурации
Удалять А записи но не трогать оригинальные АААА

Подходит для хостингов где в наличии только ipv6 и полностью отсутсвует ipv4. Также вызвать finalize чтобы отрезолвить все CNAME в адреса.

.:53 {
    dns64_hack {
        v4_delete
        prefix 64:1337::/96
        jump-to-dns 127.0.0.1:5302
    }
}
.:5302 {
    forward . 8.8.8.8:53
    finalize
}
Направлять весь трафик через nat64

Удалять оригинальные А\АААА записи и оставлять только смапированные dns64 записи. Также вызвать finalize чтобы отрезолвить все CNAME в адреса.

.:53 {
    dns64_hack {
        v4_delete
        v6_delete
        prefix 64:1337::/96
        jump-to-dns 127.0.0.1:5302
    }
}
.:5302 {
    forward . 8.8.8.8:53
    finalize
}
Примеры ответов в зависимости от опций

Домен cloudflare.com В оригинале запрос А: A 104.16.133.229 A 104.16.132.229 В оригинале запрос АAAA: AAAA 2606:4700::6810:85e5 AAAA 2606:4700::6810:84e5

Без опций v4_delete и v6_delete для любого запроса А\АААА Будут запрошены одновременно А и АААА записи, будут добавлены смапированные dns64 записи. Весь ответ собран в один A 104.16.133.229 AAAA 64:1337::6810:85e5 A 104.16.132.229 AAAA 64:1337::6810:84e5 AAAA 2606:4700::6810:85e5 AAAA 2606:4700::6810:84e5

С опцией v4_delete и без v6_delete для любого запроса А\АААА Будут запрошены одновременно А и АААА записи, будут добавлены смапированные dns64 записи. Из ответа будут удалены А записи даже если они придут от вышестоящего сервера AAAA 64:1337::6810:85e5 AAAA 64:1337::6810:84e5 AAAA 2606:4700::6810:85e5 AAAA 2606:4700::6810:84e5

С опцией v4_delete и v6_delete для любого запроса А\АААА Будут запрошены только А записи, будут добавлены смапированные dns64 записи. Из ответа будут удалены оригинальные A и АAAA записи даже если они придут от вышестоящего сервера AAAA 64:1337::6810:85e5 AAAA 64:1337::6810:84e5

Documentation

Overview

Package dns64_hack implements a plugin that performs dns64_hack.

See: RFC 6147 (https://tools.ietf.org/html/rfc6147)

Index

Constants

This section is empty.

Variables

View Source
var (
	// RequestsTranslatedCount is the number of DNS requests translated by dns64_hack.
	RequestsTranslatedCount = promauto.NewCounterVec(prometheus.CounterOpts{
		Namespace: plugin.Namespace,
		Subsystem: pluginName,
		Name:      "requests_translated_total",
		Help:      "Counter of DNS requests translated by dns64_hack.",
	}, []string{"server"})
)

Functions

This section is empty.

Types

type UpstreamInt

type UpstreamInt interface {
	Lookup(ctx context.Context, state request.Request, name string, typ uint16) (*dns.Msg, error)
}

UpstreamInt wraps the Upstream API for dependency injection during testing

Jump to

Keyboard shortcuts

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