LoginSignup
0
2

More than 3 years have passed since last update.

UnboundでCNAMEレコードを返却する

Posted at

Unboundを使って、任意のドメインに対してCNAMEで別のドメインを返却し、そのドメインの名前解決を外部DNSへ再帰問い合わせする、という機能が実現できるか調査した。

結論

仕様として意図された振る舞いかどうかは不明だが、local-zoneのtype(local-dataに合致しない問い合わせへの応答方法)をredirectに設定すると、CNAMEレコードに設定した外部ドメインを再帰問い合わせして返却できる。(typeをtransparentに設定すると再帰問い合わせが行われない。)

local-zone: "cname.dummy" redirect
local-data: "cname.dummy. CNAME google.com."

unboundのマニュアルからはauth-zoneとstub-zone(もしくはforward-zone)を設定するのが本来の使い方のようであるが、下記の設定では再帰問い合わせが実現できなかった。

auth-zone:
  name: cname.dummy
  zonefile: ./zone.conf
forward-zone:
  name: google.com
  forward-addr: 8.8.8.8

zone.conf

cname.dummy. IN CNAME google.com.

検証方法・結果

docker-compose.yml
version: '3'
services:
  unbound:
    image: mvance/unbound
    hostname: unbound
    ports:
      - 53:53/udp
      - 53:53/tcp
    volumes:
      - ./local-zone.conf:/opt/unbound/etc/unbound/a-records.conf
    restart: always
  shell:
    tty: true
    build:
      context: .
    depends_on:
      - unbound
    command: dig @unbound cname.dummy
local-zone.conf
local-zone: "cname.dummy" redirect
local-data: "cname.dummy. CNAME google.com."
実行結果
# docker-compose up
...
shell_1    | ;; QUESTION SECTION:
shell_1    | ;cname.dummy.                      IN      A
shell_1    |
shell_1    | ;; ANSWER SECTION:
shell_1    | cname.dummy.               3600    IN      CNAME   google.com.
shell_1    | google.com.                300     IN      A       172.217.25.206
...

参考

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2