DNS域名解析

DNS

DNS是互联网中将域名转化为对应ip地址的分布式命名系统。

域名的组成

根域名 test 主机+根域

一级域名(顶级域名) test.com 主机+一级域+根域

二级域名

三级域名

域名的结构

以www.baidu.com.为例

. 代表根域大家都有所以根域就省略了

.com 一级域名

.baidu 二级域名

www 主机名

域名解析

根域名解析服务器只能解析主机名+根域 的域名 根域服务中存储了自己的子域服务器的信息

根域无法解析,会透露一个信息给你,让你去问一级域中的com域名解析服务器

根域名解析服务器只能解析主机名+根域 的域名 根域服务中存储了自己的子域服务器的信息

以www.baidu.com为例

1.先去看hosts文件中是否有www.baidu.com的地址,如果有直接访问

2.如果没有向本地DNS服务器发起递归查询,等待反馈结果

3.本地DNS服务器先检查服务器的本地缓存,如果有历史记录,直接反馈IP地址,如果没有发起迭代查询

4.根域无法解析,会透露一个信息给你,让你去问一级域中的com域名解析服务器

5.一级域无法解析www.baidu.com,会透露一个信息给你,让你去找二级域

6.以此类推,最后有一台权威服务器会告诉你具体的IP地址,然后反馈给用户

递归:一次询问就有结果

迭代:需要多次询问

bind

bind是DNS服务器软件

  • bind:服务器
  • bind-libs:相关库
  • bind-utils: 客户端
  • bind-chroot: 安全包,将dns相关文件放至 /var/named/chroot/

安装包名:bind

程序名字:named

配置文件:

/etc/named.conf:主配置文件

/etc/named.rfc1912.zones:区域配置文件 你想解析的域名要在这个文件中指明

数据库配置文件/var/named/* 指明了域名与ip地址的一一对应关系

bash 复制代码
[root@localhost ~]# yum  install  bind  bind-utlis  -y   #安装bind
[root@localhost ~]# rpm -qc bind    #查看bind所有配置文件
/etc/logrotate.d/named
/etc/named.conf
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback
[root@localhost ~]# vim /etc/named.conf
options {
        listen-on port 53 { any; };    #将这里修改成any 或者注释掉
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };    #将这里修改成any 或者注释掉
[root@localhost ~]# vim /etc/named.rfc1912.zones 
zone "lzj.com" IN { 
        type master;
        file "lzj.com.zone";
};
[root@localhost named]# cp -a named.localhost lzj.com.zone
cp:是否覆盖"lzj.com.zone"? y

[root@localhost named]# vim lzj.com.zone 
$TTL 1D   #默认的生存时间 1天
@       IN SOA  master.lzj.com. admin.lzj.com (
                                        0       ; serial  #数据库的版本
                                        1D      ; refresh #刷新时间,隔多久会同步
                                        1H      ; retry   #失败重试时间
                                        1W      ; expire  #过期时间,一直无法拉取这个时间后过期
                                        3H )    ; minimum 
        NS      master
master  A       192.168.118.20
mail    A       192.168.118.110
www     A       192.168.118.119
[root@localhost named]# vim /etc/sysconfig/network-scripts/ifcfg-ens33   #编辑网卡配置
#DNS1=218.2.135.1
DNS1=192.168.118.20
[root@localhost named]# systemctl restart network      #重启网络服务
[root@localhost named]# systemctl start named
[root@localhost named]# host mail.lzj.com
mail.lzj.com has address 192.168.118.110
相关推荐
JosieBook43 分钟前
【远程运维】Linux 远程连接 Windows 好用的软件:MobaXterm 实战指南
linux·运维·windows
文档搬运工1 小时前
Linux MInt启动速度的优化
linux
Broken Arrows1 小时前
Linux学习——管理网络安全(二十一)
linux·学习·web安全
索迪迈科技2 小时前
网络请求库——Axios库深度解析
前端·网络·vue.js·北京百思可瑞教育·百思可瑞教育
Light602 小时前
领码方案|Linux 下 PLT → PDF 转换服务超级完整版:异步、权限、进度
linux·pdf·可观测性·异步队列·plt转pdf·权限治理·进度查询
羚羊角uou2 小时前
【Linux】命名管道
linux·运维·服务器
IT 小阿姨(数据库)3 小时前
PgSQL监控死元组和自动清理状态的SQL语句执行报错ERROR: division by zero原因分析和解决方法
linux·运维·数据库·sql·postgresql·centos
THMAIL3 小时前
量化股票从贫穷到财务自由之路 - 零基础搭建Python量化环境:Anaconda、Jupyter实战指南
linux·人工智能·python·深度学习·机器学习·金融
让子弹飞023 小时前
36.2Linux单总线驱动DS18B20实验(详细讲解代码)_csdn
linux·ubuntu·驱动的分离和分层
grrrr_13 小时前
【工具类】Nuclei YAML POC 编写以及批量检测
网络·安全·web安全