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