I'd like to make a simple DNS server using Go. I know how DNS works but I'm not 100% sure as to how a DNS query actually looks.
For example, a HTTP GET request looks like this:
GET /index.html HTTP/1.1
So my question is, does a DNS query look something like this:
QUERY google.com A
Or do DNS servers interpret the binary representation the domain name being queried?
You could check out the miekg/dns
project.
It builds Msg compose of a MsgHdr
which includes the QUERY code (amongst other OpCodes).
That follows the Message Header you can see in "Chapter 15 DNS Messages".