IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> DNS复习 -> 正文阅读

[系统运维]DNS复习

简述

为了降低用户访问网络资源的门槛,域名系统(Domain Name System,DNS)技术应运而生。这是一项用于管理和解析域名与IP地址对应关系的技术。简单来说,就是能够接受用户输入的域名或IP地址,然后自动查找与之匹配(或者说具有映射关系)的IP地址或域名,即将域名解析为IP地址(正向解析),或将IP地址解析为域名(反向解析)。这样一来,只需要在浏览器中输入域名就能打开想要访问的网站了。DNS域名解析技术的正向解析也是我们最常使用的一种工作模式。

在这里插入图片描述

3种类型的服务器。

  • 主服务器:在特定区域内具有唯一性,负责维护该区域内的域名与IP地址之间的对应关系。

  • 从服务器:从主服务器中获得域名与IP地址的对应关系并进行维护,以防主服务器宕机等情况。

  • 缓存服务器:通过向其他域名解析服务器查询获得域名与IP地址的对应关系,并将经常查询的域名信息保存到服务器本地,以此来提高重复查询时的效率。

查询方式

DNS域名解析服务采用分布式的数据结构来存放海量的“区域数据”信息,在执行用户发起的域名查询请求时,具有递归查询迭代查询两种方式。

所谓递归查询,是指DNS服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果DNS服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结果提交给用户。

而迭代查询则是指,DNS服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台DNS服务器的地址,用户再向这台DNS服务器提交请求,这样依次反复,直到返回查询结果。

域名分类

. :根域,可省略不写
com:顶级域,由ICANN组织指定和管理
分类:
国家地区域名:cn(中国)、hk(香港)、sg(新加坡)等通用顶级域名:com(商业机构)、org (非营利组织)、edu(教育机构)等新通用顶级域名:red(红色、热情)、top(顶级、高端)等
atguigu:二级域(注册域),可由个人或组织申请注册

www:三级域(子域),服务器网站名代表
主机名:s1.www.atguigu.com.中的s1就是主机名,一般用来表示具体某一台主机

在这里插入图片描述

流程

  1. 首先查找/etc/hosts
  2. 查找本地缓存
  3. 请求转发指定DNS服务器
  4. 查找域名是否本地解析
  5. 查找DNS服务器缓存
  6. 向根服务器发DNS请求,返回org域地址列表
  7. 使用某一个org域的ip,发送DNS请求,org域返回kernel域服务器地址列表
  8. 使用某一个kernel域的ip,发送DNS请求,kernel域返回www.kernel主机的ip地址,本地DNS服务收到后,返回客户机,并在本地DNS服务器保存一份

软件信息

软件名 bind 或bind-chroot

服务名 named

端口53

配置

/etc/named.conf

把第11行和第19行的地址均修改为any,分别表示服务器上的所有IP地址均可提供DNS域名解析服务,以及允许所有人对本服务器发送DNS查询请求。这两个地方一定要修改准确

[root@linuxprobe ~]# vim /etc/named.conf
  1 //
  2 // named.conf
  3 //
  4 // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
  5 // server as a caching only nameserver (as a localhost DNS resolver only).
  6 //
  7 // See /usr/share/doc/bind*/sample/ for example named configuration files.
  8 //
  9 
 10 options {
 11         listen-on port 53 { any; };
 12         listen-on-v6 port 53 { ::1; };
 13         directory       "/var/named";
 14         dump-file       "/var/named/data/cache_dump.db";
 15         statistics-file "/var/named/data/named_stats.txt";
 16         memstatistics-file "/var/named/data/named_mem_stats.txt";
 17         secroots-file   "/var/named/data/named.secroots";
 18         recursing-file  "/var/named/data/named.recursing";
 19         allow-query     { any; };
 20 
 21         /* 
 22          - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
 23          - If you are building a RECURSIVE (caching) DNS server, you need to enable 
 24            recursion. 
 25          - If your recursive DNS server has a public IP address, you MUST enable access 
 26            control to limit queries to your legitimate users. Failing to do so will
 27            cause your server to become part of large scale DNS amplification 
 28            attacks. Implementing BCP38 within your network would greatly
 29            reduce such attack surface 
 30         */
 31         recursion yes;
 32 
 33         dnssec-enable yes;
 34         dnssec-validation yes;
 35 
 36         managed-keys-directory "/var/named/dynamic";
 37 
 38         pid-file "/run/named/named.pid";
 39         session-keyfile "/run/named/session.key";
 40 
 41         /* https://fedoraproject.org/wiki/Changes/CryptoPolicy */
 42         include "/etc/crypto-policies/back-ends/bind.config";
 43 };
 44 
 45 logging {
 46         channel default_debug {
 47                 file "data/named.run";
 48                 severity dynamic;
 49         };
 50 };
 51 
 52 zone "." IN {
 53         type hint;
 54         file "named.ca";
 55 };
 56 
 57 include "/etc/named.rfc1912.zones";
 58 include "/etc/named.root.key";
 59 

区域配置文件 /etc/named.rfc1912.zones

数据配置文件 /etc/named/XXXX

实验

基本

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

正向

vim /etc/named.conf
 listen-on port 53 { any; };
 allow-query     { any; };
 
vim /etc/named.rfc1912.zones
zone "syh.com" IN {
        type master;
        file "syh.com.zone";
        allow-update {none;};
};


 cp -a named.localhost /etc/named/syh.com.zone
 vim /var/named/syh.com.zone
$TTL 1D
@       IN SOA   syh.com. root.syh.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns.syh.com.
ns      IN A    192.168.222.110

vim /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
IPADDR=192.168.222.110
NETMASK=255.255.255.0
DNS1=192.168.222.110
GATEWAY=192.168.222.110
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
NAME="ens33"
UUID="b5c352d6-b21b-4925-8cc0-a2f6f287b876"
DEVICE="ens33"
ONBOOT="yes"

service  network restart

[root@syh named]# nslookup ns.syh.com
Server:		192.168.222.110
Address:	192.168.222.110#53

Name:	ns.syh.com
Address: 192.168.222.110                 

反向

vim /etc/named.rfc1912.zones 

zone "syh.com" IN {
        type master;
        file "syh.com.zone";
        allow-update {none;};
};
zone "222.168.192.in-addr.arpa" IN { 
        type master;
        file "192.168.222.arpa";
};

cp -a /var/named/named.loopback /var/named/192.168.222.arpa


主从服务

 vim /etc/named.rfc1912.zones 
zone "syh.com" IN {
        type master;
        file "syh.com.zone";
        allow-update { 192.168.222.111; };
};


zone "222.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.222.arpa";
        allow-update { 192.168.222.111; };
};


vim /etc/named.conf
 listen-on port 53 { any; };
 allow-query     { any; };

 vim /etc/named.rfc1912.zones
zone "syh.com" IN {
        type slave;
        masters { 192.168.222.110; };
        file "slaves/syh.com.zone";
};
zone "222.168.192.in-addr.arpa" IN {
        type slave;
        masters { 192.168.222.110; };
        file "slaves/192.168.222.arpa";
};

缓存服务器

1

forwarders { 上级DNS服务器地址; };”,上级DNS服务器地址指的是获取数据配置文件的服务器。

vim /etc/named.conf

 allow-query     { any; };
forwarders { 210.73.64.1; };
 yum install dnsmasq -y
vim /etc/dnsmasq.conf 

# Include all files in /etc/dnsmasq.d except RPM backup files
domain=www.syh.com
server=192.168.222.110
cache-size=15000


智能DNS

dns

第1步:修改bind服务程序的主配置文件,把第11行的监听端口与第19行的允许查询主机修改为any。由于配置的DNS分离解析功能与DNS根服务器配置参数有冲突,所以需要把第52~55行的根域信息删除。

第2步:编辑区域配置文件。把区域配置文件中原有的数据清空,然后按照以下格式写入参数。首先使用acl参数分别定义两个变量名称(china与america),当下面需要匹配IP地址时只需写入变量名称即可,这样不仅容易阅读识别,而且也利于修改维护。这里的难点是理解view参数的作用。它的作用是通过判断用户的IP地址是中国的还是美国的,然后去分别加载不同的数据配置文件(linuxprobe.com.china或linuxprobe.com.america)。这样,当把相应的IP地址分别写入到数据配置文件后,即可实现DNS的分离解析功能。这样一来,当中国的用户访问linuxprobe.com域名时,便会按照linuxprobe.com.china数据配置文件内的IP地址找到对应的服务器。

acl "china" {122.71.115.0/24; };
acl "america" { 106.185.25.0/24; };

view "china" {
        match-clients { "china"; };
        zone "syh.com" {
        type master;
        file "syh.com.china";
        };
};
view "america" {
        match-clients { "america"; };
        zone "syh.com" {
        type master;
        file "syh.com.america";
        };
};   

第3步:建立数据配置文件。分别通过模板文件创建出两份不同名称的区域数据文件,其名称应与上面区域配置文件中的参数相对应。

[root@linuxprobe ~]# cd /var/named
[root@linuxprobe named]# cp -a named.localhost syh.com.china
[root@linuxprobe named]# cp -a named.localhost syh.com.america
[root@linuxprobe named]# vim syh.com.china

在这里插入图片描述
在这里插入图片描述

https://www.linuxprobe.com/basic-learning-13.html#136

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章           查看所有文章
加:2022-06-29 19:27:13  更:2022-06-29 19:30:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 8:37:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计