5154

Good Luck To You!

rehl7中dns配置

RHEL7中配置DNS,需编辑/etc/named.rfc1912.zones文件添加区域信息,并设置网卡为static模式,于/etc/resolv.conf指定DNS服务器地址。

Red Hat Enterprise Linux 7 (RHEL 7)中的DNS配置详解

在RHEL 7系统中,DNS(域名系统)的配置是网络管理的重要组成部分,它负责将易记的域名转换为对应的IP地址,从而使得用户能够通过名称而非数字来访问网络资源,以下是详细的配置步骤和相关说明:


安装BIND软件包

要搭建本地DNS服务器或修改现有设置,首先需要安装BIND(Berkeley Internet Name Domain)服务,执行以下命令进行安装:

sudo yum install bind bindutils y

此操作会同时安装主程序及实用工具(如dignslookup用于测试解析效果),安装完成后,默认不会自动启动服务,需手动启用并配置。


主配置文件结构与编辑

BIND的核心配置文件位于 /etc/named.conf分为多个部分,包括全局参数、日志控制、区域定义等,关键修改点如下:

  1. 允许任意地址监听请求
    找到第11行和第19行的listenon port 53 { ... }条目,将其值改为any;,表示接受所有接口上的DNS查询请求。
    listenon port 53 { any; };
  2. 开放递归查询权限
    同样地,调整允许递归的客户端范围为any;,确保外部设备也能使用本机作为转发器:
    allowquery { any; };
  3. 加载自定义区域文件
    logging段落下方添加对自制区域的引用,假设我们创建了一个正向解析区example.com和一个反向解析区168.1.0/24,则需加入类似如下代码:
    zone "example.com" IN {
        type master;
        file "/var/named/example.com.zone";
    };
    zone "1.168.192.inaddr.arpa" IN {
        type master;
        file "/var/named/192.168.1.arpa";
    };

    注意:路径必须真实存在且格式正确,否则会导致服务启动失败。


创建区域数据文件

以正向解析为例,新建文件 /var/named/example.com.zone模板如下: | 记录类型 | 示例条目 | 作用说明 | |||| | $TTL | $TTL 86400 | 默认缓存时间(秒) | | | IN SOA ns.example.com root.mail.example.com (...序列号等...) | 授权起始声明 | | A记录 | ns IN A 192.168.1.10 | 将子域“ns”指向特定IP | | CNAME别名 | www IN CNAME ns | 为主机设置友好名称 | | PTR反向查找 | 10 IN PTR ns.example.com | 从IP反查域名(用于反向区域) |

rehl7中dns配置

反向区域的写法略有不同,如 /var/named/192.168.1.arpa 中应包含:

$ORIGIN .
$TTL 86400
@    IN SOA    ns.example.com. admin.example.com. ( … )
10   IN PTR    ns.example.com.

保存后检查语法错误:namedcheckzone example.com /var/named/example.com.zone


客户端配置(/etc/resolv.conf)

若仅作为客户端而非服务器角色运行,则只需编辑该文件指定上游DNS服务器列表,推荐设置为静态模式以避免DHCP覆盖:

nameserver 8.8.8.8      # Google公共DNS
nameserver 114.114.114.114 # 国内高速节点
search localdomain       # 自动补全后缀优先级

对于持久化需求,还需修改网卡配置项:将BOOTPROTO设为static,并关闭PEERDNS(防止网络重启时被重置),具体步骤参考网络脚本章节。

rehl7中dns配置


防火墙与SELinux策略调整

默认情况下,Firewalld可能阻止UDP/TCP端口53的流量,依次执行下列命令放行:

firewallcmd permanent addservice=dns
firewallcmd reload

针对SELinux的限制,可通过以下指令降低安全性级别:

setsebool named_write_master_zones on

这一步允许写入动态更新的区域信息,适用于实验环境;生产环境中建议精细调优策略而非全局禁用。


验证功能是否正常

使用内置工具快速诊断问题所在:

rehl7中dns配置

  • 交互式查询: nslookup domain.namedig @localhost example.com
  • 抓包分析: tcpdump i lo udp port 53 观察本地环回口的数据包交互情况
  • 日志排查: tail f /var/log/messages | grep named 查看实时运行状态

常见问题与解答

Q1: 修改了/etc/resolv.conf但重启后丢失怎么办?
A: 这是由于网络管理器(NetworkManager)默认启用了DHCP分配的临时配置,解决方法有两种:①修改对应网卡的连接配置文件,将BOOTPROTO改为static,并关闭PEERDNS选项;②直接编辑 /etc/sysconfig/networkscripts/ifcfgethX,添加 PEERDNS=no 然后重启网络服务。

Q2: BIND服务无法启动时报“invalid zone file”错误如何处理?
A: 通常是因为区域文件中存在语法错误,可以使用命令行工具验证:namedcheckzone [区域名] [文件路径],常见错误包括缺少分号结尾、括号不匹配或者SOA记录格式不正确,建议对照RFC标准文档逐一校对修正。

通过以上步骤,您可以在RHEL 7上成功部署一个基础的DNS解析环境,无论是作为缓存转发器还是权威域名服务器都能满足

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年9月    »
1234567
891011121314
15161718192021
22232425262728
2930
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.