dns服务基础配置实现互联网访问


一、完整的查询请求经过的流程

Client -->hosts文件 --> Client DNS Service Local Cache --> DNS Server (recursion递归) --> DNS Server Cache -->DNS iteration(迭代) --> 根--> 顶级域名DNS-->二级域名DNS…

linux没有缓存

二、DNS软件 bind

1.BIND相关程序包

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

例:安装bind,并启动

[root@centos8 ~]# yum -y install bind-utils bind

找到配置文件

[root@centos8 ~]# rpm -ql bind

 查看其端口

[root@centos8 ~]# grep name /etc/services

[root@centos8 ~]# vim /etc/services 

启动服务

[root@centos8 ~]# systemctl status named
[root@centos8 ~]# systemctl enable --now named.service 
[root@centos8 ~]# systemctl status named.service 

[root@centos8 ~]# ss -ntul

 既然已经启动binddns服务将本机dns修改

[root@centos8 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens160

生效

[root@centos8 ~]# nmcli con reload
[root@centos8 ~]# nmcli con up eth0
[root@centos8 ~]# nmcli con

查看/etc/resolv.cnf文件,确认DNS生效

[root@centos8 ~]# cat /etc/resolv.conf

 默认修改其配置文件/etc/named

将option第一行和allow-query哪一行删掉

2.bind服务的根服务器文件/var/named/named.ca

[root@centos7 ~]# cat /var/named/named.ca

   

3.bind-utils工具包

1)

[root@centos7 ~]# rpm -ql bind-utils

2)dig 命令

dig只用于测试dns系统,不会查询hosts文件进行解析

dig [-t type] name [@SERVER] [query options]
query options:
 +[no]trace:跟踪解析过程 : dig +trace magedu.org
 +[no]recurse:进行递归解析

3)host命令

命令格式:

host [-t type] name [SERVER]

4)nslookup命令(window默认也有)

nslookup 可以支持交互和非交互式两种方式执行

全令格式:

nslookup [-option] [name | -] [serve

交互式模式:

nslookup>
server IP: 指明使用哪个DNS server进行查询
set q=RR_TYPE: 指明查询的资源记录类型
NAME: 要查询的名称

5)rndc 命令

利用rndc工具可以实现管理DNS功能

rndc 监听端口: 953/tcp

命令格式:

rndc COMMAND
COMMAND:
   status: 查看状态
 reload: 重载主配置文件和区域解析库文件
 reload zonename: 重载区域解析库文件
 retransfer zonename: 手动启动区域传送,而不管序列号是否增加
 notify zonename: 重新对区域传送发通知
 reconfig: 重载主配置文件
 querylog: 开启或关闭查询日志文件/var/log/message
 trace: 递增debug一个级别
 trace LEVEL: 指定使用的级别
 notrace:将调试级别设置为 0
 flush:清空DNS服务器的所有缓存记录

4.主配置文件语法检查

named-checkconf 

5.解析库文件语法检查

named-checkzone "weilan.org" /var/named/weilan.org.zone

6.配置生效

#三种方式
#rndc reload
#systemctl reload named
#service named reload

7.主配置文件

全局配置:options {};
日志子系统配置:logging {};
区域定义:本机能够为哪些zone进行解析,就要定义哪些zone
 zone "ZONE_NAME" IN {};

注意:

  • 任何服务程序如果期望其能够通过网络被其它主机访问,至少应该监听在一个能与外部主机通信的 IP地址上
  • 缓存名称服务器的配置:监听外部地址即可
  • dnssec: 建议关闭dnssec,设为no

8.BIND包相关文件

BIND主程序:/usr/sbin/named
服务脚本和Unit名称:/etc/rc.d/init.d/named,/usr/lib/systemd/system/named.service
主配置文件:/etc/named.conf, /etc/named.rfc1912.zones, /etc/rndc.key
管理工具:/usr/sbin/rndc:remote name domain controller,默认与bind安装在同一主机,且
只能通过127.0.0.1连接named进程,提供辅助性的管理功能;953/tcp
解析库文件:/var/named/ZONE_NAME.ZONE
注意:
 (1) 一台物理服务器可同时为多个区域提供解析
 (2) 必须要有根区域文件;named.ca
 (3) 应该有两个(如果包括ipv6的,应该更多)实现localhost和本地回环地址的解析库

写于2022-3-20-16:32 weilan