DNS(Domain Name System)解析:

  • DNS解析的过程:

如果在浏览器中输入了www.baidu.com,DNS会如何解析这个地址?

之前的www中说到,DNS解析会先查询缓存,再没有缓存的情况下会去请求域名服务器。

而DNS的解析又分为递归查询和迭代查询两个方式:

  • 递归查询
  1. 首先查询浏览器的DNS缓存,如果缓存中存在则直接返回地址
  2. 如何浏览器缓存中没有,会去查询操作系统中的配置文件host(主机名和ip映射)
  3. 如果host中没有,则会查找操作系统的DNS缓存
  4. 如果操作系统的DNS缓存没有,则去查询本地域名服务器
  • 迭代查询
  1. 如果本地域名服务器中没有,则本地域名服务器会去请求根域名服务器
  2. 通过www.baidu.com. ,根域名服务器是可以判断出来是.com这个顶级域名, 会告诉本地域名服务器,去找.com顶级域名服务器
  3. 本地域名服务器请求.com顶级服务器,顶级域名服务器判断出来他是属于baidu二级域名服务器,告诉本地域名服务器,去找www三级域名服务器
  4. 本地域名服务器去请求www三级域名服务器, 三级域名服务器如果有ip去告诉它,如果没有,告诉它找不到

根域名服务器的查询规则:顶级域名--->二级域名--->三级域名 ... ...

DNS解析方式:

  • 正向解析: FQDN-> IP ,将域名到ip解析
  • 反选解析: IP -> FQDN ,将ip到域名的解析

权威域名服务器与非权威域名服务器:

权威域名服务器:存储并提供某区域(整个DNS域或DNS域的一部分)的实际数据

权威名称服务器的类型包括:

  • Master:包含原始区域数据,有时称作“主要服务器”
  • Slave:备份服务器,通过区域传送从Master服务器获得的区域数据的副本。有时称作“次要”名称服务器

非权威域名服务器:客户端通过其查找来自权威名称服务器的数据。

非权威域名服务器仅用于查找,对于非重要数据之外的任何内容都不具有权威性

Linux上DNS的配置过程:

  • DNS的配置文件

//DNS的主要配置文件(配置zone)
/var/named/chroot/etc/named.conf//DNS的主要执行文件(zone的内容)
/var/named/chroot/var/named/XXX
  • DNS主配置文件划分zone

  • 正向解析的zone划分

zone的划分有三种类型:hint,master,slave

  • hint一般用于根域
  • master: 一般用于主域名服务器
  • slave: 一般用于从域名服务器

(一般配置了slave则需要有master的配置项)

  • 反向解析的zone划分

zone "XXX.XXX.XXX.XXX.in-addr.arpa" 网段的写法, .in-addr.arpa固定的格式

前面的地址为解析后的网段地址(反写)eg:200.220.168.192

[root@localhost ~]# cat /var/named/chroot/etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
//这个是监听端口和允许的网段,我使用的是ipv4,所以注吊ipv6,在最后的allow-query设置为any,允许其他设备查询
//注意,在DNS的配置时,断行需要用";"
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; };/* - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.- If you are building a RECURSIVE (caching) DNS server, you need to enable recursion. - If your recursive DNS server has a public IP address, you MUST enable access control to limit queries to your legitimate users. Failing to do so willcause your server to become part of large scale DNS amplification attacks. Implementing BCP38 within your network would greatlyreduce such attack surface */recursion yes;#dnssec-enable yes;#dnssec-validation yes;#managed-keys-directory "/var/named/dynamic";pid-file "/run/named/named.pid";#session-keyfile "/run/named/session.key";/* https://fedoraproject.org/wiki/Changes/CryptoPolicy */#include "/etc/crypto-policies/back-ends/bind.config";
};
//这里是主配置文件,在这里配置文件zone,然后在/var/named/chroot/调用对应文件logging {channel default_debug {file "data/named.run";severity dynamic;};
};zone "." IN {type hint;file "named.ca";
};//正向解析,我这里配置的是openlab的zone空间
//格式: type有三个类型(hint,master,salve)
//file是划分的空间!!!需要注意以";"结尾!!!
zone "openlab.com" IN  {type master ;file "open.zone";
};//反向解析, in-addr.arpa为固定格式,  ip地址反写
//file后面为区域数据文件
zone "1.0.0.127.in-addr.arpa"{type master;file test.zone;
}#include "/etc/named.rfc1912.zones";
#include "/etc/named.root.key";
  • DNS的主配置文件

//模板在/var/named/named.localhost
[root@localhost ~]# cat /var/named/named.localhost
$TTL 1D
@  IN SOA  @ rname.invalid. (        0    ; serial1D  ; refresh1H ; retry1W   ; expire3H )    ; minimumNS @A 127.0.0.1AAAA   ::1//$TTL 1D  表示存活时间(1D表示一天)
//第一个@表示zone即表示为主配置的调用zone
//IN表示域名 SOA代表资源记录的名称为起始授权记录
//第二个@表示管理员的Email   如:lxb.163.com.
//!!!由于@在配置中有特殊含义,所以用"."代替,而且此时要com后写上.如:lxb.163.com.
//serial表示序列号(越大越好,当更新了数据库会更新这个序列号,使之+1)
//refresh表示更新时间(定义slave多久向Master要求数据更新)
//retry表示失败重新尝试时间(如果Slave无法对Master实现连接,那么在这个时间内,会一直尝试连接)
//expire表示失效时间(如果一直尝试失败,持续连接到达这个设置值时限,那么Slave将不再继续尝试连接)
//minimum表示缓存时间(如果没有写TTL默认会以这个时间为准)
//NS表示管理这个域的服务器主机名为@(这个@表示之前写的主机名)
//A表示正向解析,后面跟着ipv4的地址
//AAAA表示正向解析,但是后面跟着ipv6的地址
//PTR表示反向解析,后面记录的数据就是反解到的主机名
web IN CNAME www
//CNAME表示别名记录(如果web.XXX.com 等同于www.XXX.com)IN  MX  10 mail.example.com.
//MX表示邮件服务器地址,给mail.example.com服务器设置优先级为10

Linux上搭建DNS服务器(正向解析):

  • Linux上下载DNS源

//DNS下载(由于DNS源太多,只是下载了DNS的chroot)
[root@localhost ~]# yum install bind bind-chroot bind-utils bind-libs -y
  • 在yum下载了DNS服务器之后,会产生多个配置文件:

//配置目录:(需要拷贝到chroot下)
/etc/named.conf//工作目录:
/var/named/chroot/var/named///!!!根解析库
/var/named/named.ca
  • 由于只是下载的DNS的chroot的模板,使用需要拷贝一些文件:

//将/etc/named.conf拷贝到/var/named/chroot/etc内
[root@localhost ~]# cp /etc/named.conf   /var/named/chroot/etc///将/var/named/named.ca拷贝到/var/named/chroot/var/named内
[root@localhost ~]# cp /var/named/named.ca  /var/named/chroot/var/named
  • 配置DNS服务器(设置zone和zone的配置)

//在/var/named/chroot/etc/named.conf下配置
[root@localhost named]# vim  /var/named/chroot/etc/named.conf
zone "new.com" IN  {type master ;file "open.zone";
};
//配置的空间为new.com,对于的主调用文件为open.zone,并设置为主网络//在/var/named/chroot/var/named/open.zone 进行open.zone文件的配置
[root@localhost ~]# vim /var/named/chroot/var/named/open.zone
@  IN  SOA  dns1.new.com. 1420284530.qq.com. (101D1H1W3H )IN   NS dns1.new.com.IN   NS dns2.new.com.IN   MX  10  mail.new.com.
dns1    IN   A  192.168.220.100
dns2    IN   A  192.168.220.101
ftp.new.com.  IN   A  192.168.220.102
ntp     IN   A  192.168.220.103
www.new.com.  IN   A  192.168.220.104
dhcp    IN   A  192.168.220.105
web     IN   CNAME  www
mail    IN   A     192.168.220.200//第一行:@表示new.zone  IN  SOA 为固定格式  dns1.new.com.为域的权威服务器 后面的地址为邮箱
//!!!对于域的权威服务器和邮箱的地址需要有"."
//第二行到第五行为一些配置信息
//第七行为域的权威服务器
//第八行为域的次权威服务器
//第九行为dns1的地址
//第十行为dns2的地址
//第十一行为MX设置new的邮箱服务器优先级为10
//第十二行为到第十五行都是一些配置(可以主要配置DNS的内容)
//第十六行为设置CNAME的别名(web.new.com等同于www.new.com)
//最后一行为mail邮箱地址配置
//!!!A表示为ipv4的正向解析
//!!!注意这边的地址可以缩写,dns会自动补齐
  • 设置DNS读取目录

//创建一个data文件夹在/var/named下,主要是给named.run设置一个存放文件
[root@localhost named]# mkdir data
//给data设置权限,使得named可以进行修改
//设置named为属组
[root@localhost named]# chown .named data
//给予named写执行权限(775)
[root@localhost named]# chmod 775 data
  • 设置区域数据文件

//我们给new.zone设置的地址为192.168.220.XXX网段
//此时设置为192.168.220.2 的DNS地址
[root@localhost ~]# vim /etc/resolv.conf # Generated by NetworkManager
nameserver 192.168.220.2
nameserver 8.8.8.8
nameserver 114.114.114.114
  • 重启服务,查看日志报错

//打开日志
[root@localhost named]# tail -f 200 /var/log/messages
//重启服务
[root@localhost named]# systemctl stop firewalld
[root@localhost conf.d]# getenforce
[root@localhost named]# systemctl restart named-chroot
  • 调试

[root@localhost named]# nslookup dns1.new.com
Server:     192.168.220.132
Address:    192.168.220.132#53Name: dns1.new.com
Address: 192.168.220.100//测试还有host,server等

Linux上搭建DNS服务器(反向解析):

  • 主配置文件zone和zone的配置:

//配置zone文件:
[root@localhost etc]# cat named.conf
zone "220.168.192.in-addr.arpa" IN {type master ;file "name.192.168.220";
};//配置主调用文件zone:
[root@localhost named]# vim name.192.168.220
@  IN  SOA  dns1.new.com. lianxi.163.com. (101D1H1W3H )IN   NS   dns1.new.com.IN   NS   dns2.new.com.
220     IN   PTR  dns1.new.com.
230     IN   PTR  ntp.new.com.
221     IN   PTR  dns2.new.com.
222     IN   PTR  www.new.com.
223     IN   PTR  dhcp.new.com.
224     IN   PTR  mail.new.com.
225     IN   PTR  ftp.new.com.//反向DNS只有PTR设置
  • 设置区域数据文件

//我们给new.zone设置的地址为192.168.220.XXX网段
//此时设置为192.168.220.2 的DNS地址
[root@localhost ~]# vim /etc/resolv.conf # Generated by NetworkManager
nameserver 192.168.220.2
nameserver 8.8.8.8
nameserver 114.114.114.114
  • 重启服务并调试:

//重启服务
[root@localhost named]# systemctl restart named-chroot//开启日志
[root@localhost chroot]# tail -f 200  /var/log/messages//测试ip --->  网址
//192.168.220.221   --- > dns2
[root@localhost chroot]# host 192.168.220.221
221.220.168.192.in-addr.arpa domain name pointer dns2.new.com.//192.168.220.220   --- >  dns1
[root@localhost chroot]# nslookup 192.168.220.220
220.220.168.192.in-addr.arpa    name = dns1.new.com.

Linux上搭建DNS服务器(主从服务端):

  • 主服务器的配置文件,视图zone和视图zone的配置:

//设置允许的从服务器访问
allow-transfer  {192.168.220.100; };//设置主服务器的zone区域
zone "new.com" IN  {type master ;file "new.zone";
};zone "220.168.192.in-addr.arpa" IN {type master ;file "192.168.220.zone";
};//配置正向解析的new.zone(需要设置从服务器的访问权限)
[root@localhost ~]# cat /var/named/chroot/var/named/new.zone
$TTL 1D
@   IN   SOA  dns1.new.com. lianxi.163.com (101D1H1W3H )IN  NS  dns1.new.com.IN  NS  dns2.new.com.IN  NS  slave.new.com.IN  MX 10  mail.new.com.
dns1    IN  A  192.168.220.120
dns2    IN  A  192.168.220.101
ftp     IN  A  192.168.220.102
ntp     IN  A  192.168.220.103
dhcp    IN  A  192.168.220.104
web     IN  CNAME  www
mail    IN  A  192.168.220.110
www     IN  A  192.168.220.111
slave   IN  A  192.168.220.100//配置主服务器的反向解析空间zone
[root@localhost ~]# cat /var/named/chroot/var/named/192.168.220.zone
$TTL 1D
@   IN   SOA  dns1.new.com. lianxi.163.com (101D1H1W3H )IN  NS  dns1.new.com.IN  NS  dns2.new.com.
200 IN  PTR dns1.new.com.
201 IN  PTR dns2.new.com.
202 IN  PTR ntp.new.com.
220 IN  PTR www.new.com.
204 IN  PTR dhcp.new.com.
205 IN  PTR mail.new.com.
206 IN  PTR ftp.new.com.
  • 从服务器的配置文件:

//配置从服务器
zone "new.com" IN  {type slave ;file "slaves/new.zone";masters {192.168.220.138 ;};
};zone "220.168.192.in-addr.arpa" IN {type slave ;file "slave/192.168.220.zone";masters {192.169.220.138 ;};
};//从服务器需要从主服务器更新数据
  • 重启并调试:

//重启服务(先开启主服务器,再开启从服务器)
[root@localhost named]# systemctl restart named-chroot//开启日志(主从打开,方便查看问题)
[root@localhost chroot]# tail -f 200  /var/log/messages//测试

Linux上搭建DNS服务器(DNS视图):

  • 主配置文件视图zone和视图zone的配置:

//配置/var/named/chroot/etc/named.conf
view "view1"{match-clients {192.168.220.132;};recursion yes ;zone "." IN {type hint ;file "named.ca";};zone"view1.com" IN {type master ;file "view1.zone";};
};view "view2"{match-clients {192.168.220.142;};recursion yes ;zone "." IN {type hint ;file "named.ca";};zone"view2.com" IN {type master ;file "view2.zone";};
};//配置/var/named/chroot/var/下的视图zone[root@localhost named]# vim new1.zone $TTL 1D
@   IN   SOA  dnn1.new1.com. lianxi.163.com (101D1H1W3H )IN NS  dns1.new1.com.
dns1    IN  A  192.168.220.100
www     IN  A  192.168.220.111[root@localhost named]# vim new2.zone $TTL 1D
@   IN   SOA  dnn1.new2.com. lianxi.163.com (101D1H1W3H )IN NS  dns1.new1.com.
dns1    IN  A  192.168.220.100
www     IN  A  192.168.220.222//此时我的new1设置的是本机的ip地址//配置resolve
[root@localhost named]# vim /etc/resolv.conf ; generated by /usr/sbin/dhclient-script
search localdomain
nameserver 192.168.220.200
nameserver 8.8.8.8  
  • 重启服务并调试:

//重启服务
[root@localhost named]# systemctl restart named-chroot//开启日志
[root@localhost chroot]# tail -f 200  /var/log/messages//测试(分别测试new1和new2)
[root@localhost chroot]# nslookup www.new1.com
Server:     192.168.220.100
Address:    192.168.220.100#53Name: www.new1.com
Address: 192.168.220.111[root@localhost chroot]# nslookup www.new2.com
Server:     8.8.8.8
Address:    8.8.8.8#53Non-authoritative answer:
Name:   www.new2.com
Address: 209.99.40.222//new1由于设置的是本地的地址,会给出本地的ip地址
//而new2设置的不是本地的地址映射,则会给出一个随机的ip地址

Linux的DNS深度学习(DNS服务器搭建)相关推荐

  1. 【深度学习实验室服务器搭建整体思路】

    服务器配置 点个赞吧! 第一步: 制作Ubuntu server 18.04 U盘启动盘. 第二步: 给服务器安装Ubuntu server 18.04 系统 注意:前两步自己百度 第三步: 安装显卡 ...

  2. 【Linux Mint 深度学习开发环境搭建】开发软件安装

    系列文章目录 第一章 Linux mint 深度学习开发环境搭建之Nvidia显卡相关软件安装 第二章 Linux mint 深度学习开发环境搭建之开发软件安装 第三章 Linux mint 深度学习 ...

  3. 2021-04-17 安装Ubuntu18.0.4 的深度学习训练服务器

    序言: 过去安装系统,总是从互联网看看别人如何装,照猫画虎就稀里糊涂地装上了.但是并不知道版本之间的关系,以至于下次安装依然临时拍脑决定,这样安装的坏处是,以后运行时可能遇到莫名的错误.如今安装服务器 ...

  4. ubuntu深度学习软硬件开发环境搭建

    硬件 先从硬件自已配机器开始: 目前对于个人来说,性价比比较高的深度学习显卡是那个11G显存的GTX 1080Ti.这里显卡定了,接下来就是主板内存硬盘,显示器.先报一下我配的机器配置: CPU 英特 ...

  5. 【长篇博文】Docker学习笔记与深度学习环境的搭建和部署(二)

    长篇博文记录学习流程不容易,请关注.转发.点赞.评论,谢谢! 上一篇文章:Docker学习笔记与深度学习环境的搭建和部署(一) 文章末尾附加nvidia455.23.cuda11.1.cudnn8.0 ...

  6. 深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow1.4.0 opencv3.4 含泪总结

    深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow opencv 1 安装ubantu16.04 安装时不要在线更新,在 ...

  7. 【深度学习】Tensorflow搭建卷积神经网络实现情绪识别

    [深度学习]Tensorflow搭建卷积神经网络实现情绪识别 文章目录 1 Tensorflow的基本使用方法1.1 计算图1.2 Feed1.3 Fetch1.4 其他解释 2 训练一个Tensor ...

  8. 关于深度学习云服务器推荐

    关于深度学习云服务器推荐 免费的云服务器 免费+付费的云服务器 付费的云服务器 2022.2.7 更新推荐新的付费云服务器 自己也是最近才开始接触到机器学习和深度学习,很直观的一个感受就是跑起代码来特 ...

  9. 从深度学习计算过程来分析深度学习工作站\服务器的硬件配置

    柯洁和AlphaGo的故事已经结束,输赢显得并不重要,这个天才少年曾落泪哽咽:它太完美我看不到希望.搭载谷歌无人驾驶技术的车辆已经完成200万英里的测试,如今它打算要载人了,无人驾驶真的已经不远.在苹 ...

  10. 深度学习云服务器怎么选?哪个便宜?

    深度学习云服务器怎么选?机器学习是实现人工智能得方法,深度学习是实现机器学习得技术.机器学习在实现人工智能时需要人工辅助,而深度学习是为了让过程完全自动化.本篇来给大家分析一下深度学习服务器选择的问题 ...

最新文章

  1. mysql转换double_MySQL 字符串转in/double类型——CAST/CONVERT函数的用法
  2. CSS的overflow:规定当内容溢出元素框时发生的事情
  3. GPU 与CPU的作用协调,工作流程、GPU整合到CPU得好处
  4. Bomb HDU - 3555【数位dp】
  5. 台积电CEO魏哲家:3nm工艺按计划推进 明年一季度将看到营收
  6. C#利用phantomJS抓取AjAX动态页面
  7. Centos安装桌面系统并设置成默认启动
  8. apt-get 与 yum 的区别
  9. IOS性能优化方面的文章,Mark下
  10. 设置共享后其他计算机无法访问,电脑设置了文件共享其他电脑无法访问该怎么处理...
  11. 计算机上怎么设置qq隐藏图标,QQ图标隐藏了怎么弄出来
  12. DAY16-T1342面试题 05.08 -2022-01-31-非自己作答
  13. C#控制台实现停车管理系统
  14. android自定义横竖双向滚动,Android开发实现自定义水平滚动的容器示例
  15. 声源定位系统设计(一)——MVDR波束形成算法
  16. 关于联想昭阳k20-80触摸屏关闭
  17. C语言—猜数字游戏的实现
  18. 自动化立体仓库可以为企业带来什么效益?
  19. 驱动精灵官方版v8.0.1230
  20. LeetCode 每日一题 42. 接雨水 详细多种题解 C++描述

热门文章

  1. 《计算机科学概论》目录—导读
  2. 世界名车各种图标及文字说明
  3. Django文档学习
  4. Cortex-M0+指令集
  5. 九宫格 c语言题目及答案,9X9,九宫格测试,C编程。
  6. 怎么调大计算机浏览器内字体,电脑网页字体大小怎么调整(电脑里点击哪个是变换字体的)...
  7. HRBUST 1212 乘积最大
  8. 计算机桌面文件删除不掉是怎么了,电脑删除不了文件怎么办?教你几种好的处理方法,一学就会...
  9. matlab非参数检验,非参数检验及matlab实现
  10. 1005打印任务取消不了 hp_1005打印任务取消不了 hp_解决hp1005打印机无法打印故障...