Linux下的DNS服务器搭建

  • 一、DNS介绍
    • 1.dns域名系统
    • 2.正向解析和反向解析
  • 二、检查环境
  • 三、搭建主DNS
    • 1.安装dns相关包
    • 2.设置服务开机自启
    • 3.编辑DNS主配置文件
    • 4.编辑区域文件
    • 5.编辑正向数据库文件
    • 6.编辑反向数据库文件
    • 7.文件授权
    • 8.重启服务
    • 9.放行防火墙
  • 四、测试dns服务
    • 1.客户端上配置dns服务器指向
    • 2.测试A记录解析
    • 3.反向解析

一、DNS介绍

1.dns域名系统

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

2.域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。

2.正向解析和反向解析

正向解析:根据域名查询IP地址,是DNS最基本也是最常用的功能
反向解析:根据IP地址查询域名

二、检查环境

[root@control ~]# cat /proc/version
Linux version 4.18.0-80.el8.x86_64 (mockbuild@x86-vm-08.build.eng.bos.redhat.com) (gcc version 8.2.1 20180905 (Red Hat 8.2.1-3) (GCC)) #1 SMP Wed Mar 13 12:02:46 UTC 2019
[root@control ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000link/ether 00:0c:29:e6:30:17 brd ff:ff:ff:ff:ff:ff
3: ens224: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000link/ether 00:0c:29:e6:30:17 brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000link/ether 00:0c:29:e6:30:17 brd ff:ff:ff:ff:ff:ffinet 192.168.200.150/24 brd 192.168.200.255 scope global noprefixroute bond0valid_lft forever preferred_lft foreverinet 192.168.200.151/24 brd 192.168.200.255 scope global secondary noprefixroute bond0valid_lft forever preferred_lft foreverinet6 fe80::d40d:838b:b162:da0c/64 scope link noprefixroute valid_lft forever preferred_lft forever
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:68:9e:ab brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:68:9e:ab brd ff:ff:ff:ff:ff:ff

三、搭建主DNS

1.安装dns相关包

[root@control yum.repos.d]# yum -y install bind bind-chroot
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
AppStream                                                                                                      261 kB/s | 3.2 kB     00:00
BaseOS                                                                                                         227 kB/s | 2.7 kB     00:00
ansiable                                                                                                       2.9 MB/s | 3.0 kB     00:00
Dependencies resolved.
===============================================================================================================================================Package                          Arch                        Version                                     Repository                      Size
===============================================================================================================================================
Installing:bind                             x86_64                      32:9.11.4-16.P2.el8                         AppStream                      2.1 Mbind-chroot                      x86_64                      32:9.11.4-16.P2.el8                         AppStream                       99 kTransaction Summary
===============================================================================================================================================
Install  2 PackagesTotal size: 2.2 M
Installed size: 4.7 M
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transactionPreparing        :                                                                                                                       1/1 Running scriptlet: bind-32:9.11.4-16.P2.el8.x86_64                                                                                       1/2 Installing       : bind-32:9.11.4-16.P2.el8.x86_64                                                                                       1/2 Running scriptlet: bind-32:9.11.4-16.P2.el8.x86_64                                                                                       1/2 Installing       : bind-chroot-32:9.11.4-16.P2.el8.x86_64                                                                                2/2 Running scriptlet: bind-chroot-32:9.11.4-16.P2.el8.x86_64                                                                                2/2 Verifying        : bind-32:9.11.4-16.P2.el8.x86_64                                                                                       1/2 Verifying        : bind-chroot-32:9.11.4-16.P2.el8.x86_64                                                                                2/2
Installed products updated.Installed:bind-32:9.11.4-16.P2.el8.x86_64                                    bind-chroot-32:9.11.4-16.P2.el8.x86_64                                   Complete!

2.设置服务开机自启

[root@control yum.repos.d]#
[root@control yum.repos.d]# systemctl enable --now named
Created symlink /etc/systemd/system/multi-user.target.wants/named.service → /usr/lib/systemd/system/named.service.
[root@control yum.repos.d]# systemctl status named
● named.service - Berkeley Internet Name Domain (DNS)Loaded: loaded (/usr/lib/systemd/system/named.service; enabled; vendor preset: disabled)Active: active (running) since Wed 2021-06-23 02:57:21 UTC; 11s agoProcess: 60709 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)Process: 60706 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else ec>Main PID: 60711 (named)Tasks: 4 (limit: 24900)Memory: 54.8MCGroup: /system.slice/named.service└─60711 /usr/sbin/named -u named -c /etc/named.conf

3.编辑DNS主配置文件

[root@control yum.repos.d]# vim /etc/named.conf 

options {listen-on port 53 { any; };listen-on-v6 port 53 { ::1; };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";secroots-file   "/var/named/data/named.secroots";recursing-file  "/var/named/data/named.recursing";allow-query     { any; };

4.编辑区域文件

[root@control yum.repos.d]# vim /etc/named.rfc1912.zones
zone "huaxia.com" IN {type master;file "named.zx";allow-update { none; };
};zone "200.168.192.in-addr.arpa" IN {type master;file "named.fx";allow-update { none; };
};

5.编辑正向数据库文件

[root@control ~]# vim /var/named/namd.zx
$TTL 1D
@       IN SOA   ns.huaxia.com. root.  (2021062209           ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimum
@        IN      NS      ns.huaxia.com.
ns      IN      A       192.168.200.150
www     IN      A       192.168.200.150
server0       IN      A       192.168.200.150

6.编辑反向数据库文件

[root@control ~]# vim /var/named/named.fx
$TTL 1D
@       IN SOA   ns.huaxia.com. root.  (2021062209           ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimum
@             NS      ns.huaxia.com.
ns      IN      A       192.168.200.150
22              PTR      www.huaxia.com.

7.文件授权

[root@control named]# chown named.named *
[root@control named]# pwd
/var/named
[root@control named]# ll
total 24
drwxr-x--- 7 named named   61 Jun 23 10:55 chroot
drwxrwx--- 2 named named   23 Jun 23 10:57 data
drwxrwx--- 2 named named   60 Jun 23 17:28 dynamic
-rw-r----- 1 named named 2253 Apr  5  2018 named.ca
-rw-r----- 1 named named  152 Dec 15  2009 named.empty
-rw-r--r-- 1 named named  513 Jun 23 17:28 named.fx
-rw-r----- 1 named named  152 Jun 23 11:58 named.localhost
-rw-r----- 1 named named  168 Dec 15  2009 named.loopback
-rw-r----- 1 named named  271 Jun 23 14:13 named.zx
drwxrwx--- 2 named named    6 Feb 25  2019 slaves

8.重启服务

[root@control ~]# systemctl restart named

9.放行防火墙

[root@control ~]# firewall-cmd --permanent --add-service=dns
success
[root@control ~]# firewall-cmd --reload
success

四、测试dns服务

1.客户端上配置dns服务器指向

[root@node1 ~]# vim /etc/resolv.conf

# Generated by NetworkManager
nameserver 192.168.200.150
domain example.com
search example.com

2.测试A记录解析

[root@node1 ~]# nslookup server0.huaxia.com
Server:     192.168.200.150
Address:    192.168.200.150#53Name: server0.huaxia.com
Address: 192.168.200.150

3.反向解析

[root@node1 ~]# nslookup
> server0.huaxia.com
Server:     192.168.200.150
Address:    192.168.200.150#53Name: server0.huaxia.com
Address: 192.168.200.150
> 172.
Server:     192.168.200.150
Address:    192.168.200.150#53** server can't find 172: NXDOMAIN
> 192.168.200.22
22.200.168.192.in-addr.arpa name = www.huaxia.com.

Linux下的DNS服务器搭建相关推荐

  1. Linux下的DNS服务器的搭建实战

    Linux下的DNS服务器的搭建 DNS(Domain Name Server,域名服务器) 是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器. DNS ...

  2. CentOS下的DNS服务器搭建

    CentOS下的DNS服务器搭建 实验环境:VMware workstation 10         centos 6.4 说明: DNS是计算机域名系统或域名解析服务器(Domain Name S ...

  3. Linux下配置DNS服务器之一--Master服务器

    Linux下配置DNS服务器之一--Master服务器 系统环境: RedHat EL55 Oracle 11g RAC 集群中引入了SCAN(Single Client Access Name)的概 ...

  4. Linux下查看DNS服务器IP地址以及使用host命令查询域名对应的IP地址

    Linux下查看DNS服务器IP地址以及使用host命令查询域名对应的IP地址 Linux使用etc/resolv.conf文件来存放DNS服务器的IP地址,使用cat命令查看. cat /etc/r ...

  5. Linux下的SVN服务器搭建

    鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总结 /******开始****** ...

  6. Linux下NTP时间同步服务器搭建

    NTP介绍 NTP 服务器是用于局域网服务器时间同步使用的,可以保证局域网所有的服 务器与时间服务器的时间保持一致,某些应用对时间实时性要求高的必须统一时 间. 互联网的时间服务器也有很多,例如 nt ...

  7. linux下实现dns服务器,实现Linux操作系统下DNS服务器的搭建

    一 环境的假定 两台机器,一台Linux,机器名为Linux,域名为tongqiang.cnIP地址为192.168.0.5,另一台机器为WIN98,机器名为tongqiang,IP地址从Linux上 ...

  8. 带你轻松配置linux下高速缓存DNS服务器

    1.dns(域名系统)的基础知识 dns的定义 域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务 作为将域名和IP地址相互映射的一个分布式数据库,帮助人们方便的访 ...

  9. linux下实现dns服务器,linux下DNS服务器的实现1

    案例 1 有一个域abc.com,dns 服务器为192.168.6.6,有主机www1.1.1.1, ftp主机,地址为2.2.2.2,mail3.3.3.3,mail的别名为pop3,smtp. ...

最新文章

  1. RealPlayer 15正式发布 简体中文版下载
  2. 算法 求两个自然数的最大公约数 C++
  3. oracle知识汇总
  4. Python-图像的手绘效果
  5. 学习ASP.NET Core Razor 编程系列五——Asp.Net Core Razor新建模板页面
  6. C语言实现链表(附完整源码)
  7. maven的java工程取mysql数据库数据
  8. C++ 线程安全的单例模式
  9. Mysql合并两个sql结果
  10. 如何快速把kux格式转换成mp4
  11. String类基本介绍及常用方法
  12. Redis事务特性分析
  13. Cloudera Manager 安装
  14. PaddleX语义分割
  15. quick框架之MyApp详解
  16. cpp整理学习笔记 文件I/O:随机存取fseek()和ftell()
  17. matlab弹钢琴卡农,【matlab】寂寞的理科生用matlab演奏卡农
  18. 《赢在中国》-创业者学历
  19. oracle like通配符区分大小写
  20. Air780E连接点灯科技-LuatOS

热门文章

  1. 【Alpha阶段】第六次Scrum Meeting
  2. python 安装模块步骤
  3. 如果去掉UITableView上的section的headerView和footerView的悬浮效果
  4. 简化工作流程,10款必备的HTML5开发工具
  5. POJ 2800 垂直直方图 解题报告
  6. 关于类模板怎么用的简单介绍
  7. 量子计算时代快了!量子计算机的架构,硬件,软件等都有成果!
  8. labview如何进行串口通讯
  9. lib(静态库)和dll(动态库)的生成和使用详细说明以及注意事项
  10. HANDLE:句柄的概念