Linux环境下实现简易的DNS域名解析过程
首先我们需要知道一些原理:
dns服务器有主和从,主服务器发生变化,从服务器会自动同步
上网时我们输入的网址,比如说www.EXAMLE.com,其写全应该是www.EXAMPLE.com.,com后有个.,代表着根域,dns结构中一个网址结构是
. |
根域 |
com |
顶级域/一级域 |
EXAMPLE |
二级域 |
www |
主机名 |
如果是www.EXAMLE.com.cn结构,一级域为cn,二级域为com,三级域是EXAMPLE,主机名是www
当用户访问一个之前从未访问的网站时,会去查找本地dns的缓存有没有该域名对应的ip,如果没有,将会从根域查询起。
比如说访问www.baidu.com,其实是访问www.baidu.com.
(1)查询至根域:你知不知道我这个网址的ip呀,根域回复“不知道,不过我知道你的com域在哪,它是我的子域,你去找它吧”(注:这种dns无法将结果交给用户,不过可以将访问推荐到下级dns服务器的查询,称作迭代查询)
(2)查询至com域:你知不知道我这个网址的ip呀,com域回复“不知道,但我知道你的baidu二级域在哪,它是我的子域,你去找它吧”(注:迭代查询)
(3)查询至二级域:你知不知道我这个网址的ip呀,二级域回复“知道呀,来我把它告诉你”(注:这种dns将最终结果交给用户,称作递归查询)
之后dns解析的记录会存放到本地dns服务器,这个本地dns服务器我们可以理解为小区的网络运营商dns服务器,再有其它主机访问该网址,就可以直接去访问该ip
知道这个概念,我们便画逻辑图,构建dns结构
1、画出逻辑结构图
本人实验时候主机分配计划和ip
centos7 test:客户机,ip 192.168.239.70
centos7-1:本地dns主服务器,ip 192.168.239.71
centos7-3:二级域主服务器,ip 192.168.239.73
centos6 test:二级域从服务器,ip 192.168.239.60
centos6-1:一级域服务器,ip 192.168.239.61
centos6-2:根域服务器,ip 192.168.239.62
centos:目标网站,ip 192.168.239.200
实际实验中将以.tech作为一级域名测试
实验中可能会用到的检查指令:
主配置文件语法检查:named-checkconf
解析库文件语法检查:named-checkzone "chenux.tech" /var/named/chenux.tech.zone
rndc status|reload ;service named reload
2、给计划作为dns服务器的主机安装bind,dns的服务名为named.service
3、目标网址安装httpd服务,建立/var/www/html/index.html,写入内容
4、为保险起见,我们一步一步按照图从下向上实现,首先从二级域开始配置
翻页至最下方,可以看到一路径
编辑该文件,内容可以按照下面的格式写入
进入/var/named目录,编辑chenux.tech.zone主区域
建立好后,需要注意一点
重启服务,systemctl restart named,测试结果
5、配置二级域从服务器
配置和主服务器稍有不同,下图标有两处不同
第一处:/etc/named.conf
第二处:/etc/named.rfc1912.zones
更改完后重启服务,/var/named/slaves目录下会自动生成*.zone
测试
6、搭建一级域dns
/etc/named.conf文件不变
/etc/named.rfc1912.zone
主区域文件改名为/var/named/tech.zone
重启后测试
此时如果成功,将二级域DNS主服务器网络断开,清除一级域dns服务器缓存,rndc flush,测试机dig www.chenux.tech @192.168.239.60(二级域DNS从服务器)依旧正常
7、搭建根域dns服务器
vim /etc/named.conf,最下方有一个zone ".",将它们全部注释
vim /etc/named.rfc1912.zones
vim /var/named/root.zone
重启服务,测试正常
8、建立本地dns服务器
vim /etc/named.conf 两个选项注释,并且将这两项改为no,否则无法进行dns转发
vim /var/named/named.ca
重启服务
9、更改测试机192.168.239.70的网卡信息,重启服务后查看dns已经变化
此时dig网址www.chenux.tech便已经成功
curl www.chenunx.tech的结果
总结:dns修改/etc/named.conf(注释两条,有从服务器allow-trasfer {允许连接的主机ip})
/etc/named.rft1912.zone,zone "*.com" {
type master/slave;
file "*.com.zone";或者file "slaves/*.com.zone"};
新建/var/named/*.zone,(从服务器会自动生成)
$TTL 86400
@ IN SOA dnsserver admin (版本 1D 1H 1W 3H )
NS dnsserver
NS dnsserver2 子域 NS dnsserver2
dnsserver A 本机ip
dnsserver2 A 子域ip
转载于:https://blog.51cto.com/13873498/2286294
Linux环境下实现简易的DNS域名解析过程相关推荐
- 超详细:实现过程-Linux 环境下的简易聊天室,采用CS模型,实现多客户端之间的稳定数据传输。--注册和登录(但之后会连续更新内容,直至全部实现)
前言 在学完不够全面的Linux操作系统编程后(这也意味着我后期也要不断学习,这也符合我活到老学到老的人生观点),需要以一些项目来检测自己的所学,毕竟实践见真章. 所以在今后的几天里,我将以无界面聊天 ...
- 2021.10.02超详细实现过程-Linux 环境下的简易聊天室,采用CS模型,实现多客户端之间的稳定数据传输。(添加好友,删除好友、屏蔽好友、查看好友列表(针对数据库的操作))
这次主要对加好友.删除好友.屏蔽好友.查看好友列表功能(单纯的基于数据库操作),并且也对之前的代码做了部分的改动,为中间涉及全局变量问题. 对之前的改动(主要): 其中对结构体进行了改动和结构体全局变 ...
- linux 环境下安装oracle11g方法及安装过程中遇上的问题解决方法
Oralce安装教程 1.先安装需要的依赖包 找到哪个没有安装,直接yum install XX,直到所有的都安装完成.注意,可能一个包安装了,再次执行检查,还是提示没有安装,那么就不需要管他们了, ...
- Linux 环境下安装 GitLab 与配置
什么是 GitLab? GitLab 是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的 web 服务. GitLab的功能特点 提供了管理,计划,创建,验证,打 ...
- Linux环境下的网络编程
本文介绍了在Linux环境下的socket编程常用函数用法及socket编程的一般规则和客户/服务器模型的编程应注意的事项和常遇问题的解决方法,并举了具体代 码实例.要理解本文所谈的技术问题需要读者 ...
- Linux环境下查看IP不显示IPv4地址
Linux环境下查看IP不显示IPv4地址 问题 解决方法 额外方法 后续 问题 这篇文章记录一下,当我在虚拟机下运行Ubuntu时,想在我的windows下通过putty连接到Linux系统,但发现 ...
- Linux环境下查看网络性能的基本命令
Linux环境下查看网络性能的基本命令 由于Linux经常使用的是字符界面,而且Linux的功能比较强大,具有默认路由功能,相当于网关和路由器.在网络性能方面也比较稳 ...
- 【OS】Linux环境下配置固定IP地址--静态IP地址(不能上外网问题)
[OS]Linux环境下配置固定IP地址--静态IP地址(不能上外网问题) ---red hat重启网卡 service network restart /etc/rc.d/init.d/networ ...
- linux svn更换数据仓库,Linux环境下SVN数据仓库迁移
上一篇文章介绍了Windows环境下SVN数据的备份与还原,这篇文章介绍下Linux环境下数据迁移. 一准备工作 1安装环境 1 centOS7 2可上网 2软件需求 1 winSCP 2 PuTTy ...
- LINUX环境下资源下载中文目录及中文文件名称问题
为什么80%的码农都做不了架构师?>>> http://www.yeeach.com/2009/04/09/linux%E7%8E%AF%E5%A2%83%E4%B8%8B%E ...
最新文章
- 开源游戏机java模拟器_最棒的 7 款开源终端模拟器
- Class.forName解析以及使用
- Android短信验证
- SpringBoot 项目模板:摆脱步步搭建
- c语言,如何产生随机数
- codepage IMLangCodePages
- matlab图像隐写,matlab软件图像处理相关内容.ppt
- 进程和线程的联系和区别
- 20191226_1_淘宝口红商品分析
- 顺序锁(seqlock)
- 在endnote中制作GB/T7714《文后参考文献著录规则》的输出格式 及 编辑Output Styles中特殊符号说明
- 狐狸找兔子 ← C语言实现
- 几个名词解释 TBB VPP KKK
- Layer 开启与关闭加载层
- android 文本倒影,Android 生成倒影图片
- 不小心删除了华为手机备忘录里的内容如何恢复?
- 贾扬清担任阿里开源技术委员会负责人,开源升级为阿里技术战略之一
- Java异常处理最佳实践及陷阱防范
- 《千与千寻》高清下载
- Python第一阶段学习 day14
热门文章
- 【转】高性能服务器架构(High-Performance Server Architecture)
- Windows7 64位系统搭建Cocos2d-x 2.2.1最新版以及Android交叉编译环境(具体教程)
- 使用IdleTest进行TDD单元测试驱动开发演练(3) 之 ASP.NET MVC
- 请教高手,如何取得Target属性
- 关于智能制造的思考——以中航工业为例
- 编程语言(C语言,JAVA),程序设计,APP开发,算法
- AOJ-776 马的走法 动态规划
- 智能优化算法应用:基于麻雀搜索算法与双伽马校正的图像自适应增强算法 - 附代码
- 智能优化算法:鲸鱼优化算法-附代码
- 交叉验证与训练集、验证集、测试集