linux-DNS解析

时间:2024-11-15 09:56:10

dns解析

dns:域名系统,将域名和ip地址互相映射的一个分布式的数据库,方便用户访问互联网。

ip地址:是所有设备和网站在互联网上的唯一地址,通信一定是ip和ip之间的通信。

dns解析:根据域名在互联网当中找到对应的ip地址并进行访问。

DNS的解析库以及域名的详解

www.baidu.com.cn.=www.baidu.com 从右往左

.(根域):根域的服务器在全球有13台,9台在美国,3台在欧洲,1台在日本

cn.:一级域,代表国家或者地区,例如(jp、us、kr、rs)

ipv6:根域服务器,(中国,美国)

com.cn.:二级域,表示组织机构,com 商业组织 edu 教育机构 org 非盈利性机构 net 运营商 gov *

baidu(狭义上的域名).com.cn.:三级域,企业或者组织在互联网上的唯一标识

www.baidu.com.cn.:主机名,主机站点 web mail 邮箱(应用)

解析库的建立

/etc/hosts  本地做解析 快 配置起来麻烦

运营商完成 (电信、移动、联通)

电信的dns解析的地址:218.2.135.1 江苏电信的dns解析地址

8.8.8.8:谷歌通用的dns解析地址

移动的解析地址:114.114.114.114 移动的dns解析地址

dns解析的端口(服务器):53端口 TCP的53 UDP的53端口

TCP的53端口:用于连接dns服务器

UDP的53端口:用于解析域名

dns域名的长度限制:每一级长度是63个字符,不能超过253个字符

访问www.baidu.com(dns的迭代和递归)

0、用户(访问www.baidu.com)

1、本地解析

2、运营商

3、根域(已经知道了结果,但是不会直接反馈,让你去下一级继续查找)

4、一级域(已经知道了结果,但是不会直接反馈,让你去下一级继续查找)

5、二级域(已经知道了结果,但是不会直接反馈,让你去下一级继续查找)

6、三级域(子域),结果已经有了,并反馈到运营商,或者是本地文件(需要手动操作),再反馈给用户。

从根域到子域的查询过程叫迭代,返回客户端的过程叫递归。

curl命令 直接测试web页面(是否可以浏览)

-I 查询webserver服务器

-k 给后台页面传参数

在实验环境中实现内网的dns解析

正向解析:通过域名可以获取ip地址

反向解析:通过ip地址获得域名

主从解析:两台服务器互为主备做dns解析

/etc/hosts和dns解析服务器谁的优先级高?本机高,但是只对本机有效

bind  内网解析dns,外网不行

实验

主服务器

第一步

apt -y install bind9
cd /etc/bind
root@cwq-virtual-machine:/etc/bind# vim named.conf.options

named.conf.options的配置文件

directory "/var/cache/bind";
        listen-on port 53 {192.168.213.11;};   监听哪一台主机的53端口
        allow-query {192.168.213.0/24;};       允许哪些服务器允许向dns服务器提交查询请求

 第二步

root@cwq-virtual-machine:/etc/bind# vim named.conf.default-zones

named.conf.default-zones的配置文件

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

zone "pikaqiu.com" {
        type master;    #状态为主服务器
        file "/etc/bind/pikaqiu.local";   #建立域名映射需要参考该文件
        allow-transfer { 192.168.213.31; };  #哪些DNS服务器允许获得主服务器的dns记录
};
zone "127.in-addr.arpa" {
        type master;
        file "/etc/bind/db.127";
};

zone "213.168.192.in-addr.arpa" {
        type master;
        file "/etc/bind/pikaqiu.local.zone";
        allow-transfer { 192.168.213.31; };
};

pikaqiu.local的配置文件

pikaiqiu.local.zone的配置文件

  1. $TTL 604800

    • 这行定义了默认的生存时间(TTL),单位为秒。604800秒等于7天,这意味着该区域文件中的所有记录在没有其他TTL指定时,默认缓存时间为7天。
  2. @ IN SOA localhost. root.localhost. (

    • 这行定义了起始授权区域(SOA)记录。
    • @符号表示当前区域文件的根域。
    • IN表示使用Internet标准。
    • SOA是起始授权区域的缩写。
    • localhost. root.localhost.是SOA记录的域名部分,通常包括主域名和托管该区域的邮局域名。
  3. serial 2

    • 这是SOA记录中的序列号,用于标识版本的更新。每次区域文件更新时,序列号应递增。这个数值帮助DNS服务器判断是否需要更新其缓存。
  4. refresh 604800

    • 这是刷新时间,表示其他DNS服务器应该多久检查一次这个区域的最新状态。604800秒(7天)表示其他DNS服务器应在7天后尝试刷新缓存。
  5. retry 86400

    • 这是重试时间,表示在刷新失败后,其他DNS服务器应该等待多久再次尝试刷新。86400秒(24小时)表示在刷新失败后会等待24小时再重试。
  6. expire 2419200

    • 这是过期时间,表示超过这个时间后,DNS服务器将放弃该区域的缓存数据。2419200秒(60天)表示如果60天内没有收到更新,DNS服务器将认为该区域数据已过期。
  7. Negative Cache TTL 604800

    • 这是负缓存TTL,表示其他DNS服务器缓存否定回答的时间。604800秒(7天)表示其他DNS服务器会将否定回答(如DNS查询失败)缓存7天。
  8. IN NS localhost.

    • 这行定义了名称服务器(NS)记录,指定哪个DNS服务器负责解析这个区域。
    • IN表示使用Internet标准。
    • NS是名称服务器的缩写。
    • localhost.表示本地主机作为名称服务器。
  9. IN A 127.0.0.1

    • 这行定义了A记录,将域名解析到IPv4地址。
    • IN表示使用Internet标准。
    • A是IPv4地址的缩写。
    • 127.0.0.1是本地回环地址,通常用于测试或本机服务。
  10. IN AAAA ::1

    • 这行定义了AAAA记录,将域名解析到IPv6地址。
    • IN表示使用Internet标准。
    • AAAA是IPv6地址的缩写。
    • ::1是本地回环地址,通常用于测试或本机服务。

从服务器 

第一步

apt -y install bind9
cd /etc/bind
vim named.conf.options

named.conf.options的配置文件

 directory "/var/cache/bind";
        listen-on port 53 { any; };
        allow-query { any; };
vim named.conf.default-zones

named.conf.defaults-zones的配置文件 

zone "localhost" {
        type master;
        file "/etc/bind/db.local";
};
zone "pikaqiu.com" {
        type slave;            #状态为从服务器
        file "pikaqiu.local";  #注定从服务器区域数据的文件
        masters { 192.168.213.11; };  #指定主服务器的ip地址
};
zone "213.168.192.in-addr.arpa" {
        type slave;
        file "pikaqiu.local.zone";
        masters { 192.168.213.11; };
};

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


检验命令

nslookup(查询域名系统(DNS)以获取域名或 IP 地址的相关信息) www.pikaqiu.com/192.168.213.31