首页 > 其他分享 >域名系统DNS服务

域名系统DNS服务

时间:2024-10-12 22:43:36浏览次数:1  
标签:10.0 dns 服务 wang 域名 DNS org root rocky

1 名字解析介绍和DNS

1.根域: 全球根服务器节点只有13个,10个在美国,1个荷兰,1个瑞典,1个日本
2.一级域名:Top Level Domain: tld
三类:组织域、国家域(.cn, .ca, .hk, .tw)、反向域
com, edu, mil, gov, net, org, int,arpa
3.二级域名:wang.org
4.三级域名:study.wang.org
5.最多可达到127级域名

1.2 DNS服务工作原理

 权威dns: 存实际访问网站的ip地址

 

公网dns

在阿里云上域名解析,记录类型 A 将域名执行一个IPV4地址,最为常用
主机记录: <u>m49</u>.ldc.cn (FQDN开头端)    记录值: ip地址    TTL: 缓存
注意: 域名需要备案(中国特色)

 

公司内部dns

最常用的是bind

#bind服务装在 10.0.0.150
[root@rocky ~]# yum -y install bind
[root@rocky ~]# systemctl enable --now named
# 53端口 和 953端口(管理端口,不关注)   udp53查询域名用  tcp53主从同步用(同步udp53也要用)

#查看自己当前dns
[root@rocky ~]# cat /etc/resolv.conf
#把网卡配置dns指向自己
[root@rocky ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
...
DNS1=127.0.0.1
[root@rocky ~]# nmcli connection reload
[root@rocky ~]# nmcli connection up ens33
#查看是否生效
[root@rocky ~]# cat /etc/resolv.conf 
nameserver 127.0.0.1

#安装完dns,自己就有了解析能力
[root@rocky ~]# ping www.baidu.com
PING www.a.shifen.com (36.155.132.3) 56(84) bytes of data.
64 bytes from 36.155.132.3: icmp_seq=1 ttl=128 time=17.8 ms

#修改监听端口,让其他主机也能使用本地的bind服务
[root@rocky ~]# vim /etc/named.conf
options {
    listen-on port 53 { localhost; };    #当前主机所有ip,也可把这一行删了或//注释
    ...
    allow-query     { localhost;any; };    #允许所有人,也可以注释//相当于any

#检查语法
[root@rocky ~]# named-checkconf
#重启或通过rndc让bind重新加载(通过953端口)
[root@rocky ~]# rndc reload

#另一台机器可以通过配置dns为10.0.0.150,使用对方的dns服务即可访问外网

设置内网域名

#nginx机器  10.0.0.152
[root@ubuntu ~]#apt update ;apt install nginx -y
[root@ubuntu ~]#vim /var/www/html/index.html
<h1>welcome to M49 website</h1>

#bind服务机器
#域名和数据文件对应关系(数据文件记录了名称ip的解析关系)
[root@rocky ~]# vim /etc/named.rfc1912.zones
zone "wang.org" IN {    #不要加www,那是主机名,这里写的是域名
        type master;    #类型(主服务器)
        #文件后缀名叫什么无所谓,习惯性叫zone
        file "wang.org.zone";    #路径在主配置named.conf中directory约定了,默认/var/named
};

[root@rocky ~]# cd /var/named
#写入资源记录(里面对齐无所谓),参考下面资源记录
[root@rocky named]# vim wang.org.zone
$TTL 86400
@     IN     SOA  dns.wang.org. admin.magedu.com ( 2024101215 3H 10M 1D 1W )
         NS     dns1
dns1     A     10.0.0.150
www      A     10.0.0.152
db         A     10.0.0.153

#修改权限保证安全
[root@rocky named]# chmod 640 wang.org.zone
#给组权限,因为bind是以named组启动的
[root@rocky named]# chgrp named wang.org.zone
#通过域名检查数据库语法是否符合要求
[root@rocky named]# named-checkzone wang.org /var/named/wang.org.zone

#让配置生效
[root@rocky ~]# rndc reload

#其他机器dns改成10.0.0.150,即可访问 www.wang.org(window修改VMnet8的dns)

2.6 各种资源记录

#/var/named/named.localhost为案例
记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX
1.SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解析库的第一条记录
2.A:internet Address,作用,FQDN --> IP
3.NS:Name Server,专用于标明当前区域的DNS服务器
4.AAAA:FQDN --> IPv6
5.CNAME : Canonical Name,别名记录

#资源记录定义的
name     [TTL]                 IN         rr_type     value
        缓存有效期(默认单位s)  固定写法 类型        ip地址
例:
$TTL 86400    #开头定义变量,下面TTL就不用在写86400
#SOA的value: 服务器名 邮箱名 (版本(主从通过该变化判断数据改变) 从库拉取主库配置时间间隔 前面拉取失败 重试时间间隔 同步一直失败多久就失效 如果不存在的记录缓存一段时间)
#同步有两种方式,一种主主动推到从(主资源版本变化),一种从定时从主拉数据
@(本域名简写,或写wang.org.)     IN     SOA  dns.wang.org.(服务器名,随便写) admin.magedu.com(管理者邮箱,没用) ( 2024101215 3H 10M 1D 1W )
#@(上面写了,这里可省略)    IN(上面写了,这里可省略)    NS    dns1(dns服务器名,下面要a记录解成ip;如果2个,写2行)
        NS    dns1
dns1    A    10.0.0.150
#www(简写,或写www.wang.org.)    86400(可省略)    IN(上面写了,这里可省略)    A    10.0.0.150
www     A    10.0.0.152
db        A    10.0.0.153

把bind做成主从

#再准备一台机器做备节点  10.0.0.156
[root@rocky ~]# yum -y install bind
#修改监听端口,让其他主机也能使用本地的bind服务
[root@rocky ~]# vim /etc/named.conf
options {
    listen-on port 53 { localhost; };    #当前主机所有ip,也可把这一行删了或//注释
    ...
    allow-query     { localhost;any; };    #允许所有人,也可以注释//相当于any

#从节点也要维护和主节点一样的域名
[root@rocky ~]# vim /etc/named.rfc1912.zones
zone "wang.org" IN {
        type slave;    #类型(从)
        masters {10.0.0.150;};
        #会自动拷贝过来
        file "slaves/wang.org.slave.zone";    #一般放在slaves下,文件名随意
};

[root@rocky ~]# systemctl enable --now named

#查看,已经从主节点拷贝过来(非文本文件,无法查看)
[root@rocky ~]# ll /var/named/slaves/
total 4
-rw-r--r-- 1 named named 284 Oct 12 17:35 wang.org.slave.zone

#此时其他机器可以通过从dns解析www.wang.org
[root@rocky ~]# dig www.wang.org @10.0.0.156

#在新的服务器上    10.0.0.157
#修改dns配置,dns1和dns2分别对应一个主dns,一个从dns
[root@rocky ~]# dig www.wang.org
;; ANSWER SECTION:
www.wang.org.        86400    IN    A    10.0.0.152
;; AUTHORITY SECTION:
wang.org.        86400    IN    NS    dns1.wang.org.
;; ADDITIONAL SECTION:
dns1.wang.org.        86400    IN    A    10.0.0.150
;; Query time: 0 msec
;; SERVER: 10.0.0.150#53(10.0.0.150)
;; WHEN: Sat Oct 12 17:54:40 CST 2024
;; MSG SIZE  rcvd: 120

#此时把10.0.0.150的主dns关闭,再次测试
[root@rocky ~]# dig www.wang.org
;; QUESTION SECTION:
;www.wang.org.            IN    A
;; ANSWER SECTION:
www.wang.org.        86400    IN    A    10.0.0.152
;; AUTHORITY SECTION:
wang.org.        86400    IN    NS    dns1.wang.org.
;; ADDITIONAL SECTION:
dns1.wang.org.        86400    IN    A    10.0.0.150
;; Query time: 2 msec
;; SERVER: 10.0.0.156#53(10.0.0.156)    #从dns返回
;; WHEN: Sat Oct 12 17:56:34 CST 2024
;; MSG SIZE  rcvd: 120

#主节点修改    10.0.0.150
#主从同步还需要更改资源记录,追加从dns
[root@rocky named]# vim wang.org.zone
$TTL 86400
@     IN     SOA  dns.wang.org. admin.magedu.com ( 2024101215 3H 10M 1D 1W )
         NS     dns1
         NS  dns2
dns2     A     10.0.0.156    #这里上下顺序无所谓
dns1     A     10.0.0.150
www      A     10.0.0.152
db         A     10.0.0.153

#让配置生效
[root@rocky ~]# rndc reload

#现在只要修改wang.org.zone并修改版本号,从库就会跟着变更配置

清除bind服务缓存

[root@rocky ~]#rndc flush

 

4.8 启用DNS客户端缓存功能

在高并发的服务器场景中,对DNS的服务器查询性能有较高的要求,如果在客户端启用DNS缓存功能,可以 大幅减轻DNS服务器的压力,同时也能提高DNS客户端名称解析速度

4.8.1 CentOS 启用DNS客户端缓存

CentOS 默认没有启用DNS客户端缓存,安装nscd(Name Service Cache Daemon,名称服务缓存守护进 程)包可以支持DNS缓存功能

减少DNS服务器压力,提高DNS查询速度

#这个软件只要装上,服务一启,就不用管了,就可以做缓存了

[root@centos7 ~]#yum -y install nscd
[root@centos7 ~]#systemctl enable --now nscd

#查看缓存统计信息
[root@centos7 ~]#nscd -g

#清除DNS客户端缓存
[root@centos7 ~]#nscd -i hosts

4.8.2 Ubuntu 启用DNS客户端缓存

ubuntu 默认会启用DNS客户端缓存

[root@ubuntu1804 ~]#systemctl status systemd-resolved.service 

windows自带dns客户端缓存

 

5 实现反向解析区域 (了解)

7 实现子域

wang.org父域
两种情况:
wang.org    sh.wang.org        #子域和父域放在同一台dns,节约成本
bj.wang.org        #把bj.wang.org单独放在一个dns,从父域DNS告知子域DNS
#第一种情况,子域和父域放在同一台dns (从逻辑上来讲,只是一条记录)
#主dns
[root@rocky ~]cd /var/named
[root@rocky named]# vim wang.org.zone
$TTL 86400
@     IN     SOA  dns.wang.org. admin.magedu.com ( 2024101215 3H 10M 1D 1W )
         NS     dns1
         NS  dns2
dns2     A     10.0.0.156
dns1     A     10.0.0.150
www      A     10.0.0.152
db         A     10.0.0.153
www.sh     A     1.1.1.1    #追加

[root@rocky ~]# rndc reload

#配了对应dns的客户端查看
[root@rocky ~]# dig www.sh.wang.org
www.sh.wang.org.    86400    IN    A    1.1.1.1
#第二种情况,父域和子域在不同DNS

#主服务器上要做子域的委派,委派给另外的dns来管理
[root@rocky named]# vim wang.org.zone
$TTL 86400
@     IN     SOA  dns.wang.org. admin.magedu.com ( 2024101215 3H 10M 1D 1W )
         NS     dns1
         NS  dns2
bj         NS  bjdns    #分配给bjdns的dns
dns2     A     10.0.0.156
dns1     A     10.0.0.150
bjdns     A     10.0.0.158
www      A     10.0.0.152
db         A     10.0.0.153
www.sh     A     1.1.1.1

[root@rocky ~]# rndc reload

#在bjdns的dns搭建dns  10.0.0.158
[root@rocky ~]# bash install_dns.sh

#这里客户端查询采用的是递归查询的方式,父域dns去查子域dns获取ip再返回客户端

 

8 实现 DNS 转发(缓存)服务器

8.2 转发方式

8.2.1 全局转发

客户端访问一台dns1,如果dns1没有,它会转发到dns2上,dns2上没有,会去外网查,如果有返回dns1,dns1返回客户端
如果dns2没找到,告诉dns1没有,dns1有两种策略:
first: 选择自己去外网查
only: 选择放弃直接返回

#准备一台机器作为dns2,装dns    10.0.0.38

#在dns1上
#修改主配置文件
[root@rocky named]# vim /etc/named.conf
options {
        forwarders { 10.0.0.38;};
        forward first;    #dns2查不到,它自己查
        #forward only;    #dns2查不到就算了
        ...
        dnssec-enable no;    #这两项安全dns验证用的,要关(不能注释,默认为yes)
        dnssec-validation no;
        
[root@rocky named]#named-checkonf
[root@rocky named]#rndc reload

#客户端测试
[root@centos7 ~]#dig www.x.com
#测试当中会有缓存,两台bind服务上可以清下缓存,看效果
[root@rocky named]# rndc flush

8.2.2 特定区域转发

仅转发对特定的区域的请求,比全局转发优先级高

zone "ZONE_NAME" IN {
 type forward;
 forward first|only;
 forwarders { ip;};
};
first:先转发至指定DNS服务器,如果无法解析查询请求,则本服务器再去根服务器查询
only: 先转发至指定DNS服务器,如果无法解析查询请求,则本服务器将不再去根服务器查询

9 实现智能 DNS

9.2 CDN (Content Delivery Network)内容分发网络

 对用户来说,只要把网站地址改个别名(比如阿里域名解析设置别名),指向cdn供应商地址即可

9.2.3 CDN 案例

使用以下链接测试访问上面图片链接

站长之家
https://tool.chinaz.com/speedtest

9.3 智能DNS相关技术 (了解,正常都是花钱买)

9.3.1 bind中ACL

ACL:把一个或多个地址归并为一个集合,并通过一个统一的名称调用

注意:只能先定义后使用;因此一般定义在配置文件中,处于options的前面

acl acl_name {
    ip;
    net/prelen;
    ……
};
#范例:
acl test_net {
    172.16.0.0/24;
    10.0.0.0/24;
};
acl test_net {
   192.168.10.0/24;
};

9.3.4 view 视图

9.3.4.1 View:视图,将ACL和区域数据库实现对应关系,以实现智能DNS

1.一个bind服务器可定义多个view,每个view中可定义一个或多个zone
2.每个view用来匹配一组客户端
3.多个view内可能需要对同一个区域进行解析,但使用不同的区域解析库文件
注意:
1.一旦启用了view,所有的zone都只能定义在view中
2.仅在允许递归请求的客户端所在view中定义根区域
3.客户端请求到达时,是自上而下检查每个view所服务的客户端列表
#范例
view test_view {    #view名称
    match-clients { test_net; };
    zone "wang.org" {    #这些可以写到include配置中
        type master;
        file "wang.org.zone.bj"; 
    };
    include "/etc/named.rfc1912.zones.test";
};
view product_view {
    match-clients { product_net; };
    #zone "wang.org" {
    #    type master;
    #    file "wang.org.zone.sh"; 
    #};
    include "/etc/named.rfc1912.zones.product";
};

 

标签:10.0,dns,服务,wang,域名,DNS,org,root,rocky
From: https://www.cnblogs.com/ludingchao/p/18461621

相关文章

  • Nacos服务注册与发现的原理
    1.注册中心原理微服务远程调用的过程中,包括两个角色:服务提供者:提供接口供其它微服务访问,比如item-service服务消费者:调用其它微服务提供的接口,比如cart-service在大型微服务项目中,服务提供者的数量会非常多,为了管理这些服务就引入了注册中心的概念。注册中心、服务提供者、......
  • 管理服务与配置
    管理服务与配置概述在JAINSLEE(ServiceLogicExecutionEnvironment)中,管理员通过管理接口执行多种操作来管理服务和配置文件。主要操作管理员可以进行以下管理操作:1.可部署单元的操作安装和卸载可部署单元:管理员可以将服务部署单元(JAR文件)安装到SLEE环境......
  • JAIN SLEE 服务创建过程 (创建一个服务)
    JAINSLEE服务创建过程(创建一个服务)根据JAINSLEE1.1规范,创建服务遵循特定步骤,包括定义、定制、打包和部署服务。以下是关键部分的解释以及XML节点的注释说明。1.服务定义定义服务时,需要确定服务的组成部分,例如服务构建块(ServiceBuildingBlocks,SBB)以及它......
  • Web集群服务-Nginx
    1.web服务1. WEB服务:网站服务,部署并启动了这个服务,你就可以搭建一个网站2. WEB中间件:等同于WEB服务3. 中间件:范围更加广泛,指的负载均衡之后的服务4. 数据库中间件:数据库缓存,消息对列2. 极速上手指南nginx官网: nginxdocumentation2.1 配置yum源vim......
  • jsp大学生家教服务管理系统875n5(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表家教老师,求聘家长,优秀老师,家教预约,家教评价,复习链接开题报告内容一、研究背景随着教育需求的日益增长,大学生家教作为一种新兴的教育服务模式,正逐渐成为广......
  • Nacos服务注册与发现的原理
    大致流程每个服务都会有一个nacosclient,它用来和nacosserver打交道用来具体的服务注册查询等操作,服务提供者在启动的时候会向nacosserver注册自己,服务消费者在启动的时候订阅nacosserver上的服务提供者。在大型微服务项目中,服务提供者的数量会非常多,为了管理这些服务就引......
  • Ubuntu20.04安装unifi网络服务器
    1、更新软件和系统sudoaptupdate&&sudoapt-yfull-upgrade2、添加存储库所需的依赖项sudoaptinstallcurlgpggnupg2software-properties-commonapt-transport-httpslsb-releaseca-certificates 3、将GPG密钥添加到您的系统密钥环中 curl-fsSLhttps://pgp......
  • 简易快速搭建全景VR服务器教程
    近期有一些朋友在使用BZ全景可视化编辑器的过程中,不了解如何把全景编辑器生成的静态全景VRHTML项目部署到自己的服务器上,本篇文章将详细介绍如何使用宝塔面板来搭建一个全景VR服务器我们将从安装宝塔面板开始,配置静态网页服务器,上传全景静态HTML项目,并最终预览效果,每一步......
  • 云服务器软件加密———简单
     云服务器上部署软件越来越方便,很多软件开发商会将软件部署到阿里云等服务商的云服务器上,目前国内常用的云服务器众多,还有华为云、电信云、联通云、腾讯云等等。使用方便也带来了软件版权加密保护问题,当软件开发商将软件部署交付验收之后,云服务器的管理会由最终用户自己来管理,......
  • zinx-Golang轻量级TCP服务器框架学习记录
    目录背景介绍学习资料源代码背景介绍由于工作需要,需要开发高并发的golang服务器。作为一个golang小白,选择一个好的框架既是对项目的负责,也是一个学习的过程。之所以选择Zinx框架,是因为其完整的文档和视频讲解,这对一个初学者来说是非常友好的学习资料Golang轻量级并发服务......