Первое решение не кажется реально работоспособным, так как в различных ОС конечных клиентов практически невозможно изменить порт DNS по умолчанию.Вместо этого вам потребуются отдельные рекурсивные серверы имен на отдельных IP-адресах, и каждый клиент настроен на конкретный сервер имен, который ему нужно использовать.
Второе решение может работать, это ECS - функция «Подсеть клиента EDNS», описанная в RFC7871 и поддерживается на различных серверах имен.См., Например, в Bind: https://www.isc.org/wp-content/uploads/2017/04/ecs.pages.pdf
Теперь вы действительно уверены, что вам нужны эти настройки или это единственный способ достичь ваших целей?Трудно предложить другие идеи, которые вы описываете с самого начала, как ваше решение, но на самом деле это не ваша проблема и не ваши ограничения.
Например, в некоторых случаях это может быть решено путем простой настройки каждого клиента по-разному.список поиска домена.client1
будет иметь client1.example.com
в качестве суффикса, client2
будет иметь client2.example.com
и так далее.Теперь, имея только один стандартный рекурсивный сервер имен и один авторитетный для example.com
без какого-либо расширения или сложной настройки, когда client1
попытается разрешить www
, он (может) получит ответ, отличный от client2
, также пытающийсяразрешить www
, так как последние два полностью определенных имени домена будут действительно разными (www.client1.example.com
против www.client2.example.com
) из-за разных списков поиска.Это, конечно, во многом зависит от того, какие приложения запущены на каждом клиенте.
Использование более простых серверов имен, таких как dnsmasq
, также может помочь, но, опять же, ваша проблема с пространством недостаточно определена, чтобы быть уверенным, чтопредложить.