原文:(https://www.myjinji.top/articles/2020/04/02/1585800289945.html)[https://www.myjinji.top/articles/2020/04/02/1585800289945.html]

简介

由于dns服务的运行过程网络上有很多,随便搜搜就能找到dns的工作流程,在这里就不多做赘述了,主要是讲怎么配置

使用Centos搭建dns服务需要使用bind服务,所以我们需要先使用yum安装bind

系统

主机 IP地址
Centos7(Server) 192.168.31.148
Ubuntu(Client) 192.168.31.234

配置

yum install -y bind //安装bind服务

如果安装失败可能是因为yum源的原因,可以试试更换yum源为国内源,配置文件在/etc/yum.repos.d/下

bind服务会产生一些文件 /etc/named.conf /etc/named.rfc1912.zones 这两个文件是dns的配置文件

options {
listen-on port 53 { localhost; }; // 监听本地端口53 localhost代表本地所有IP地址
directory "/var/named"; // 域名解析配置文件地址
allow-query { localhost; any; }; // 允许查询地址 为了方便设置为any,可以设置单个IP使用分号;分割 recursion yes; // 客户机是否可以查询其他DNS服务器 我觉得最好写yes dnssec-enable no; // 是否支持dnssec
dnssec-validation no; // 是否进行dnssec确认开关
};
// 在此配置文件中 zone 代表一个域区
zone "." IN { // 根域
type hint;
// master:表示定义的是主域名服务器
// slave :表示定义的是辅助域名服务器
// hint:表示是互联网中根域名服务器
file "named.ca";
};
include "/etc/named.rfc1912.zones"; // 域配置文件

有一些配置因为并没有什么改动或者是不需要详细说明的就没有展示出来,不要认为这就是named.conf文件的全部了,也不要去删除这里没有的语句,保持原样就好

我们在 /etc/named.rfc1912.zones 里配置域区

正向解析

通过域名解析到IP地址

IP --> FQDN

在named.rfc1912.zones里添加下面的配置完成域区配置

zone "myjinji.top" IN {  // 声明myjinji.top域
type master; // 主域名服务器
file "myjinji.top.zone"; // 域配置文件
};

因为 named.conf include的原因,其实在named.conf里配置域区也是可以的,但是推荐在专门的文件里配置,这样显得更规范

那么域区已经声明完毕了,光声明不行,我们还得告诉客户端,如果你想访问 myjinji.top 就去找哪个IP

在上面的 named.conf 里,我们设置了域解析文件目录在 /var/named/下,所以我们需要进入这个文件夹内,配置我们的域解析文件

cd /var/named/
cp -p named.localhost myjinji.top.zone

因为我个人比较懒,不想重头开始写,于是就拷贝一份默认的配置文件然后进行修改,注意后面的文件名一定要和前面声明域区时的文件 保持一致 不然会导致无法解析,因为bind不知道myjnji.top的域解析文件在哪

myjinji.top.zone 文件是这样的 ↓

$TTL 1D  // 生命缓存一天 全局继承
// 在zone文件中注释是以 “;”开始的
// SOA为起始授权记录
// 第一个@表示当前域myjinji.top
// 第二个@表示dns服务器 rname.invalid.为邮箱服务器 注意主机名后面必须有.
@ IN SOA @ rname.invalid. (
0 ; serial // 序列号
1D ; refresh // 刷新时间
1H ; retry // 重试时间
1W ; expire // 过期时间
3H ) ; minimum // 否定答案的TTL值
// 一条完整的语句应该是 @ 时间 IN NS @这样的 因为zone文件的规则是,上一句写了后面的就可以不写,继承上一句的属性
// DNS解析服务器
NS @
A 127.0.0.1 // A记录
AAAA ::1 // IPv6

我们需要修改一下 myjinji.top.zone 使它满足我们的需求


$TTL 1D
@ IN SOA ns.myjinji.top. rname.invalid. ( // dns解析服务器就是我们自己
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns // 承接上面的ns
@ A 192.168.31.148 // 将当前域解析到192.168.31.148 也就是myjinji.top
www A 192.168.31.148 // 其实这是一种简写 应该是这样的www.myjinji.top.
ns A 192.168.31.148 // 定义 NS ns
demo CNAME www // CNAME别名 在解析demo时转发到www上

就这样正向解析就完成了,我们需要使用两个命令检查我们的配置是否有误

测试

named-checkzone myjinji.top /var/named/myjinji.top.zone  // 检查与myjinji.top对应的域解析文件

named-checkconf  // 检查配置文件

如果都没有问题的话我们就可以重启服务验证是否正确了

换到客户端Ubuntu上,注意一定要配置dns服务器为本地服务器,否则会解析不到我们的测试地址 修改/etc/resolv.conf nameserver 为192.168.31.148

使用nslookup命令解析myjinji.top

反向解析

通过IP解析到域名

FQDN --> IP

还是在/etc/named.rfc1912.zones里配置我们的反向域配置

// 格式为IP地址.in-addr.arpa 注意IP地址一定要反着写
// 比如 我的IP地址是192.168.31.148/24 所以格式就应该是 31.168.192.in-addr.arpa
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
添加一个
zone "31.168.192.in-addr.arpa" IN {
type master;
file "192.168.31.zone";
};

接着在/var/named/文件夹下复制named.loopback

// 注意这个文件也得和named.rfc1912.zones里声明的文件名一致
cp -p /var/named/named.loopback /var/named/192.168.31.zone

于是复制好的192.168.31.zone文件内容应该是这样的:

$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
PTR localhost. // PTR反向解析 修改为: $TTL 1D
@ IN SOA ns.myjinji.top. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.myjinji.top. // 注意后面都需要 .
148 PTR ns.myjinji.top. // 192.168.31.148 解析了ns.myjinji.top.
148 PTR www.myjinji.top. // 192.168.31.148 解析了www.myjinji.top.
148 PTR demo.myjinji.top. // 192.168.31.148 解析了demo.myjinji.top.

测试

named-checkzone "31.168.192.in-addr.arpa" 192.168.31.zone

总结

自己学习的时候网上的教程五花八门,配置起来很麻烦,于是我自己琢磨了一天才搞明白这个服务到底是怎么运转的

在学习的时候遇到了很多问题,比如zone文件的编写 SOA NS A 这些都挺奇怪的,还有@所代表的含义,配置好几次都不成功,气的我想捶桌子(;´д`)ゞ 不过还好,我静下心来仔细琢磨,终于成功了。

所以说学技术的时候一定不能急躁

个人笔记,不喜勿喷(`・ω・´)

centos搭建dns服务的更多相关文章

  1. 如何搭建DNS服务

    继NTP时间服务器后,继续搭建DNS服务,鉴于昨晚撰写时间超过预期,这次改变策略,先把自己需要用到的部分写出来(主要是基于RAC的搭建,只涉及正向和反向DNS解析),后面再添加必要的说明和阐述. 试验 ...

  2. 如何搭建DNS服务(转)

    继NTP时间服务器后,继续搭建DNS服务,鉴于昨晚撰写时间超过预期,这次改变策略,先把自己需要用到的部分写出来(主要是基于RAC的搭建,只涉及正向和反向DNS解析),后面再添加必要的说明和阐述. 试验 ...

  3. 搭建DNS服务

    author:JevonWei 版权声明:原创作品 修改/var/named/下的数据库文件的数据时,需手动修改serial序列号 UDP协议53端口用于用户DNS查询,TCP协议53端口用于主从DN ...

  4. 使用unbound在RHEL7上搭建DNS服务

    1.概念:DNS (Domain Name Server)域名解析服务,使用TCP&UDP的53号端口(主从DNS之间用TCP,客户端查询使用UDP).它可以完成域名与IP地址的互换,可以通过 ...

  5. 一文详解CentOS6.5搭建DNS服务

    本文详细介绍DNS服务在Linux Operation System 中的搭建过程 一.DNS服务器的工作原理 客户机提出域名解析请求,并将该请求发送给本地的域名服务器.当本地的域名服务器收到请求后, ...

  6. centos 搭建 git 服务端和客户端

    centos 搭建git需要设置远程服务端和客户端.远程代码存放在服务端,多个客户端可以共享和维护服务端代码. 一.服务端主机 1.创建ssh,大部分默认已经安装,有ssh就跳过 yum instal ...

  7. Centos 搭建DNS服务器

    1:安装DNS服务 yum install bind -y 2:修改/etc/named.conf 配置文件 listen-on port 53 { any; }; listen-on-v6 port ...

  8. Windows server 2008 搭建DNS服务

    现在用Windows搭建DNS的已经很少了,感觉也只有一些公司的某块部分能用上,最近在捣鼓这个,索性直接写下来,以后可以看了直接用. 开始: ★★★配置静态IP地址 老样子,有关服务器功能的建立,都是 ...

  9. centos搭建dns服务器

    前言:搭建dns服务器,dns服务器我就不多说什么了,大家都懂,就是域名解析,就将ip装换为域名,域名就可以理解为类似这样的www.baidu.com网址,接下来我就直接上图了.这里面最重要的是修改u ...

随机推荐

  1. 教你怎么写jQuery的插件

    jQuery(以下简称JQ)是一个功能强大而又小巧的JS框架,现在很多网站都在使用JQ,本站也不例外.本文教大家如何写一个属于你自己的JQ插件. 本JQ插件例子是在你网站的文章结尾处添加你的版权. J ...

  2. Flink + 强化学习 搭建实时推荐系统

    如今的推荐系统,对于实时性的要求越来越高,实时推荐的流程大致可以概括为这样: 推荐系统对于用户的请求产生推荐,用户对推荐结果作出反馈 (购买/点击/离开等等),推荐系统再根据用户反馈作出新的推荐.这个 ...

  3. Python之tuple元组详解

    元组:有序,一级元素不可以修改.不能被增加或删除(元组是可迭代对象) 一般写法括号内最后面加个英文逗号用来区分: test  =  (,) test1 = (11,22,) 例: test = (12 ...

  4. 如何使用FastCGI处理自定义HTTP头

    对于如何使用FastCGI处理自定义HTTP头这里记录一下注意事项: 在FastCGI中,自定义头可以从环境变量获得: 获取时名字前面要加HTTP_,字母要全部大写: 发送头不能有下划线_,否则该字段 ...

  5. vue watch的用法

    1.监听对象需要深度监听 ,如下代码可以监听整个msg对象的变化 watch: { msg: { handler(newValue, oldValue) { console.log(newValue) ...

  6. 《SQL 必知必会》读书笔记

    第1课 了解 SQL 这章主要介绍了数据库,表,字段类型,行,列,主键和SQL等基本概念. 数据库:以某种形式存储的数据集合,在计算机上的表现形式可能是一个文件或者一组文件.我们平时所说的数据库,往往 ...

  7. python的各种库的用法

    scipy.io 用于输入和输出数据的操作,可操作matlab的.mat文件. (1)加载.mat文件的数据 import scipy.io as sci data_dir = sci.loadmat ...

  8. OpenCV412+contrib+CUDA+cuDNN

    首先现在好软件(包含源码和官方编译好的库)和contrib源码包(对应版本怎么下载????) 软件: contirb包: 1.先把软件解压,在目录新建mybuild文件夹,用于输出保存自定义VS工程 ...

  9. C2. Balanced Removals (Harder) (幾何、思維)

    Codeforce 1237C2 Balanced Removals (Harder) (幾何.思維) 今天我們來看看CF1237C2 題目連結 題目 給你偶數個三維座標點,每次選其中兩點,如果兩點為 ...

  10. Luogu P4271 [USACO18FEB]New Barns P

    题意 给一个一开始没有点的图,有 \(q\) 次操作,每次为加点连边或者查询一个点到连通块内所有点的距离最大值. \(\texttt{Data Range}:1\leq q\leq 10^5\) 题解 ...