Запрет ребиндинга

dnsmasq, используемый на большинстве роутеров, умеет в защиту от ребиндинга (отбрасывает ответ, если домен резолвится в какой-нибудь адрес из приватных диапазонов)

  return
    (((ip_addr & 0xFF000000) == 0x7F000000) && ban_localhost)  /* 127.0.0.0/8    (loopback) */ ||
    ((ip_addr & 0xFF000000) == 0x00000000)  /* RFC 5735 section 3. "here" network */ ||
    ((ip_addr & 0xFF000000) == 0x0A000000)  /* 10.0.0.0/8     (private)  */ ||
    ((ip_addr & 0xFFF00000) == 0xAC100000)  /* 172.16.0.0/12  (private)  */ ||
    ((ip_addr & 0xFFFF0000) == 0xC0A80000)  /* 192.168.0.0/16 (private)  */ ||
    ((ip_addr & 0xFFFF0000) == 0xA9FE0000)  /* 169.254.0.0/16 (zeroconf) */ ||
    ((ip_addr & 0xFFFFFF00) == 0xC0000200)  /* 192.0.2.0/24   (test-net) */ ||
    ((ip_addr & 0xFFFFFF00) == 0xC6336400)  /* 198.51.100.0/24(test-net) */ ||
    ((ip_addr & 0xFFFFFF00) == 0xCB007100)  /* 203.0.113.0/24 (test-net) */ ||
    ((ip_addr & 0xFFFFFFFF) == 0xFFFFFFFF)  /* 255.255.255.255/32 (broadcast)*/ ;
}

К сожалению, dnsmasq не позволяет выборочно отключить защиту лишь для 10.0.0.0/8, поэтому приходится эту защиту отключать полностью (либо пересобирать dnsmasq самостоятельно).

Могли бы вы настроить DNS-сервер на своей стороне таким образом, чтобы защиту от ребиндинга реализовывал он?

Нет, это нарушит работу множества провайдерских сайтов и просто ресурсов, для которых есть публичный домен, но в качестве IP-адреса указан приватный диапазон.

dnsmasq же, если не ошибаюсь, позволяет фильтровать отдельные IP-диапазоны, для этого не нужна отдельная опция.

Похоже, возможности блокировать диапазоны нет.

http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html

Но есть возможность через --bogus-nxdomain= указать конкретные адреса (такие ответы будут заменяться на на NXDOMAIN). Так что можно назначить клиентам статические адреса и прикрыть конкретно их. Спасибо за наводку