DNS

  • DNS的概要和作用
  • DNS缓存
  • DNS项目解析

DNS的概要和作用

作用:将域名解析成ip地址
原因:我们对于数字不敏感,记不住IP地址,所以有域名解析服务
解析方式:正面解析:域名解析出IP。反向解析:IP解析出域名
dns服务器中存在大量IP和域名映射记录,他的记录文件分别是正向解析文件和反向解析文件。正向解析文件中存储记录称为A记录,A记录记录着域名和IP地址的映射关系。反向解析文件中存储的记录称为PTR指针,PTR记录着IP和域名的映射关系。
DNS服务既属于TCP协议也属于UDP协议,端口号为53号。
域名的组成
根域是“.”,是域名的最后一位,通常会省略掉
国家域:cn中国 hk香港(地区) uk英国 au澳大利亚
顶级域:com商业用途 net网络组织 edu教育
二级域(个性化名称):baidu,google

域名解析过程是分层解析的,一般客户机将解析的请求发送给他的dns服务器,dns服务器首先从根dns服务器开始发送域名解析请求,根将com域的IP反馈给客户机的本地服务器,本地dns服务器访问com域服务器,com域服务器反馈baidu域的ip给本地dns服务器,本地dns服务器访问baidu域服务器询问www域服务器的ip,baidu域服务器给dns服务器反馈www域ip,这时本地dns服务器得到www.baidu.com的精确IP后,直接将这个映射记录反馈给客户机,客户机直接访问www,baidu.com服务器,服务器反馈相应的数据。

DNS缓存

:其中一台dns服务器可以上网去获取dns映射记录,客户机将dns服务器地址指向这台可以上网的dns服务器,从而获取到相应的映射记录。
一个dns服务器一个客户端
网络配置:作为服务器要有两张网卡,一张连接网络,一张在内网和客户端相连
两张内网网卡使用vmnet1(将vmnet1改成手动获取网卡,内网卡与vmnet1ip处于同一网段)
连接网络的网卡用桥接模式
在服务器上开启路由

永久:vi /etc/sysctl.confnet.ipv4.ip forward=1
 sysctl -p#j加载配置
 临时:echo “1”>/proc/sys/net/ipv4/ip_forward
 然后预装dns服务
 yum -y install bind*
 vi /etc/named.conflisten-on port 53 {自己的内网ip;}
 allow-query {自己内网IP所在网段/子网;}
 systectl start named
 nslookup www.baidu.com#测试
 客户端
 vi /etc/resolv.confnameserver (服务器内网ip)
 nslookup www.baidu.com#测试
 主从dns服务器
 正向解析记录和反向解析记录都在主dns服务器,从服务器的正向解析记录和反向解析记录是从主服务器上拷贝而来
 关闭防火墙,让三台Linux处于同一网段,互联互通
 在作为dns服务器的两台Linux上安装dns服务
 yum -y install bind*
 在三台Linux上
 vi /etc/resolv.confnameserver一台服务器地址
 nameserver另一台服务器地址主服务器上
 vi /etc/named.conflisten-on port 53 {自己的内网ip;}
 allow-query {自己内网IP所在网段/子网(或是any);}vi /etc/named.efc1912.zones
 zone “localhost” IN {
 type master;
 file “named.localhost”;
 allow-update { none; };
 };
 zone “aa.com” IN {
 type master;
 file “aa.com.zone”;
 allow-transfer { 192.168.100.13(自己的从服务器ip); };
 also-notify { 192.168.100.13(自己的从服务器ip); };
 };
 zone “100.168.192.in-addr.arpa” IN {
 type master;
 file “aa.com.local”;
 allow-transfer { 192.168.100.13(自己的从服务器ip); };
 };
 zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ipcp -p named.localhost aa.com.zone
 cp -p named.loopback aa.com.local/var/named/下
 vi aa.com.zone(11为主,13为从)vi aa.com.local
systectl start named
从服务器上
 vi /etc/named.conf
 listen-on port 53 {自己的内网ip;}
 allow-query {自己内网IP所在网段/子网(或是any);}vi /etc/named.efc1912.zones
 zone “localhost” IN {
 type master;
 file “named.localhost”;
 allow-update { none; };
 };
 zone “aa.com” IN {
 type slave;
 masters { 192.168.100.11(主服务器ip); };
 allow-notify { 192.168.100.11(主服务器ip); };
 file “slaves/aa.com.zone”;
 };
 zone “100.168.192.in-addr.arpa” IN {
 type slave;
 masters { 192.168.100.11(主服务器ip); };
 allow-notify { 192.168.100.11(主服务器ip); };
 file “slaves/aa.com.local”;
 };
 zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip
 systectl start named

DNS项目解析

解析

其中一台DNS服务器可以上网去获取DNS映射记录,客户机将DNS服务器地址指向这台可以上网的DNS服务器,从而获取到相应的映射记录。
备注:开启路由功能的这台服务器需要预装DNS服务

容器域名映射_dns服务器

一个主机有两个网卡,一个内网网卡,一个外网网卡,可以上网并开启了DNS服务器功能,可以帮助内网的上网,有映射记录。客户机网关指向服务器,只要服务器收到请求,缓存有记录,就会丢给客户机,这个叫DNS缓存。

项目操作:
两个虚拟机,一个作为DNS服务器,一个客户机
DNS服务器添加一个网卡
注意保证虚拟机的网卡ip地址与VMent1即虚拟网络编辑器的ip在同一网段
新加的网卡ip与以太网ip在同一网段

新加网卡,桥接模式

容器域名映射_dns服务器_02

容器域名映射_容器域名映射_03

查看虚拟机之间是否可以通信

容器域名映射_服务器_04

项目流程
因为虚拟机存在两个网卡
一个外网网卡,一个内网网卡

1,启用NAT

[root@server2 ~]# vi /etc/sysctl.conf    
net.ipv4.ip_forward = 1               永久开启
[root@server2 ~]# sysctl -p           NAT,路由功能开启

容器域名映射_dns服务器_05

容器域名映射_容器域名映射_06

安装bind(域名解析服务的一个主程序)

[root@server2 ~]# yum -y install bind*

容器域名映射_dns服务器_07

容器域名映射_容器域名映射_08

编辑配置文件

[root@server2 ~]# vi /etc/named.conf
[root@server2 ~]# systemctl start named   服务开启

listen-on port 53 { 192.168.6.11; };       监听地址是自己(内网地址),因为目标地址是自己,DNS指向自己
allow-query     { 192.168.6.0/24; }; 允许给那些主机做DNS服务,(客户机范围)

容器域名映射_服务器_09

容器域名映射_DNS_10

进行域名解析

[root@server2 ~]# nslookup www.google.com     域名解析

容器域名映射_服务器_11

只要把网关指向内网网卡,就可以获取里面的缓存

在客户机上
1.修改DNS服务器地址

[root@server1 ~]# vi /etc/resolv.conf    指向同一网段.DNS服务器地址
nameserver 192.168.6.11

容器域名映射_DNS_12

网卡设置,解析地址

[root@server1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
[root@server1 ~]# nslookup www.google.com         域名解析

容器域名映射_dns服务器_13

分别选择不同的网址进行测试
www.baidu.com www.sina.com.cn

[root@server2 ~]# nslookup www.baidu.com
[root@server2 ~]# nslookup www.sina.com.cn

服务器上

容器域名映射_dns服务器_14

客户机上

容器域名映射_服务器_15

以上就是DNS缓存

主,从DNS服务器

解析

容器域名映射_容器域名映射_16

操作流程
实验开始之前需要先配置三台设备在同一网段
1.设备临时改名

[root@server1 ~]# hostname DNS1/DNS2/client
[root@server1 ~]# bash

2.在工具栏中点击发送键输入到所有会话
命令同步

[root@DNS1 ~]# systemctl stop firewalld   关闭防火墙
[root@DNS1 ~]# systemctl disable firewalld
[root@DNS1 ~]# setenforce 0               关闭核心防护
[root@DNS1 ~]# vi /etc/selinux/config

容器域名映射_DNS_17

3.在前两个设备中继续输入命令

[root@DNS2 ~]# yum -y install bind*  安装bind

4,在三个设备上继续输入命令

[root@DNS1 ~]# vi /etc/resolv.conf 修改DNS服务器地址

nameserver 192.168.6.10   主
nameserver 192.168.6.11   备份

容器域名映射_服务器_18

在DNS1上

1,修改主配置文件,全局设置

[root@DNS1 ~]# vi /etc/named.conf 监听地址

修改:
 listen-on port 53 { 192.168.6.10; };改成服务器地址
allow-query     { any; };这边改成任何人都能访问,你还可以写IP地址网段

2.区域设置

[root@DNS1 ~]# vi /etc/named.rfc1912.zones(告诉我们DNS服务器的正反向解析文件的位置)

添加:
正向解析

zone "aa.com" IN {                       域名
        type master;                   主服务器
        file "aa.com.zone";            完整文件名      
       allow-transfer { 192.168.6.11; };允许把文件传递给备服务器
        also-notify { 192.168.6.11; };
};
反向解析
zone "6.168.192.in-addr.arpa" IN {
        type master;                         
        file "aa.com.local";
        allow-transfer { 192.168.6.11; };
};

在这里插入图片描述
查看配置文件

[root@DNS1 ~]# cd /var/named/
[root@DNS1 named]# ls -lh

容器域名映射_容器域名映射_19

查看文件,拷贝模板,创建区域文件

[root@DNS1 named]# cp -p named.localhost aa.com.zone
[root@DNS1 named]# cp -p named.loopback aa.com.local

容器域名映射_服务器_20

编辑配置解析文件

[root@DNS1 named]# vi aa.com.zone  设置正向解析文件

容器域名映射_服务器_21

域名NS      @
      A     192.168.6.10   ip
  www  IN A     192.168.6.10
  ftp  IN A     192.168.6.11           A记录 域名与ip的映射关系
  mail IN CNAME www        别名

设置反向解析文件

[root@DNS1 named]# vi aa.com.local 


$TTL 1D
@       IN SOA  aa.com. rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      aa.com.
        A       192.168.6.10
10 IN  PTR     www.aa.com.
11 IN  PTR     ftp.aa.com.   PTR指针,域名与ip的映射关系

容器域名映射_服务器_22

开启服务

[root@DNS1 named]# systemctl start named

容器域名映射_服务器_23

验证解析服务:

[root@DNS1 named]# nslookup www.aa.com  本地服务
[root@DNS1 named]# nslookup ftp.aa.com
[root@DNS1 named]# nslookup mail.aa.com

容器域名映射_DNS_24

在DNS2上

编辑主配置文件,全局设置

[root@DNS2 ~]# vi /etc/named.conf

listen-on port 53 { 192.168.6.11; };改成辅助服务器地址

allow-query { any; };

容器域名映射_DNS_25

区域设置(正反向解析文件的位置)

[root@DNS2 ~]# vi /etc/named.rfc1912.zones
添加:
正向解析
zone "aa.com" IN {
        type slave;                        备,辅助                                                          
        masters { 192.168.6.10; };         主ip
        allow-notify { 192.168.6.10; };   允许主通知
        file "slaves/aa.com.zone";  把正向解析文件下载到的文件位置通告
};
反向解析
zone "6.168.192.in-addr.arpa" IN {
        type slave;
        masters { 192.168.6.10; };
        allow-notify { 192.168.6.10; };                                
        file "slaves/aa.com.local";
};

容器域名映射_dns服务器_26

服务开启

[root@DNS2 ~]# systemctl start named(开启后,在slaves目录下会生成两个文件)

容器域名映射_DNS_27

查看生成文件

[root@DNS2 ~]# cd /var/named
[root@DNS2 named]# ls -lh
[root@DNS2 named]# cd slaves/
[root@DNS2 slaves]# ls -lh

容器域名映射_容器域名映射_28

解析服务

[root@DNS2 slaves]# nslookup www.aa.com
[root@DNS2 slaves]# nslookup ftp.aa.com
[root@DNS2 slaves]# nslookup mail.aa.com

容器域名映射_容器域名映射_29

在客户端进行验证
解析本地服务

[root@client ~]# nslookup www.aa.com
[root@client ~]# nslookup ftp.aa.com

正常情况下能看到主DNS服务器信息

容器域名映射_dns服务器_30

这时中断DNS 1 主服务器
在DNS1上

[root@DNS1 named]# systemctl stop named

在客户端再次查看能看到备DNS服务器信息

[root@client ~]# nslookup ftp.aa.com
[root@client ~]# nslookup www.aa.com

容器域名映射_dns服务器_31

三 出现Xshell连接不上虚拟机问题
发现Xshell连接不上
检测手段
查看进程占用

netstat -anpt | grep sshd   查看连接进程
pkill sshd                  根据特定条件终止进程
systemctl start sshd        重启服务

如果发现sshd的端口号不是22

vi /etc/ssh/sshd-config

 修改:Port  22
 去除#  #PermitRootLogin=yes  允许root用户登录
 
systemctl restart sshd

修改网卡地址与VMent1的IP地址相同

vi /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl restart network

查看防火墙是否关闭

systemctl status firewalld
setenforce 0