2020-05-26 12:46:16 -07:00
2020-05-26 12:14:32 -07:00
2020-05-26 12:14:32 -07:00
2020-05-26 12:14:32 -07:00
2020-05-20 21:50:48 -07:00
2020-05-26 12:46:16 -07:00
2020-05-13 11:48:30 -07:00

wgsd

wgsd is a CoreDNS plugin that provides WireGuard peer information via DNS-SD (RFC6763) semantics. This enables dynamic discovery of WireGuard Endpoint addressing (both IP and port) with the added of benefit of NAT-to-NAT WireGuard connectivity where UDP hole punching is supported.

See this blog post for a deep dive on the underlying techniques and development thought.

Installation

External CoreDNS plugins can be enabled in one of two ways:

  1. Build with compile-time configuration file
  2. Build with external golang source code

For method #2 you can simply go build the contents of cmd/coredns. The resulting binary is CoreDNS server with all the "internal" plugins + wgsd.

A basic client is available under cmd/wgsd-client.

Configuration

.:53 {
  wgsd <zone> <wg device>
}

For example:

$ cat Corefile
.:53 {
  wgsd example.com. wg0
}

Example Data

TODOs

  • SOA record support
  • CI & release binaries
Description
A CoreDNS plugin that provides WireGuard peer information via DNS-SD semantics
Readme MIT 292 KiB
Languages
Go 100%