I'm trying to get a deeper understanding of what exactly the dig command does in terms of different computing levels (OS level, network level, and dns functionality)
I'm looking for some feedback and help making my understanding as detailed as possible, currently this is what I think the dig google.com command does:
- [OS level] I type
dig google.com
into console and hit enter - [OS level] By default since no other flags or command line args are specified, dig will perform an DNS query for "." (the root) (google.com.)
- [OS level] The dig command request packet is created
- [Network level] My dig request packet is sent out my computer to the wifi network I'm connected to
- [Network level] My dig request packet goes from my wifi network to the DNS servers (?)
- [DNS level] Once the DNS servers receieve my dig request packet, it is interpreted and my request for a DNS query to google.com. is understood
- [DNS level] A DNS query for google.com. begins, getting info on which IP address / server the domain name is directed to
- [DNS level] This info is then compiled into a response packet, including its destination ip address (my computer where I originally made the dig request)
- [DNS level] The dns servers send the response packet to me
- [OS level] My computer receives the dig response packet, opens it and displays the results of my original dig command to my terminal.
Is my above understanding correct? When I run a dig command am i making a request to "the DNS servers" as like a single entity / organization? Or is it all computed locally? Thanks