--- title: DNS域名系统服务 categories: - Linux服务 tags: - DNS date: 2022-04-04 21:35:25 --- # DNS域名系统服务 ## DNS介绍 定义:域名也就是个名字,用名字代替ip地址,方便记忆 正向解析:域名换IP 反向解析:IP换域名(比较少) ## 域名组成 常见格式:www.lzcwy.cn 其实隐藏了.(根域):www.lzcwy.cn. . :根域,可省略不写 com:顶级域,由ICANN组织指定和管理 主机名: s1.www.atguigu.com.中的s1就是主机名,一般用来表示具体某一台主机 ``` 国家地区域名:cn(中国)、hk(香港)、sg(新加坡)等 通用顶级域名: com(商业机构)、org(非营利组织)、edu(教育机构)等新通用顶级域名:red(红色、热情)、top(顶级、高端)等 lzcwy:二级域(注册域),可由个人或组织申请注册 www:三级域(子域),服务器网站名代表 ``` 主机名: s1.www.lzcwy.cn.中的s1就是主机名,一般用来表示具体某一台主机 ## DNS软件信息 **软件名称:bind** **服务名称:named** **软件端口:UDP 53(域名解析) TCP(主从同步)** **配置文件:/etc/named.conf(服务器运行参数)** **区域配置文件:/etc/named.rfc1912.zones(服务器解析的区域配置,正反向区域定义信息)** **数据配置文件:/var/named/xx.xx(主机名和IP地址对应的解析关系)** ## 搭建DNS 1、安装软件 ``` yum install bind ``` 2、配置主配置文件/etc/named.conf ``` vim /etc/named.conf ``` 原内容解释 ``` options { listen-on port 53 { 127.0.0.1; }; #设置DNS服务的ip地址,推荐设置成any listen-on-v6 port 53 { ::1; }; #IPv6 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"; #数据文件的位置 secroots-file "/var/named/data/named.secroots"; #数据文件的位置 recursing-file "/var/named/data/named.recursing"; #数据文件的位置 allow-query { localhost; }; #允许访问此DNS的ip地址,可设置成any ``` 修改为如下 ``` options { listen-on port 53 { any; }; 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"; secroots-file "/var/named/data/named.secroots"; recursing-file "/var/named/data/named.recursing"; allow-query { any; }; ``` 3、配置区域配置文件/etc/named.rfc1912.zones ``` vim /etc/named.rfc1912.zones ``` 删除多余部分,留下这些内容 ``` zone "localhost.localdomain" IN { #正向配置区域配置文件标签,修改成要解析的域 type master; #DNS类型,主备 file "named.localhost"; #正向数据配置文件名称,保存在/var/name/下 allow-update { none; }; #运行数据更新的IP地址(即备用dns) }; zone "1.0.0.127.in-addr.arpa" IN { #反向区域配置文件标签,如0.1.168.192.in-addr-arpa type master; file "named.loopback"; allow-update { none; }; }; ``` 根据自己的域名修改配置文件 ``` zone "lzcwy.cn" IN { type master; file "named.lzcwy"; allow-update { none; }; }; zone "0.1.168.192.in-addr.arpa" IN { type master; file "named.loopback"; allow-update { none; }; }; ``` 4、配置数据配置文件/var/named/xx.xx ``` cp /var/named/named.localhost /var/named/named.lzcwy vim /var/named/named.lzcwy ``` 配置文件如下 ``` $TTL 1D #域名有效解析生存周期 @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 AAAA ::1 ``` ![](https://lzcwy-1257903760.cos.ap-beijing.myqcloud.com/%E8%BF%90%E7%BB%B4/DNS/1.png) 5、给相关文件授权 ``` chmod 777 /var/named/named.lzcwy /var/named/named.loopback ``` 6、重启DNS服务 ``` systemctl restart named ``` ## 开启DNS转发器 解析内网域名已经可以实现了,那内网服务器怎么解析外网域名呢,这就需要配置DNS转发器,当内网无法解析到就去外网解析 1、编辑主配置文件 ``` vim /etc/named.conf #内容如下,增加最后两行 options { listen-on port 53 { any; }; 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"; secroots-file "/var/named/data/named.secroots"; recursing-file "/var/named/data/named.recursing"; allow-query { any; }; #下面为新增 forwarders { 外网DNS地址; }; forward only; ``` 2、重启服务即可