摘要:无论你域名怎么解析,终我还是要用IP和别人通信的。域名只是你的皮囊,IP才是你的灵魂。
本文自华为云社区,作者: tsjsdbd 。
由于TCP/IP络协议在通信的时候,双方都是用的。所以整个报文来回过程中,并没有DNS什么事情的。只要双方IP都知道,那么中有没有DNS都无所谓的。
DNS的作用就是把:“名字”==》翻译为==》。
手机地址簿
DNS等于是一个大版的“地址簿”。跟你手机打一样,你终出去的肯定是手机。
而你查找联系人,只是为了获得对方手机码而已。假如你脑袋里已经默记了码,那是可以直接拨通话的,并不需要先打开”联系人or地址簿”的。
DNS域名解析,是我们在络中很容易接触到的通信过程。有时候络不通,并不是你和对方无法连通,只是你无法根据名字”翻译”为对方的实际,千万不要被主次问题给困惑了。很多时候,如果可以查询到实际IP,实际络则是通的。(当然,知道了IP,络还是不通的话,可以复下唐老师之前的络课程)。
域名的来源
两台电脑在通信的时候,是使用之前介绍过的络协议栈(即TCP/IP)的。
但是,有时候,属实不好记忆。别说是IPV4了,后面IPV6地址,根本就不是给人记的。就跟码一样,多了就是不好记,必须得把码关联到一个”人名”上,用来助记。
于是,这个世界上就有了“域名”一词,用来助记。你想:总比 20.205.243.166 好记吧?所以大家都爱记名字,然后在通信之前,不闲麻烦的先翻译一次。
怎么把名字变成IP,就是DNS解析过程了。这个时候就得有个“专门记录名字=>IP”的。
DNS
搞协议的那帮人,为了解决名字==》IP的问题。引入了一个叫做域名的东西。
这个DNS,就是一个 key-value 的大p表。大概就是 :
Key[名字] –> 值
所以DNS,都挺小巧的。它的复杂是在于DNS之间可以级联, 这个后面再细说。总之它就是一台很小的 key-value的Server。
本地快速解析
有时候,域里面,还得自己搭建一台DNS,也挺麻烦。那有没有简单点的 ,直接把key-value先写顶着用一下先的办法?
答案是有的,就是咱们的 /etc/hosts 文件啦。(Windows则是C:\Windows\32\驱动程序\etc\hosts文件)
它的内容是长这样的:
# value(IP) key(域名) 192.168.1.11
你可以试着增加一行,然后看看在浏览器里面,访问这个是不是变了。
我这里直接ping这个址
# ping PING (192.168.1.11) 56(84) bytes of data.
你看,地址就变成文件中指定的IP了。
查询DNS的命令行
一般我就用2个, nslookup 和 dig
apt-get tall dnsutils
安装之后,这2个命令行,就都有了。
nslookup 命令
这个是用的多的,格式是:
nslookup 目标域名
比如:
上面的Server地址,是指问了“哪个DNS”。而下面标红线的IP,则是它给你的答复:“的IP是 93.46.8.90”
域名找不到IP,则是这样:
dig 命令行
这个dig比nslookup好的地方在于,它可以指定DNS,来帮你解析域名。
格式:
dig 目标域名 dig @特定DNS 目标域名
能不能解析,看红圈那个 ANSWER,如果是0,那说明解析不了这个域名。
试下指定 DNS 来解析域名。
上里指定,用10.129.54.132 这台DNS来帮我们解析域名。
DNS协议
这个DNS协议非常的简单,就是一问一答的格式,没什么握手过程。
客户端问:“请问zz的ip是多少”
服务端答:“哦,是”。或者“我不知道”。
协议默认端口是53.所以在问题的时候,可以试着抓端口53的报文,看看你和DNS之间是否还和谐。
绝大多数时候使用的是UDP协议,但也可以用TCP(很少)。
指定DNS
默认的DNS,(即默认应该去哪个DNS查询IP),一般都是员帮我们配置好的。
但是我们也可以自己修改,在 /etc文件中。
cat /etc name 10.129.2.34
name这一行,可以copy多行,当第一个DNS不可用时,会自动去问第2个DNS。
如:
cat /etc name 10.129.2.34 name 100.79.1.250 name 100.79.1.46
这样有配置3台DNS
配置参数
这个 /etc文件中,还可以配置一些参数。
- 搜索:查询DNS域名时,会往你查询的域名尾部,额外补全的内容。ndots:控制补全的长度。
这个会在Kubernetes的Service特里面用到,等需要的时候,可以自己去深入研究下。
平时用不到这些参数。
DNS级联
DNS有个级联机制,即:当我(DNS)这里的key找不到value时,我可以问我的上级。上级不懂再问上级,全球有几台的根域名。
所以你想要拥有的址(域名),都都是被收割的对象,因为取名权,被他们垄断了。想取一个“大家都认得”的名字,得老贵了。除非咱们自己不联,域内自己玩,那么爱取什么名字就用什么名。
回到你本地机器,查询DNS域名的时候,整个过程大致如下:
如果问了一圈还找不到,就会告诉你,这个域名确实解析不了(要么就是根本不存在这个域名,要么就是你的DNS里没这条记录,并且也得不到上级的答案)。
ps,无论你域名怎么解析,终我还是要用IP和别人通信的。域名只是你的皮囊,IP才是你的灵魂。
点击下方,第一时间了解华为云新鲜技术~
文章来源于网络:个人学习栈 » 如何查询dns地址是多少(DNS的两种查询方式宽带域名)