暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

DNS 域名

生有可恋 2022-05-29
807

DNS 是 Domain Name System 的缩写,即域名系统。它是IP地址与域名的一种映射。


域名由点进行分隔,最右边一段为一级域名,从右至左分别为一级域名,二级域名,三级域名。常用的一级域名有:

  • 国家  .cn  .jp .us

  • 企业 .com  网络提供商 .net  组织 .org 教育 .edu 


二级或三级域名可以是公司、品牌、产品名称等。域名是分级进行解析的,不同级别的域名记录由不同的域名服务器进行查询。


域名可以分级进行查询,比如 .cn 一级域名到底由哪些域名服务器存储,可以通过 dig 进行跟踪:

    # dig ns cn


    ; <<>> DiG 9.9.2-P1 <<>> ns cn
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27210
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 8, AUTHORITY: 0, ADDITIONAL: 1


    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 512
    ;; QUESTION SECTION:
    ;cn. IN NS


    ;; ANSWER SECTION:
    cn. 2612 IN NS f.dns.cn.
    cn. 2612 IN NS b.dns.cn.
    cn. 2612 IN NS d.dns.cn.
    cn. 2612 IN NS e.dns.cn.
    cn. 2612 IN NS a.dns.cn.
    cn. 2612 IN NS c.dns.cn.
    cn. 2612 IN NS g.dns.cn.
    cn. 2612 IN NS ns.cernet.net.


    ;; Query time: 18 msec
    ;; SERVER: 114.114.114.114#53(114.114.114.114)
    ;; WHEN: Sat May 28 22:53:33 2022
    ;; MSG SIZE rcvd: 174


    域名服务器有以下几类记录:

    • A记录:即 IP 地址

    • CNAME记录: 只能是域名,不能是IP,域名的别名,用于跳转

    • AAAA记录: IPv6地址

    • NS记录:域名服务器

    • PTR记录:由IP反查域名


    通过查看 BIND 服务的配置文件,我们可以对各种记录有个清晰的认识。


    BIND 是 DNS 服务的一种解决方案,bind 程序通过读取配置文件来解析域名和IP间的映射关系。


    在 bind 配置文件目录,有一堆 db.* 的文件

      # tree .
      .
      ├── bind.keys
      ├── db.0
      ├── db.127
      ├── db.192.168
      ├── db.255
      ├── db.local
      ├── db.root
      ├── db.xych.cn
      ├── named.conf
      ├── named.conf.default-zones
      ├── named.conf.local
      ├── named.conf.options
      ├── rndc.key
      └── zones.rfc1918


      其中 name.conf 将 named.conf.default-zones 包含到配置文件中,named.conf.default-zones 再引用具体的 db.*

        $ cat named.conf
        include "/etc/bind/named.conf.options";
        include "/etc/bind/named.conf.local";
        include "/etc/bind/named.conf.default-zones";

        其中 named.conf.default-zones 引用了具体的映射

          $ cat named.conf.default-zones
          // prime the server with knowledge of the root servers
          zone "." {
          type hint;
          file "/etc/bind/db.root";
          };


          zone "localhost" {
          type master;
          file "/etc/bind/db.local";
          };


          zone "127.in-addr.arpa" {
          type master;
          file "/etc/bind/db.127";
          };


          zone "xych.cn" {
          type master;
          file "/etc/bind/db.xych.cn";
          };


          zone "168.192.in-addr.arpa" {
          type master;
          file "/etc/bind/db.192.168";
          };



          A记录在 db.xych.cn 中, PTR记录在 db.192.168 中。

            $ cat db.xych.cn
            ;
            ; BIND data file for local loopback interface
            ;
            $TTL 604800
            @ IN SOA ns.xych.cn. root.xych.cn(
            2 ; Serial
            604800 ; Refresh
            86400 ; Retry
            2419200 ; Expire
            604800 ) ; Negative Cache TTL
            ;
            @ IN NS ns.xych.cn.
            ;域名服务器
            ns IN A 192.168.10.200
            ns-xxzx-svr     IN      A    192.168.10.200
            dns-server      IN      A    192.168.10.200
            hisbakup    IN      A    192.168.10.25

            通过 IP 查域名,查的就是A记录。PTR记录正好反过来,是通过IP查域名。

              $ cat db.192.168
              ;
              ; BIND reverse data file for local loopback interface
              ;
              $TTL 604800
              @   IN  SOA ns.xych.cn. root.xych.cn. (
              1 ; Serial
              604800 ; Refresh
              86400 ; Retry
              2419200 ; Expire
              604800 ) ; Negative Cache TTL
              ;
              @ IN NS ns.xych.cn.
              200.10 IN PTR ns.xych.cn.
              25.10 IN PTR hisbakup.xych.cn.

              实际上所有的域名的后面都有一个点,它代表的是根域名,即db.root所指向的地址。因为所有的域名都有一个根域名,所以省掉了。


              在解析域名时,可以指定域名服务器进行解析,比如

                $ nslookup www.baidu.com 114.114.114.114
                $ dig www.baidu.com @114.114.114.114



                文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论