I need to proxy DNS requests based on hostname.

I've configured the Kong to stream 53 udp.
I can create service:
curl -X POST http://localhost:8001/services \
-H "Content-Type: application/json" \
-d '{"name":"jerry", "protocol":"udp", "host": "jerry-coredns", "port": 53}'
But when trying to create a route based on hostname:
curl -X POST http://localhost:8001/services/jerry/routes \
-H "Content-Type: application/json" \
-d '{"name":"jerry-dns-route", "hosts": ["jerry.kong.local"], "destinations":[{"port":53}],"protocols":["udp"]}'
The Kong response is:
cannot set 'hosts' when 'protocols' is 'tcp', 'tls', 'tls_passthrough' or 'udp'
We know there's no hostname header on UDP protocol like HTTP. So the question is, How do cloud providers like Cloudflare or Amazon, create the DNS server for their customers? I can't use valid IP addresses per DNS server Obviously.