DNS和CDN

265 阅读3分钟

DNS基础知识

统一资源定位符(URL)

也被称作「网址」,用于定位互联网上的资源

image-20220501184032192.png

scheme: 方案,协议

host: 主机,对应ip地址

port: 端口,对应应用

path: 路径,区分应用的资源

query: 查询,可能要往表单中填一些东西

fragment: 片段,通常给客户端使用,确定用户要看到什么

DNS(Domain Name System) 域名系统

image-20220502014445819.png 用户输入url问域名系统,域名系统返回一个ip地址,浏览器拿这个ip地址请求,返回用户内容 image-20220502014612665.png

服务器的存储是去分层的,会有根域名服务,也会有局部、区域性的

DNS query先发给本地服务商,如果有对应ip地址,就返回,若没有,就向根服务器请求,跟服务器没有再向顶级域名服务,没有再向权威域名服务器

AA:Authoritative Answer 权威回答

DNS记录

资源记录(Resource Record)

  • DNS的数据库条目

超过30种类型

  • 描述IP地址、别名等

A记录

  • 定义主机的IP地址

    定义www.example.com的ip地址

    www.example.com. IN A 139.18.28.5;

    IN - internet; A - A记录

AAAA记录

  • 定义主机的IPv6地址

    定义www.zhihu.com的ipv6地址

    1251625956.s2txipv6.cdntip.com 103 IN AAAA

    240e:940:401:1:1a::

    AAAA - 代表这条记录是ipv6地址,下面是ipv6地址

CNAME记录(Canonical Name Record)

  • 定义域名的别名

    定义www.example.com的别名

    www.example.com. IN CNAME example.com.

    a.example.com. IN CNAME b.example.com.

    www.foo.com. IN CNAME example.com.

    把前者作为后者的别名

MX记录(Mail exchanger record)

  • 定为邮件服务器

    happy.example.com 作为邮件服务域名

    IN MX happy.example.com.

    代表这个域名作为邮件服务器的

    A记录描述邮件服务器ip

    Happy.example.com. IN A 123.123.123.123;

NS记录(Name Server Record)

  • 定义提供dns信息的服务器

定义为zhihu.com提供dns信息的服务器

zhihu.com. 52908 IN NS ns4.dnsv5.com.

zhihu.com. 52908 IN NS ns3.dnsv5.com.

SOA记录(Start of Authority Record)

  • 定义在多个ns服务器中哪个是主服务器

    ns3.dnsv5.com. 是主服务器

    IN SOA ns3.dnsv5.com. enterprise3dnsadmin,dnspod.com. 1594718785 3600 180 1209600 180

    ns服务通常会准备两台

TXT记录

  • 提供文本信息

    zhihu.com提供的文本信息

    zhihu.com. 600 IN TXT "google-site-"

    vertification=q42VyLbU7bjRv5xb2279AX9j3Vuxp-e4XG_f1EQRGk

    zhihu.com. 600 IN TXT "m5g7qjk31l5d1hkq6m3zvcf6lg2f0h16"

    zhihu.com. 600 IN TXT "v=spf1 include:spf.google.com include:cust-spf.edmsphere.com -all"

微信公众号要绑定域名,为了证明这个域名就是你的,微信可能会要求你把它自己生成的一段文本用文本记录的形式放在你的域名之下,你的域名之下会多这样一条文本记录,微信的服务器用dns query 的时候会找到这段文本,这样就能证明这段域名确实是你在管理。

DNS工具实战

dig(DNS lookup utility)

用来查询dns的小工具

nslookup

交互式查询域名服务工具

host(DNS lookup utility)

本地host修改

  • Window/linux/mac等下host文件修改

  • Switchhost工具

host 是在dns之前做了一次劫持,打开浏览器时,浏览器先会看host文件

CDN和CDN测试工具

内容分发网络(Content Delivery Network)

基于地理位置的分布式代理服务器/数据中心

  • 提供高可用
  • 提升性能
  • 提升体验

传统的模式是中心化的 ,如服务器在美国,那全世界都到这个服务器请求数据,离服务器近的就快一些,离服务器远就会慢。所以需要内容分发网络,用户发请求是向自己最近的服务器发请求,这样速度就会快。

世界互联网主干网络,一般都在沿海

中国的主干网络

  • 中国联通

  • 中国电信

  • 中国移动

  • 中国教育和科研计算机网

  • 中国科技网

  • 广电带宽(2018)

  • ......

CDN实现原理

用户输入网址 -> 浏览器检查资源要去哪儿请求

CDN云测工具

DNS是个需要前端工程师理解的分布式系统

DNS和CDN缓存工具