Giter Club home page Giter Club logo

alias's Introduction

alias

The alias plugin eliminates CNAME records from zone apex by making the subsequent resolved records look like they belong to the zone apex. This behaves similarily to CloudFlare's Zone Flattening.

This plugin works only with plugins that produce A or AAAA records alongside the CNAME record. Examples include auto and file. However, you might need to adjust the order of this plugin to use it with other plugins.

Preferrably, this should not be used in favour of the RFC drafts for the new ANAME records, but the DNS library used by CoreDNS does not support ANAME records yet.

Release builds can be found here

Syntax

alias

Examples

example.com {
	file db.example.com
	alias
}
# This is used to resolve CNAME records by the `file` plugin. Modify accordingly
. {
	forward . 1.1.1.1 1.0.0.1
}

This will transform responses like this:

;; ANSWER SECTION:
example.com.		3600	IN	CNAME	two.example.org.
two.example.org.	3600	IN	CNAME	one.example.net.
one.example.net.	3600	IN	A	127.0.0.1

into

;; ANSWER SECTION:
example.com.		3600	IN	A	127.0.0.1

See example/ for a more extensive example.

Installation

As per CoreDNS docs, there are two ways.

Build with compile-time configuration file

$ git clone https://github.com/coredns/coredns
$ cd coredns
$ vim plugin.cfg
# Add the line alias:github.com/serverwentdown/alias before the file middleware
$ go generate
$ go build
$ ./coredns -plugins | grep alias

Build with external golang source code

$ git clone https://github.com/serverwentdown/alias
$ cd alias/coredns
$ go build
$ ./coredns -plugins | grep alias

alias's People

Contributors

ivan-section-io avatar luzifer avatar serverwentdown avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

alias's Issues

Doesn't work with MX record.

if we set CNAME to zone apex.
coredns returns only CNAME record with MX query.

example.com.	300	IN	MX	mx.example.org.
example.com.	300	IN	CNAME	some.magic.example.org.
some.magic.example.org. 300 IN A	123.123.45.67

$ dig example.org mx

;; ANSWER SECTION:
example.org.                300      IN      CNAME   some.magic.example.org.

Your plugin just remove the CNAME, so we get empty response. :-(

Does alias supposed to rewrite CNAMEs for external domains too?

Let's say I have the following dns file:

example.org. 3600 IN CNAME twitter.org.

And I have alias and forward plugins enabled:

. {
  log
  forward . 1.1.1.1 1.0.0.1
}

example.org {
  file db.example.org
  alias
}

When I dig example.org, I see that DNS response contains both CNAME and A records (resolved from twitter.com). Is it possible to remove CNAME records and just respond resolved A records?

I'm new to CoreDNS stuff, so sorry if I misunderstood something.

Compiling 1.8.0 breaks building when using this plugin

When I add this plugin and try to compile coredns I get the following error:

#8 92.73 go: github.com/coredns/coredns imports
#8 92.73 	github.com/coredns/coredns/core/plugin imports
#8 92.73 	github.com/jiachengxu/idetcd imports
#8 92.73 	github.com/mholt/caddy/onevent: github.com/mholt/[email protected]: parsing go.mod:
#8 92.73 	module declares its path as: github.com/caddyserver/caddy
#8 92.73 	        but was required as: github.com/mholt/caddy

The 1.8.0 coredns logs mention this in their release notes:

Caddy is now developing a version 2 and we are using version 1, we've internalized
Caddy into <https://github.com/coredns/caddy>. This means the `caddy` types change and *all* plugins
need to fix the import path from: `github.com/caddyserver/caddy` to `github.com/coredns/caddy` (this
can thankfully be automated).

Does not work (or I don't understand how to use it)

I have the following config:

// Corefile
spiral.sh {
	file zones/spiral.sh
	alias
}
; zone
http-pool.spiral.sh. 3000 IN A 128.116.205.8
http-pool.spiral.sh. 3000 IN A 45.61.184.138
spiral.sh. 3000 IN CNAME http-pool.spiral.sh.

dig output:

;; ANSWER SECTION:
spiral.sh.		3000	IN	CNAME	http-pool.spiral.sh.
http-pool.spiral.sh.	3000	IN	A	128.116.205.8
http-pool.spiral.sh.	3000	IN	A	45.61.184.138

What am I doing wrong? I would like to show just the A records and not the CNAME, as shown in the example on the README.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.