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
主机名:www网页 mail邮件
域名解析过程(以www.baidu.com为例)
域名解析过程是分层解析的,一般客户机将解析的请求发送给他的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.ip
cp -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服务器添加一个网卡
注意保证虚拟机的网卡ip地址与VMent1即虚拟网络编辑器的ip在同一网段
新加的网卡ip与以太网ip在同一网段
新加网卡,桥接模式
查看虚拟机之间是否可以通信
项目流程
因为虚拟机存在两个网卡
一个外网网卡,一个内网网卡
1,启用NAT
[root@server2 ~]# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1 永久开启
[root@server2 ~]# sysctl -p NAT,路由功能开启
安装bind(域名解析服务的一个主程序)
[root@server2 ~]# yum -y install bind*
编辑配置文件
[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服务,(客户机范围)
进行域名解析
[root@server2 ~]# nslookup www.google.com 域名解析
只要把网关指向内网网卡,就可以获取里面的缓存
在客户机上
1.修改DNS服务器地址
[root@server1 ~]# vi /etc/resolv.conf 指向同一网段.DNS服务器地址
nameserver 192.168.6.11
网卡设置,解析地址
[root@server1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
[root@server1 ~]# nslookup www.google.com 域名解析
分别选择不同的网址进行测试
www.baidu.com www.sina.com.cn
[root@server2 ~]# nslookup www.baidu.com
[root@server2 ~]# nslookup www.sina.com.cn
服务器上
客户机上
以上就是DNS缓存
主,从DNS服务器
解析
操作流程
实验开始之前需要先配置三台设备在同一网段
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
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 备份
在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
查看文件,拷贝模板,创建区域文件
[root@DNS1 named]# cp -p named.localhost aa.com.zone
[root@DNS1 named]# cp -p named.loopback aa.com.local
编辑配置解析文件
[root@DNS1 named]# vi aa.com.zone 设置正向解析文件
域名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的映射关系
开启服务
[root@DNS1 named]# systemctl start named
验证解析服务:
[root@DNS1 named]# nslookup www.aa.com 本地服务
[root@DNS1 named]# nslookup ftp.aa.com
[root@DNS1 named]# nslookup mail.aa.com
在DNS2上
编辑主配置文件,全局设置
[root@DNS2 ~]# vi /etc/named.conf
listen-on port 53 { 192.168.6.11; };改成辅助服务器地址
allow-query { any; };
区域设置(正反向解析文件的位置)
[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";
};
服务开启
[root@DNS2 ~]# systemctl start named(开启后,在slaves目录下会生成两个文件)
查看生成文件
[root@DNS2 ~]# cd /var/named
[root@DNS2 named]# ls -lh
[root@DNS2 named]# cd slaves/
[root@DNS2 slaves]# ls -lh
解析服务
[root@DNS2 slaves]# nslookup www.aa.com
[root@DNS2 slaves]# nslookup ftp.aa.com
[root@DNS2 slaves]# nslookup mail.aa.com
在客户端进行验证
解析本地服务
[root@client ~]# nslookup www.aa.com
[root@client ~]# nslookup ftp.aa.com
正常情况下能看到主DNS服务器信息
这时中断DNS 1 主服务器
在DNS1上
[root@DNS1 named]# systemctl stop named
在客户端再次查看能看到备DNS服务器信息
[root@client ~]# nslookup ftp.aa.com
[root@client ~]# nslookup www.aa.com
三 出现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