以下是关于在 SUSE 系统中配置 DNS 的详细内容:
一、DNS 基础概念
正向解析:将域名转换为 IP 地址,例如将“www.example.com”转换为对应的 IP 数字。
反向解析:与正向解析相反,根据 IP 地址查找对应的域名。
二、安装 DNS 服务器软件(BIND)
使用命令sudo zypper install bind bindutils
安装 BIND 软件包及工具。
启动并设置 BIND 服务开机自启:sudo systemctl enable named
,sudo systemctl start named
,然后通过sudo systemctl status named
检查服务状态。
三、配置主配置文件 named.conf
监听 IP 配置:在/etc/named.conf
中可设置监听的 IP 地址,若需监听所有 IP 地址,可配置为listenon port 53 { any; };
;若只监听特定 IP,如192.168.1.1
,则配置为listenon port 53 { 192.168.1.1; };
。
日志文件配置:可指定日志文件路径及记录级别等,
logging { channel default_log { file "/var/log/named/named.log" versions 3 size 5m; severity info; printtime yes; printseverity yes; printcategory yes; }; category default { default_log; }; };
四、配置正向解析区域
编辑 named.conf:添加如下正向解析区域配置(以“example.com”为例):
zone "example.com" IN { type master; file "/var/lib/named/master/example.com.zone"; };
创建区域文件:在/var/lib/named/master
目录下创建example.com.zone
示例如下:
$TTL 86400 @ IN SOA ns1.example.com. admin.example.com. ( 3 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 86400 ) ; Negative Cache TTL ; @ IN NS ns1.example.com. ns1 IN A 192.168.1.1 www IN A 192.168.1.1
五、配置反向解析区域
编辑 named.conf:添加反向解析区域配置(以“1.168.192.inaddr.arpa”为例):
zone "1.168.192.inaddr.arpa" IN { type master; file "/var/lib/named/master/db.192.168.1"; };
创建区域文件:在/var/lib/named/master
目录下创建db.192.168.1
示例如下:
$TTL 86400 @ IN SOA example.com. admin.example.com. ( 3 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 86400 ) ; Negative Cache TTL ; @ IN NS example.com. 1 IN PTR ns1.example.com.
六、调整防火墙规则
如果使用 firewalld,需开放 DNS 服务端口 53(TCP 和 UDP):sudo firewallcmd permanent addservice=dns
,sudo firewallcmd reload
。
七、测试 DNS 服务器
使用dig
工具测试,如dig @localhost www.example.com
,若配置正确应返回对应 IP 地址。
八、配置 DNS 客户端
修改/etc/resolv.conf:添加 DNS 服务器 IP 地址,如nameserver 192.168.1.1
,可添加多行指定多个 DNS 服务器。
修改/etc/nsswitch.conf:增加hosts: files dns
和networks: files dns
,以便先从本地文件查找主机名和网络名,再查询 DNS。
九、DNS 视图配置(高级)
定义 ACL(访问控制列表):在named.conf
中使用acl
关键字定义,例如acl intra { 172.17.0.0/16; 192.168.1.0/24; 127.0.0.0/8; };
定义名为intra
的 ACL。
定义视图:使用view
关键字,包含matchclients
子句指定可访问客户端,如:
view telecom { matchclients { intra; }; zone willow.com IN { type master; file telecom.willow.com.zone; }; }; view unicom { matchclients { any; }; zone willow.com IN { type master; file unicom.willow.com.zone; }; };
区域文件配置:每个视图中的zone
子句指向特定区域文件,文件中定义域名的 DNS 记录,如 A 记录、CNAME 记录等。
DNS 日志系统配置:在named.conf
中使用logging
子句配置日志系统,记录查询和解析信息,如:
logging { channel query_log { file /var/log/bind/bind_query.log versions 3 size 5M; severity dynamic; }; category queries { query_log; }; };
相关问题与解答
问题 1:在 SUSE 中配置 DNS 服务器时,为什么需要开放防火墙的 53 端口?
解答:DNS 服务器默认使用 53 端口进行通信,若不开放该端口,外部网络将无法向 DNS 服务器发送查询请求,导致 DNS 服务无法正常对外提供解析服务。
问题 2:修改了 DNS 客户端的/etc/resolv.conf文件后,为什么有时还是无法解析域名?
解答:可能原因有多种,一是 DNS 服务器本身配置错误或未正常运行,导致无法响应查询请求;二是网络连接问题,客户端无法连接到指定的 DNS 服务器,例如网络中断或路由设置错误;三是域名拼写错误或不存在该域名对应的解析记录。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/193565.html