CentOS 7之DNS域名解析

本文详细介绍了DNS服务的原理,包括DNS的类型、作用及数据结构。深入讲解了如何在Linux环境下安装与配置BIND域名服务,实现DNS正向、反向解析及主从同步,适合网络管理与系统运维人员学习。

一、DNS简介:

域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

二、DNS的作用及数据结构:

CentOS 7之DNS域名解析

三、DNS的类型:

根据所管理的区域地质数据来源的不同,DNS系统可以分为不同的类型。常见的有缓存域名服务器、主域名服务器以及从域名服务器。
CentOS 7之DNS域名解析

CentOS 7之DNS域名解析

四、BIND域名服务

CentOS 7之DNS域名解析
BIND表示唯一能够提供域名服务的DNS服务程序,但却是最广泛应用的,BIND可在大多数的Linux/UNIX主机中运行。

五、安装与配置DNS服务

1、DNS正向解析

(1)在服务器上使用yum安装执行“yum install bind -y”命令安装BIND软件包。
CentOS 7之DNS域名解析

(2)执行“rpm - qc bind”命令查看安装的bind软件包是否完整。
CentOS 7之DNS域名解析

(3)执行“vim /etc/named.conf”命令进入到主文件配置。
CentOS 7之DNS域名解析

(4)在主文件配置中把原有模板中的IP地址换为本地主机的IP地址,并将权限中的“localhost”换为any,授权所有人访问。
CentOS 7之DNS域名解析

(5)然后执行“vim /etc/named.rfc1912.zones”命令进入到区域配置文件。
CentOS 7之DNS域名解析

(6)在区域配置文件中,我们可以复制一份模板来改写,将正向区域中的“localhost”换为“kgc.com”,然后改区域数据配置文件为“kgc.com.zone”即可。
CentOS 7之DNS域名解析

(7)执行“cd /var/named/”命令进入区域数据配置文件的目录,我们再执行“cp -p named.localhost kgc.com.zone”命令保留原有权限的复制模板文件来修改。
CentOS 7之DNS域名解析

(8)执行“vim kgc.com.zone”命令进入到区域数据配置文件。
CentOS 7之DNS域名解析

(9)进入区域数据配置文件后,将“@”全部换为“kgc.com.”;
换“rname.invalid”为“admin.kgc.com.”管理员邮箱;在吧ip地址换为本地主机的IP地址;最后把其余内容删除并输入邮箱服务器的主机地址、正向解析条目、别名解析条目以及泛域名解析条目。
CentOS 7之DNS域名解析

(10)执行“systemctl stop firewalled.service”关闭防火墙,再执行“setenforce 0”命令关闭增强型安全功能。
CentOS 7之DNS域名解析

(11)执行“systemctl start named”命令重启服务,再执行“netstat -nuap”命令查看此服务的UDP 53号端口是否开启。
CentOS 7之DNS域名解析

(12)执行“netstat -ntap”查看此服务的TCP 53号端口是否开启。
CentOS 7之DNS域名解析

(13)执行“echo “nameserver 192.168.174.155” > /etc/resolv.conf”命令来指定本地主机IP地址为DNS服务器地址。
CentOS 7之DNS域名解析

(14)使用host命令来即可获取解析到的IP地址。
CentOS 7之DNS域名解析

2、DNS反向解析

(1)在上述正向解析的基础下,我们执行“vim /etc/named.rfc1912.zones”再次进入到区域配置文件中。
CentOS 7之DNS域名解析

(2)在区域配置文件在复制反向解析模板,倒过来填写IP地址区域,并指定区域数据配置文件即可。
CentOS 7之DNS域名解析

(3)执行“cp -p kgc.com.zone yun.com.loacl”命令保留原有权限的复制模板文件来修改。
CentOS 7之DNS域名解析

(4)执行“vim yun.com.local”进入区域数据文件来修改,
将原有的“kgc”全换为yun;删除原有解析条目,输入反向解析条目即可。
CentOS 7之DNS域名解析
(5)执行“systemctl start named”命令重启服务。
CentOS 7之DNS域名解析

(6)使用host命令即可获取反向解析的域名。
CentOS 7之DNS域名解析

3、DNS主从同步(双机热备)

(1)在另一台服务器上同样关闭防火墙及安全功能,并使用yum安装执行“yum install bind -y”命令安装BIND软件包。
CentOS 7之DNS域名解析

(2)同样的进入到主配置文件。
CentOS 7之DNS域名解析

(3)在主配置文件中把IP地址换成第二台服务器的IP地址,并授权所有人访问。
CentOS 7之DNS域名解析

(4)执行“vim /etc/named.rfc1912.zones”进入到区域配置文件中。
CentOS 7之DNS域名解析

(5)在区域配置文件中同样复制正向解析模板来修改,将类型换成从区域slave并指定下载文件存放目录,中指定主服务器的IP地址。
CentOS 7之DNS域名解析

(6)然后再去到主服务器的区域配置文件修改。
CentOS 7之DNS域名解析

(7)在主服务器的区域配置文件中将“update”换成“transfer”传输,并指定从服务器的IP地址。
CentOS 7之DNS域名解析

(8)执行“systemctl start named”命令重启服务即可看到同步的文件。
CentOS 7之DNS域名解析

(9)执行“echo “nameserver 192.168.174.151” > /etc/resolv.conf”命令来指定本地主机IP地址为DNS服务器地址。
CentOS 7之DNS域名解析

(10)最后使用host命令来换取解析结果。
CentOS 7之DNS域名解析

### CentOS 7 DNS 域名解析服务搭建详细步骤 #### 1. 安装DNS服务器软件BIND 在CentOS 7上,可以通过YUM包管理器安装BIND软件。运行以下命令完成安装: ```bash yum install bind -y ``` 此命令会安装BIND及其相关依赖项[^1]。 #### 2. 配置主配置文件 BIND的主要配置文件位于`/etc/named.conf`。需要编辑该文件以定义正向和反向区域解析的路径以及权限设置。以下是配置文件的一个示例: ```bash options { listen-on port 53 { any; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; }; zone "example.com" IN { type master; file "example.com.zone"; allow-update { none; }; }; zone "100.168.192.in-addr.arpa" IN { type master; file "192.168.100.zone"; allow-update { none; }; }; ``` 上述配置中,`example.com.zone`用于正向解析,`192.168.100.zone`用于反向解析[^2]。 #### 3. 创建正向和反向区域文件 根据`named.conf`中的配置,创建相应的正向和反向区域文件。 **正向区域文件:** ```bash $TTL 86400 @ IN SOA ns1.example.com. admin.example.com. ( 2023101001 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expire 86400 ) ; Minimum ; @ IN NS ns1.example.com. ns1 IN A 192.168.100.128 www IN A 192.168.100.128 ``` **反向区域文件:** ```bash $TTL 86400 @ IN SOA ns1.example.com. admin.example.com. ( 2023101001 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expire 86400 ) ; Minimum ; @ IN NS ns1.example.com. 128 IN PTR www.example.com. ``` 将这些文件保存为`/var/named/example.com.zone`和`/var/named/192.168.100.zone`[^2]。 #### 4. 设置SELinux和防火墙规则 确保SELinux允许DNS服务运行,并开放端口53。可以使用以下命令: ```bash setsebool -P named_write_master_zones 1 firewall-cmd --add-service=dns --permanent firewall-cmd --reload ``` #### 5. 启动并启用DNS服务 启动`named`服务并设置开机自启: ```bash systemctl start named systemctl enable named ``` #### 6. 测试DNS解析功能 使用`nslookup`或`dig`命令测试域名解析是否正常: ```bash nslookup www.example.com 192.168.100.128 dig @192.168.100.128 www.example.com ``` 如果一切配置正确,应该能够解析到指定的IP地址[^4]。 #### 7. 修改本地DNS服务器IP 为了使服务器自身使用新配置的DNS服务,需修改`/etc/resolv.conf`文件: ```bash echo "nameserver 192.168.100.128" > /etc/resolv.conf cat /etc/resolv.conf ``` 这一步确保本地系统使用自定义的DNS服务器进行解析[^2]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值