centos搭建dns服务
原文:(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服务的更多相关文章
- 如何搭建DNS服务
继NTP时间服务器后,继续搭建DNS服务,鉴于昨晚撰写时间超过预期,这次改变策略,先把自己需要用到的部分写出来(主要是基于RAC的搭建,只涉及正向和反向DNS解析),后面再添加必要的说明和阐述. 试验 ...
- 如何搭建DNS服务(转)
继NTP时间服务器后,继续搭建DNS服务,鉴于昨晚撰写时间超过预期,这次改变策略,先把自己需要用到的部分写出来(主要是基于RAC的搭建,只涉及正向和反向DNS解析),后面再添加必要的说明和阐述. 试验 ...
- 搭建DNS服务
author:JevonWei 版权声明:原创作品 修改/var/named/下的数据库文件的数据时,需手动修改serial序列号 UDP协议53端口用于用户DNS查询,TCP协议53端口用于主从DN ...
- 使用unbound在RHEL7上搭建DNS服务
1.概念:DNS (Domain Name Server)域名解析服务,使用TCP&UDP的53号端口(主从DNS之间用TCP,客户端查询使用UDP).它可以完成域名与IP地址的互换,可以通过 ...
- 一文详解CentOS6.5搭建DNS服务
本文详细介绍DNS服务在Linux Operation System 中的搭建过程 一.DNS服务器的工作原理 客户机提出域名解析请求,并将该请求发送给本地的域名服务器.当本地的域名服务器收到请求后, ...
- centos 搭建 git 服务端和客户端
centos 搭建git需要设置远程服务端和客户端.远程代码存放在服务端,多个客户端可以共享和维护服务端代码. 一.服务端主机 1.创建ssh,大部分默认已经安装,有ssh就跳过 yum instal ...
- Centos 搭建DNS服务器
1:安装DNS服务 yum install bind -y 2:修改/etc/named.conf 配置文件 listen-on port 53 { any; }; listen-on-v6 port ...
- Windows server 2008 搭建DNS服务
现在用Windows搭建DNS的已经很少了,感觉也只有一些公司的某块部分能用上,最近在捣鼓这个,索性直接写下来,以后可以看了直接用. 开始: ★★★配置静态IP地址 老样子,有关服务器功能的建立,都是 ...
- centos搭建dns服务器
前言:搭建dns服务器,dns服务器我就不多说什么了,大家都懂,就是域名解析,就将ip装换为域名,域名就可以理解为类似这样的www.baidu.com网址,接下来我就直接上图了.这里面最重要的是修改u ...
随机推荐
- Centos定时备份 MySQL数据库
一.编写数据库备份脚本 backupmysql.sh #!/bin/bash # Name:bakmysql.sh # This is a ShellScript For Auto DB Backup ...
- PHP SPL标准库-迭代器
通过某种统一的方式遍历链表或者数组中的元素的过程叫做迭代遍历,这种统一的遍历工具我们叫做迭代器. PHP中迭代器是通过Iterator 接口定义的. ArrayIterator迭代器 foreach ...
- win10下使用命令行安装配置appium环境
安装列表 安卓sdk目录,即ANDROID_HOME设置 关于sdk的安装配置此处略,参考之前文章<Appium+Java(一) Windows环境搭建篇> node运行环境 appium ...
- 12 个设计 API 的安全建议,不要等出事儿了“捶胸顿足”
原文地址:API Security Best Practices 原文作者:Mark Michon 译者 & 校正:HelloGitHub-小鱼干 & HelloGitHub-鸭鸭 虽 ...
- margin 重叠问题深入探究
margin 重叠问题 Margin Collapse 块的上外边距(margin-top)和下外边距(margin-bottom)有时合并(重叠)为单个边距,其大小为单个边距的最大值(或如果它们相等 ...
- python爬虫中的requests模块
Requests: 让 HTTP 服务人类 一.简介 虽然Python的标准库中 urllib 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests ...
- Js模块化开发的理解
Js模块化开发的理解 模块化是一个语言发展的必经之路,其能够帮助开发者拆分和组织代码,随着前端技术的发展,前端编写的代码量也越来越大,就需要对代码有很好的管理,而模块化能够帮助开发者解决命名冲突.管理 ...
- [Luogu P1066] 2^k进制数 (组合数或DP)
题面 传送门:https://www.luogu.org/problemnew/show/P1066 Solution 这是一道神奇的题目,我们有两种方法来处理这个问题,一种是DP,一种是组合数. 这 ...
- ThinkPHP中,运用PHPExcel,将数据库导出到Excel中
1.将PHPExcel插件放在项目中,本人位置是ThinkPHP文件夹下,目录结构如下/ThinkPHP/Library//Vendor/...2.直接根据模型,配置三个变量即可使用./** * Ex ...
- logback日志打印sql
今天整合springboot2 + mybatis + logback 遇到了在日志中sql打印不出来的坑,在网上找了好久,都不是我遇到的问题,这里吐槽一下下现在的博客质量,好多都是抄袭的,也没有标注 ...