在CentOS 6.7系统中,DNS(域名系统)配置是一项基础且至关重要的任务,它决定了服务器如何将人类可读的域名(如www.google.com)解析为机器可读的IP地址,无论是将服务器配置为DNS客户端以访问外部服务,还是将其部署为功能完备的DNS服务器,掌握其配置方法都必不可少,本文将深入探讨这两种场景,提供清晰、分步的指导。
配置DNS客户端
对于大多数服务器而言,最常见的DNS配置是将其设置为DNS客户端,以便能够解析互联网上的域名,这主要通过修改网络接口配置文件来实现。
临时配置(不推荐)
最直接的方式是编辑 /etc/resolv.conf
文件,此文件包含了DNS服务器的IP地址。
# /etc/resolv.conf
nameserver 8.8.8.8
nameserver 114.114.114.114
search mydomain.local
这里的 nameserver
指令指定了DNS服务器的地址,可以配置多个,系统会按顺序查询。search
指令则用于在查询不带后缀的主机名时自动追加的域名后缀。
重要提示:在CentOS 6.7中,直接编辑 /etc/resolv.conf
的修改是临时的,当网络服务重启或服务器重启后,此文件可能会被系统根据网络接口配置自动覆盖。
永久配置(推荐)
为了确保DNS配置持久化,应该在网络接口配置文件中进行设置,要为 eth0
接口设置DNS,需编辑 /etc/sysconfig/network-scripts/ifcfg-eth0
文件。
# /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
ONBOOT="yes"
IPADDR="192.168.1.50"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"
DNS1="8.8.8.8"
DNS2="8.8.4.4"
DOMAIN="mydomain.local"
在此文件中,DNS1
和 DNS2
参数用于指定首选和备用DNS服务器。DOMAIN
参数的作用类似于 resolv.conf
中的 search
指令。
保存文件后,需要重启网络服务以使配置生效。
service network restart
重启后,系统会自动将 DNS1
和 DNS2
的值写入 /etc/resolv.conf
,从而实现永久配置,您可以使用 nslookup
或 dig
命令来验证DNS解析是否正常工作。
nslookup www.centos.org
配置DNS服务器(BIND)
将CentOS 6.7配置为一台DNS服务器,通常使用BIND(Berkeley Internet Name Domain)软件,这允许您为内部网络提供域名解析服务,或管理您自己的公网域名。
安装BIND
使用 yum
包管理器安装BIND及相关工具。
yum install bind bind-utils -y
主配置文件
BIND的主配置文件是 /etc/named.conf
,它定义了全局选项、访问控制列表以及要解析的区域,以下是一个简化示例:
options {
listen-on port 53 { any; }; // 监听所有网络接口
directory "/var/named"; // 区域文件存放目录
allow-query { any; }; // 允许任何客户端查询
recursion yes; // 允许递归查询
};
zone "example.com" IN {
type master;
file "example.com.zone";
allow-update { none; };
};
此配置定义了一个名为 example.com
的主区域,其数据存储在 /var/named/example.com.zone
文件中。
区域数据文件
区域文件包含了具体的域名与IP地址的映射记录,以下是 /var/named/example.com.zone
的一个示例:
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2025102701 ; Serial (序列号,修改后需递增)
3600 ; Refresh (刷新时间)
1800 ; Retry (重试时间)
604800 ; Expire (过期时间)
86400 ) ; Minimum TTL (最小TTL)
; NS记录
IN NS ns1.example.com.
; A记录
ns1 IN A 192.168.1.10
www IN A 192.168.1.20
mail IN A 192.168.1.30
此文件定义了SOA(授权起始)记录、NS(名称服务器)记录和多个A(地址)记录。
文件路径 | 描述 |
---|---|
/etc/named.conf | BIND的主配置文件,定义全局参数和区域声明。 |
/var/named/ | 区域数据库文件(如 .zone 文件)的默认存储位置。 |
启动与验证
配置完成后,使用以下命令启动BIND服务,并设置其开机自启。
service named start chkconfig named on
可以使用 named-checkconf
和 named-checkzone
命令在启动前检查配置文件和区域文件的语法,避免因错误导致服务启动失败。
named-checkconf named-checkzone example.com /var/named/example.com.zone
在客户端或服务器本地上使用 dig
或 nslookup
测试解析。
dig @localhost www.example.com
相关问答FAQs
问题1:为什么我手动修改了 /etc/resolv.conf
文件,但重启网络服务后,配置又恢复了?
回答: 这是因为在CentOS 6.x系统中,网络管理脚本(位于 /etc/sysconfig/network-scripts/
目录下)在启动时会根据网络接口配置文件(如 ifcfg-eth0
)中的 DNS1
、DNS2
等参数重新生成 /etc/resolv.conf
文件,直接编辑 /etc/resolv.conf
的更改会被覆盖,为了使DNS配置永久生效,必须在对应的网络接口配置文件中设置 DNS1
和 DNS2
参数,然后重启网络服务。
问题2:在配置BIND DNS服务器时,如何在不重启服务的情况下检查配置文件语法是否正确?
回答: BIND提供了两个非常有用的命令行工具来验证配置。named-checkconf
用于检查主配置文件 /etc/named.conf
的语法,如果没有任何输出,则表示配置文件正确无误。named-checkzone
用于检查特定区域的数据库文件,其用法为 named-checkzone [区域名称] [区域文件路径]
。named-checkzone example.com /var/named/example.com.zone
,这两个工具可以在应用新配置前预先发现并修正语法错误,避免了因配置错误导致DNS服务中断。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复