Проблемы с DNS на роутере

Если подбираете для ПК под Windows рекомендую Technitium DNS Server в качестве stub резолвера с настроенными форвардами DNSCrypt:

  1. Находите штук 6 стабильных DNSCrypt серверов и релеев для вашей ASN
  2. Конфигурируете 6 инстансов dnscrypt-proxy для использования одного из них:
    Часть примера конфигурации dnscrypt-proxy
    server_names = ['resolver-name']
    
    listen_addresses = ['[::1]:1153']
    
    cache = false
    
    [anonymized_dns]
    routes = [
        { server_name='resolver-name', via=['relay-name'] },
    ]
    
    [static]
      # Resolver
      [static.'resolver-name']
      stamp = 'sdns://…'
    
      # Relay
      [static.'relay-name']
      stamp = 'sdns://…'
    
  3. В TDNS заполняете список фовардеров:
    Пример Settings → Proxy & Forwarders → Forwarders
    [::1]:1153
    [::1]:1253
    [::1]:1353
    [::1]:1453
    [::1]:1553
    [::1]:1653
    
    Forwarder Concurrency увеличивает потребление трафика, но позволяет избежать ошибки таймаута.
  4. Патчите dnscrypt-proxy, установив максимальный размер UDP пакета, по причине отсутствия поддержки PMTUD:
    Принудительная установка размера UDP пакета для PPPoE соединения в файле common.go
    var (
        MaxDNSUDPPacketSize = 1472
    )
    

В таком виде GeoDNS не работает, а ECS не поддерживается в dnscrypt-proxy, поэтому при необходимости можно добавить Conditional Forwarder Zone для нужных зон и форфардить их на сервер ISP или второй инстанс TDNS работающий в режиме recursive resolver.