AdGuardHome icon indicating copy to clipboard operation
AdGuardHome copied to clipboard

DNS Rewrites not chaining across multiple rules

Open rhoriguchi opened this issue 1 year ago • 0 comments

Prerequisites

Platform (OS and CPU architecture)

Linux, AMD64 (aka x86_64)

Installation

Other (please mention in the description)

Setup

On one machine

AdGuard Home version

v0.107.53

Action

When setting up DNS rewrites it rewrites it once but does not check the other rules. So if I have a rule that resolves test1234.com to EXAMPLE_HOSTNAME.local and I have a second rule EXAMPLE_HOSTNAME.local to 192.168.100.100. In the case of test1234.com it will use the upstream .local resolver instead of first checking if there is a rewrite rule for EXAMPLE_HOSTNAME.local.

Expected result

> nslookup test1234.com
Server:         127.0.0.1
Address:        127.0.0.1#53

test1234.com    canonical name = EXAMPLE_HOSTNAME.local.
Name:   EXAMPLE_HOSTNAME.local
Address: 192.168.100.100

> nslookup EXAMPLE_HOSTNAME.local
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
Name:   EXAMPLE_HOSTNAME.local
Address: 192.168.100.100

Actual result

> nslookup test1234.com
Server:         127.0.0.1
Address:        127.0.0.1#53

test1234.com    canonical name = EXAMPLE_HOSTNAME.local.
Name:   EXAMPLE_HOSTNAME.local
Address: 192.168.100.65

> nslookup EXAMPLE_HOSTNAME.local
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
Name:   EXAMPLE_HOSTNAME.local
Address: 192.168.100.100

Additional information and/or screenshots

Only relevant fields of the config

dns:
  upstream_dns:
  - '[/local/]127.0.0.1:9053'
filtering:
  rewrites:
  - domain: test1234.com
    answer: EXAMPLE_HOSTNAME.local
  - domain: EXAMPLE_HOSTNAME.local
    answer: 192.168.100.100

rhoriguchi avatar Oct 05 '24 17:10 rhoriguchi