用户访问网站,主要分两大块知识点
客户端输入http://www.yuchaoit.cn后,是如何看到网页的,其中原理流程
服务端是如何提供网站服务的?其中原理流程
2.抓技术名词关键字1.域名2.域名解析3.TCP/IP 三次握手4.TCP/IP 四次挥手5.HTTP请求发出6.HTTP响应报文1.DNS域名结构由于互联网中的域名太多,全球的用户也太多,因特网的域名采用的是树状结构命名。任何一个连接到网络中的机器,都有一个唯一的层次结构名字,叫做域名(domain name)。域、就是名字空间中可被划分、管理的部分。
语法上要求,域名由标号(label)组成,每一个label之间通过小数点隔开。
域名可以被分为多个子域,子域还可以继续划分子域的子域,因此形成了
顶级域
主域名
子域名
顶级域名是域名的最后一个部分,即是域名最后一点之后的字母,例如在http://yuchaoit.cn这个域名中,顶级域是.cn(或.COM),大小写视为相同。%2C-iq1hk5rmsf9xnujhg63fqf5b./)
二级域名
二级域名是域名的倒数第二个部分,例如在http://yuchaoit.cn这个域名中,二级域名是yuchaoit。以此类推。三级域名
子域名2. DNS服务器分层结构(DNS解析流程)
文字描述DNS解析流程##DNS域名解析浏览器客户端需要正确查询、解析出域名的的ip地址,才能建立与服务器的连接1.浏览器需要解析域名,首先查看本地的hosts文件,查看是否有固定的解析规则,有则直接使用该ip信息2.本地的hosts文件没有解析关系,浏览器会发出一个dns请求到本地设置的dns服务器本地dns服务器一般默认会是你接入的网络运营商,如电信dns,移动dns3.域名解析的请求到达dns服务器之后,dns服务器优先查找它自己的缓存记录,如果有直接返回结果如果dns服务器本地没有结果,递归的向上查找DNS根服务器,是否有解析记录。4.根DNS服务器的作用只是提供域服务器的地址(不提供域名和ip的关系解析)5.本地dns服务器此时向域服务器继续发出请求,此时请求的服务器就是如.com .cn这样的域服务器了域服务器也不会直接返回你要访问的域名、以及它对应的IP地址的关系,而是告诉本地dns服务器,该域名对应的解析服务器的地址,如163.com6.最后本地dns服务器,向该域名对应的解析服务器发出请求,此时才能正确的拿到该域名对应的ip地址关系此时本地dns服务器会把ip告诉浏览器以及这个域名、ip的对应关系会被存储在本地缓存中,便于下次访问,可以直接看到这个域名、ip的对应关系,加速访问3. DNS专业名词递归查询就好比我们递归创建文件夹一样mkdir -p /opt/linux/0224/chaoge666.log1.我们本地进行域名解析时,如ping baidu.com,本地的/etc/resolv.conf指定的服务器接收到用户请求,必须返回给用户一个精准的ip结果。2.如果指定的DNS服务器没有存储这个解析关系,就会以上述于超老师讲解的dns解析流程,开始向根域服务器发出请求,因此反复循环,直到拿到结果。迭代查询也就是DNS服务器/etc/resolv.conf没有直接返回查询域名-ip的对应结果,而是告诉另外一台服务器,另外一台服务器,再去请求另外一台机器,反复发请求,直到获取正确结果。DNS缓存指的是将域名、ip的解析关系存储在离用户最近的一个客户端上,这个位置可以是任意的地方,目的都是为了减少递归查询的次数,更快的获取查询结果。TTL值英文名 time to live告诉本地dns服务器,该解析记录的可用时长,到期后本地缓存会自动删除该解析关系,重新发起迭代/递归查询,获取新的域名、ip解析结果。4. dig命令查看解析关系使用dig命令,可以验证上述的原理流程。yum install bind-utils -y使用dig命令追踪域名解析全流程1.首先确定本地dns服务器#cat /etc/resolv.conf # Generated by NetworkManagernameserver 223.5.5.5dig追踪解析#dig +trace www.yuchaoit.cn; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.9 <<>> +trace www.yuchaoit.cn;; global options: +cmd. 2974 IN NS d.root-servers.net.. 2974 IN NS b.root-servers.net.. 2974 IN NS l.root-servers.net.. 2974 IN NS e.root-servers.net.. 2974 IN NS a.root-servers.net.. 2974 IN NS k.root-servers.net.. 2974 IN NS g.root-servers.net.. 2974 IN NS i.root-servers.net.. 2974 IN NS j.root-servers.net.. 2974 IN NS h.root-servers.net.. 2974 IN NS f.root-servers.net.. 2974 IN NS m.root-servers.net.. 2974 IN NS c.root-servers.net.;; Received 228 bytes from 223.5.5.5#53(223.5.5.5) in 14 mscn. 172800 IN NS d.dns.cn.cn. 172800 IN NS ns.cernet.net.cn. 172800 IN NS c.dns.cn.cn. 172800 IN NS a.dns.cn.cn. 172800 IN NS b.dns.cn.cn. 172800 IN NS f.dns.cn.cn. 172800 IN NS e.dns.cn.cn. 172800 IN NS g.dns.cn.cn. 86400 IN DS 57724 8 2 5D0423633EB24A499BE78AA22D1C0C9BA36218FF49FD95A4CDF1A4AD 97C67044cn. 86400 IN RRSIG DS 8 1 86400 20220514050000 20220501040000 47671 . nAeYXDNUTAmlFxLfXot6fdnx05UZ/KU4cj1cy3zU5rrGBh2qFLrPGNQr 8QpZU2vPoydZZZSzcRT6vpyaFGPJhAGsqi+cs2JOMMZNQYlkKdxO3Q3D x9yLXJOVAnnH6iGWglIVnonFsgtcNqGjSeJ/Th9tHbOMD+n/6cumezNy 1HOGrFW1dYQ9lfHjbnxox8EMmGKQ3nejtjIVS9GvHCBp3uisQdDTCook f+MT7qN9P86QJqtgDO+GctD90KIA4u311RQM+tBk9YDEMqXxPcsSiD98 bArR/hUpvnRRbU2t2mk6cmv7ZVAy3ofv6u1fMiwS6YzXneb1i8kLtoUQ zOoqNQ==;; Received 706 bytes from 192.33.4.12#53(c.root-servers.net) in 1109 msyuchaoit.cn. 86400 IN NS net.dnspod.net.yuchaoit.cn. 86400 IN NS tulip.dnspod.net.3QDAQA092EE5BELP64A74EBNB8J53D7E.cn. 21600 IN NSEC3 1 1 10 AEF123AB 3QHKTF6LTFG8AAFUUAJSR8RVAJP99SFU NS SOA RRSIG DNSKEY NSEC3PARAM3QDAQA092EE5BELP64A74EBNB8J53D7E.cn. 21600 IN RRSIG NSEC3 8 2 21600 20220513133757 20220413130511 38388 cn. g+AhBfqp/RPdA6q61n4JFsO24Go4jkNZYEyTjW0nezf+wN+jj1N9CN87 sBDEwljwudxVhyjHBODdZTdlV0ZSyMYUvgZXfoIh90AR/bu8kzDhUdq+ wVdMye86MQts52L9oZq+SBywnYjW6MwJwkaPwtqoGUzit1xi0DogjaRB T8I=QJ2D47AGKKDJ0JBA02ILNHBNVEF3DQUS.cn. 21600 IN NSEC3 1 1 10 AEF123AB QK2TQPG7N1M4FC702TM02B2P08FPDJN0 NS DS RRSIGQJ2D47AGKKDJ0JBA02ILNHBNVEF3DQUS.cn. 21600 IN RRSIG NSEC3 8 2 21600 20220513132930 20220413130455 38388 cn. UBB5On9znmA5pY7aGkeL8Aa31+fkgq82ruaLZUwike9Pbdr4WbiYFjpH IhGz4mijkCeNwWm+bNPA0TtzpL10lVDJp4Zo0DEKQD8NBejGFHQUpY/d BZvG15tM6rXY6I0NjgKa/7d8zyrV4jgZn+r8qJadps3ixLUPZPypbsX+ t7I=;; Received 583 bytes from 203.119.25.1#53(a.dns.cn) in 12 mswww.yuchaoit.cn. 600 IN A 123.206.16.61yuchaoit.cn. 86400 IN NS net.dnspod.net.yuchaoit.cn. 86400 IN NS tulip.dnspod.net.;; Received 118 bytes from 58.247.212.48#53(tulip.dnspod.net) in 33 ms解析1.先去找了13个根域服务器,没有排序关系2.然后确认顶级域的范围,是.cn3.然后确认权威域名服务器地址net.dnspod.net4.最后通过权威域名服务器拿到域名、ip的解析关系www.yuchaoit.cn. 600 IN A 123.206.16.61yuchaoit.cn. 86400 IN NS net.dnspod.net.yuchaoit.cn. 86400 IN NS tulip.dnspod.net.云解析DNS的手册https://help.aliyun.com/document_detail/102237.html
阿里云DNS解析https://help.aliyun.com/document_detail/29716.html
腾讯云DNS解析https://cloud.tencent.com/document/product/302/3446
各记录类型使用目的
实践添加腾讯云dns解析
https://console.cloud.tencent.com/cns最常用的就是添加A记录➜ ~ dig +trace http://0224.yuchaoit.cn
#systemctl stop named注意恢复你的dns设置#cat /etc/resolv.conf nameserver 223.5.5.5这是一个轻量级,很容易就实现dns服务器的一个软件,部署简单,不像bind那么复杂,重量级很多软件,大型软件的集群,内部需要部署dns环境,都是通过dnsmasq1.安装yum install dnsmasq -y2.创建dnsmasq配置文件,设置上游dns服务器地址,设置本地域名解析记录#vim /etc/dnsmasq.conf 修改如下参数即可# 1.指定上游dns服务器地址,指定一个配置文件即可# 2.指定运行地址是内网环境# 3.需要指定你想要添加的本地 域名解析记录,默认 /etc/hosts文件参考,修改如下几个配置即可#grep -Ev '^($|#)' /etc/dnsmasq.conf resolv-file=/etc/resolv.dnsmasq.conflisten-address=172.16.1.61addn-hosts=/etc/hosts.dnsmasq.confconf-dir=/etc/dnsmasq.d,.rpmnew,.rpmsave,.rpmorig3.创建对应的数据文件即可echo "nameserver 223.5.5.5" > /etc/resolv.dnsmasq.confcat >/etc/hosts.dnsmasq.conf <<EOF172.16.1.61 master-61172.16.1.5 slb-5172.16.1.6 slb-6172.16.1.7 web-7172.16.1.8 web-8172.16.1.9 web-9172.16.1.31 nfs-31172.16.1.41 rsync-41172.16.1.51 db-51EOF4.启动dnsmasq服务,即可生效如上的自定义记录systemctl start dnsmasq 5.测试该dnsmasq是否可用,你还得主动的指定本地dns配置文件的记录,使用这个dnsmasq的服务端地址(172.16.1.61)#cat /etc/resolv.confnameserver 172.16.1.61