Linux入门学习必备技能之DNS

Posted 28线不知名云架构师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux入门学习必备技能之DNS相关的知识,希望对你有一定的参考价值。

一、DNS的基础知识点

DNS域名系统(Domain Name System缩写DNS,Domain Name被译为域名)是因特网的一项核心服务, 它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方假 DNS使用的协议及端口号 DNS的默认端口为53。 DNS端口分为TCP和UDP。

二、TCP和UDP的区别

①TCP是用来做区域传送,多用于主从同步 在一个区中主DNS服务器从自己本机的数据文件中读取该区的DNS数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息

②UDP是用来做DNS解析的

注:FQDN全称 Fully Qualified Domain Name即全域名:同时带有主机名和域名的名称FQDN = Hostname + DomainName

如: www.baidu.com. 注意:最前面的一定是主机,最后一个点表示根域,通常是省略不写的,但实际上www.abc.com=www.abc.com.

三、DNS解析方式

四、域名结构

①根域:位于域名空间最顶层,一般用一个”."表示根域

②顶级域:一般代表一种类型的组织机构或国家地区,比如com,cn,net,uk等

③二级域:用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理,比如baidu,taobao等

④子域:二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名sina.com.cn

⑤主机:主机位于域名空间最下层,就是一台具体的计算机,比如www,mail等

注意:每一级的域名长度限制是63个字符,域名总长度则不能超过253个字符

五、域名解析过程

① 终端用户DNS客户端向LocalDNS发起递归查询。递归查询指如果终端用户所请求的LocalDNS服务器不知道被查询的域名的IP地址,则以DNS客户端的身份,向其它域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。

②LocalDNS检查本地对应缓存无数据后,则向根DNS服务器发起迭代查询请求。任何LocalDNS都需知道根DNS服务器的IP地址(全球共13台)。迭代查询指域名服务器或者给出最终结果,或者告诉DNS客户(此处指LocalDNS)应去哪些DNS服务器查询。

③根DNS服务器告诉LocalDNS该域名已授权给com区管理,应去com DNS服务器查询,并给出了com DNS服务器的IP地址。LocalDNS将com DNS服务器及其IP地址加入到缓存,下次DNS请求,在缓存未过期的情况下,授权给com 区的域名需向com DNS服务器请求查询时,直接往com DNS服务器发查询请求,不再向根DNS服务器请求。

④ LocalDNS服务器根据根DNS服务器响应的结果向com DNS服务器发起迭代查询请求。

⑤om DNS服务器告诉LocalDNS服务器该域名已授权给http://wangsu.com区管理,应去http://wangsu.com
DNS服务器查询,并给出http://wangsu.com DNS服务器的IP地址。LocalDNS将http://wangsu.com
DNS服务器及其IP地址加入到缓存,下次DNS请求,在缓存未过期的情况下,授权给http://wangsu.com区的域名需向http://wangsu.com DNS服务器请求查询时,直接往对应 DNS服务器发查询请求,不再向根DNS服务器及com DNS服务器请求。

⑥ LocalDNS服务器根据 com DNS服务器响应的结果向http://wangsu.com DNS服务器发起迭代查询请求。

wangsu.com DNS服务器给出域名的IP地址。LocalDNS将www.wangsu.com 
IP地址加入到缓存,下次相同的DNS请求,在缓存未过期的情况下,LocalDNS直接给出该域名的IP地址,不再向权威DNS服务器查询。

⑧LocalDNS服务器将该域名对应的IP地址返回给终端用户,DNS客户端将域名对应的IP地址接入缓存。下次请求该域名时,若缓存未过期,DNS客户端直接从缓存取出IP,不再向LocalDNS发起迭代查询。

六、正向解析具体操作

①安装bind软件包

yum -y install bind    

安装完会得到DNS的三个配置文件
主配置文件            /etc/named.conf
区域配置文件          /etc/named.rfc1912.zones
区域数据配置文件模板  /var/named/named.localhost

②修改主配置文件

vim /etc/named.conf
options {
  listen-on-v6 poet 53 { 192.168.184.10; };              #监听53端口,IP地址使用提供服务的本地IP,也可用any代表所有
#   listen-on-v6 port 53 { : :1; };                      #ipv6行如不使用可以注释掉或者删除
  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";    #内存统计文件的位置
  allow-query
{ any; };                                                #允许使用本DNS解析服务的网段,也可用any代表所有

zone "." IN {                                            #正向解析“. "根区域
        type hint;                                       #类型为根区域
        file "named.ca";                                 #区域数据文件为named.ca,记录了13台根域服务器的域名和IP地址等信息
};

③修改区域配置文件

vim /etc/ named. rfc1912. zone                           #可在文件里有模版,可复制粘贴后修改
zone "lic. com" IN {                                     #正向解析"lic.com"区域
type master;                                             #类型为主区域
 file "lic. com. zone";                                  ●指定区域数据文件为lic. com. zone
allow-update { none; };
};

④修改区域数据配置文件

cd /var/named/
cp -p named.localhost lic.com.zone                      #保留源文件的权限和属主的属性复制
vim /var/named/lic.com.zone
$TTL 1D                                                  #设置缓存解析结果的有效时间
@       IN SOA lic.com. admin.lic.com. (
                                           0; serial .
                                           1D; refresh
                                           1H; retry
                                           1W; expire
                                           3H ) ; minimum
         NS    lic.com.                                  #记录当前区域的DNS服务器的名称
         A     192.168.184.10                            #记录主机IP地址
IN   MX  10    mail.lic.com.                             #MX为邮件交换记录,数字越大优先级越低
www  IN  A     192.168.184.10                            #记录正向解析www.benet.com对应的IP
mail IN  A     192.168.184.11
ftp  IN CNAME  www                                       #CNAME使用别名,ftp是www的别名
*    IN   A    192.168.184.100                           #泛域名解析,“*"代表任意主机名

⑤启动服务

systemctl start named
systemctl stop firewalld
setenforce 0        
tail -f /var/log/ messages                               #如果服务启动失败,可以查看日志文件来排查错误

rndc-confgen -r /dev/urandom -a                          #如果服务启动卡住,可以执行此命令解决

⑥在客户端的域名解析配置文件中添加DNS服务器地址

vi /etc/resolv.conf                                      #修改完后立即生效
nameserver 192.168.184.10


vi /etc/ sysconfig/network- scripts/ ifcfg-ens33         #修改完后需要重启网卡
DNS1=192.168.80.10
systemctl restart network

⑦测试结果

host www.lic.com
nslookup www.lic.com

 

 

以上是关于Linux入门学习必备技能之DNS的主要内容,如果未能解决你的问题,请参考以下文章

学习Linux必备技能之万能无人值守装机PXE!!!

企业级MySQL数据库入门必备Linux基础低价资源

接口测试必备技能之入门到上手

测试必备技能系列6:软件安装部署是最基本的能力!

软件开发工程师必备技能之——Docker入门(下篇)

软件开发工程师必备技能之——Docker入门(中篇)