DNS——域名解析协议(将域名转化成ip地址)
192.168.0.0—— ip地址过长而且都是数字,不方便记忆实验出现了域名
www.baidu.com?——域名都是有含义的,方便人们记忆
TCP 53号端口:连接DNS服务器
UDP 53号端口:解析DNS
正向解析: 根据域名查找对应的IP地址(A记录)
反向解析: 根据IP地址查找对应的域名(反垃圾邮件的验证)(P记录)
分离解析: 同一个dns服务器,同一个域名情况下,不同网段进行访问会解析出不同的IP地址。
DNS:Domain Name System 域名系统,应用层协议,是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,基于C/S架构,服务器端:53/udp, 53/tcp实际上,每一台 DNS 服务器都只负责管理一个有限范围(一个或几个域)内的主机域 名和 IP 地址的对应关系,这些特定的 DNS 域或 IP 地址段称为 zone(区域)。根据地址解 析的方向不同,DNS 区域相应地分为正向区域(包含域名到 IP 地址的解析记录)和反向区 域(包含 IP 地址到域名的解析记录)
本地名称解析配置文件
在Linux系统中负责ip地址与域名快速解析的文件
通常将常用的域名和ip地址映射加入hosts文件中,实现快速访问。
集中管理,类似于中央集权
路径:/etc/hosts
?如何实现域名和IP地址的一一对应关系?
系统会通过一个本地HOSTS文件,来实现域名转换IP地址额功能。hosts 文件包括主机名和 IP 地址的对应关系。当需要通过主机名访问主机时,它就会查看本地的 hosts 文件,从文件中找到相对应的 IP 地址,然后进行报文发送。如果在 hosts 文件中没找到相关信息,则主机访问失败。
修改dns的优先级:?
vim /etc/nsswitch.conf? ? ? ? ? ? ? ? ? ? ? #打开配置编辑器
hosts: files dns myhostname? ? ? ? ? #修改 files和 dns的先后 优先级就会改变
实验:
1.写入hosts文件 :
vim /etc/hosts
?2.ping网址:
3.修改前后顺序
4.此时使用的是本地域名服务器
所有的域名解析都需要根域
.——根域:根的dns服务器只能解析主机名+根域
.com——一级域:级域的dns服务器只能解析主机名+一级域+根
.baidu—— 二级域:二级域的dns服务器主机名+二级域+一级域+根域
www ——主机名
递归查询:问一次就得到
迭代查询:透露消息然你去找,要问多次
我要访问www.baidu.com 服务器:
1.先看我本机的hosts文件,如果有直接访问,如果没有就去找你设置的缓存dns服务器
2.如果缓存服务器有,直接反馈结果(递归),如果没有就需要迭代查询,直接去找根域服务
3.由于根域服务器只能解析根无法解析www.baidu.com但是根域服务器让你去找一级域服务器
4.一级域发现自己也解析不了,让你去找二级域
5.二级域发现这台服务器在自己的管理范围内,直接反馈结果给缓存服务器
6.缓存服务器再交给客户
权威dns服务器:最后解析成功的服务器成为权威服务器
DNS服务器软件:bind,powerdns,dnsmasq,unbound,coredns
bind:服务器
bind-libs:相关库
bind-utils: 客户端
bind-chroot: 安全包,将dns相关文件放至 /var/named/chroot/
分布式的管理:外网 ? 一级管一级
解析域名对应的IP地址和别名等信息
语法格式:
host [参数] [主机名或IP] [server]
选项:
-a?? ?显示详细的DNS信息
-c?? ?指定查询类型,默认值为“IN”
-C?? ?查询指定主机的完整的SOA记录
-r?? ?不使用递归的查询方式查询域名
-t?? ?指定查询的域名信息类型
-v?? ?显示指令执行的详细信息
-w?? ?如果域名服务器没有给出应答信息,则总是等待,直到域名服务器给出应答
-W?? ?指定域名查询的最长时间,如果在指定时间内域名服务器没有给出应答信息则退出
-4?? ?使用IPv4查询传输 (默认)
-6?? ?使用IPv6查询传输
在使用nslookup之前,先确保已经安装了它,nslookup属于bind-utils包下一个命令
nslookup有两种工作模式:“交互模式”和“非交互模式”。在命令行中直接输入nslookup,无需输入任何参数即进入交互模式,由“>”提示
通式:
nslookup [参数] [域名]
它是一个用来灵活查询DNS的工具,它会打印出DNS域名服务器的回应,主要用来从DNS域名服务器查询主机地址信息
dig命令与nslookup命令功能基本相同,但是dig命令灵活性好、易用、输出清晰
通式:
dig [参数] [IP]
?
正向解析:?根据域名查找对应的IP地址(A记录)
先安装软件:
bind ?安装包的名字
named ? 程序的名字
named程序的主要文件:
/etc/named.conf ? 主配置文件
/etc/named.rfc1912.zones ? 子配置文件 ?域名配置文件
/var/named/数据库文件 ? ? 定义了域名和ip地址的对应关系
1.
yum install bind* -y——安装bind包
2.
systemctl start named
vim /etc/named.conf?——更改主配置文件
3.
vim /etc/named.rfc1912.zones——域名配置文件:
?????
?4.
cd? /var/named———切换目录
cp -a named.localhost lxc.com.zone ——将主机的配置的文件内容复制到指定要配置的文件中
vim?lxc.com .zone? ——打开要配置的文件
SOA 记录类型:
A? 正向解析(将域名地址翻译成ip地址)
NS? ?域名服务器
CNAME? ?别名
PTR? ?反向解析(将ip地址解析成域名)??
5.
vim /etc/sysconfig/network-scripts/ifcfg-ens33 ——更改dns
6.?
systemctl start named——开启named服务
systemctl restart network——重启网络
cat /etc/resolv.conf——查看当前使用的dns
7.域名解析查看:
?
反向解析:?根据ip地址查找对应的域名((P记录)?
1.在正向解析配置下配置反向解析;
vim /etc/named.rfc1912.zones——打开域名配置文件新增域名
2.
cp -a lxc.com.zone gg.com.zone——把正向解析的配置复制到反向解析的配置中更改
?3.
vim gg.com.zone——修改数据库文件
4.查看
5.host反向解析查看
实验环境:
主服务器地址:172.16.195.10
从服务器地址:172.16.195.20
主服务器配置:
1.
yum install bind* -y——安装bind包
?
2.
vim /etc/sysconfig/network-scripts/ifcfg-ens33 ——?设置两个dns
3.
cd /var/named/——切换目录
vim /etc/named.conf——更改主配置文件
?4.
cp -a named.localhost lxc.com.zone——复制配置文件到目标文件中
vim lxc.com.zone——更改配置文件
?
5.?
vim /etc/named.rfc1912.zones ——添加域名配置文件
6.
dig解析
从服务器配置:
1.
vim /etc/sysconfig/network-scripts/ifcfg-ens33
2.
vim /etc/named.conf
?
3.?
vim /etc/named.rfc1912.zones?
4.
查看
主从实验:?
?