- dns ,domin name service(域名解析服务)
- DNS使用TCP和UDP协议,使用端口号53。对于每一级域名长度的限制是63个字符,
- 域名总长度则不能超过253个字符。 53/TCP:完成区域传送; 53/UDP:完成主机名的解析查询。
DNS是一个按层次结构排列的分布式系统,由许多DNS服务器组成。DNS服务器是注册加入DNS的任何计算机。当你在浏览器中键入域名时,浏览器会询问DNS服务器该域的IP地址是什么,DNS服务器会尝试告诉你,只有通过DNS找到域名对应的ip,才可以正常访问。如果它不知道,那么它会尝试从其他DNS服务器中找出。
内容 | 含义 |
---|---|
A 记录 | ip地址叫做域名的 Address记录 |
SOA | 授权起始主机 |
dns | 顶级 |
. | 自动补齐域名 |
.com .net .org … | 次级 |
- 环境:
- 俩台主机,一台作为dns服务器,第二个作为客户端测试机
- 1. 客户端配置:
- 配置ip为172.25.254.210
- vim /etc/resolv.conf ## dns指向文件
- nameserver 172.25.254.110 (dns服务器的ip) ##文件内容
- host www.baidu.com ##地址解析命令
- dig www.baidu.com ##地址详细解析信息命令,这俩条命令用来测试
- 2. dns服务器配置
- bind ##安装包
- named ##服务名称
- /etc/named.conf ##主配置文件
- /var/named ##数据目录
- 53 ##端口
- 关于报错信息:
- 1. no servers could be reached ##服务无法访问(服务开启?火墙?网络?端口?)
- 2. 服务启动失败 ##配置文件写错 journalctl -xe ## 查询错误或cat /var/log/messages
- 3. dig查询状态
- NOERROR ##表示查询成功
- REFUSED ##服务拒绝访问
- SERVFAIL ##查询记录失败(dns服务器无法到达上级,拒绝缓存)
- NXDOMAIN ##此域名A记录在dns中不存在
- 2.1 dns 服务器配置文件修改的内容
- dnf install bind.x86_64 -y ##安装dns服务
- systemctl enable --now named ##启动dns服务
- vim /etc/named.conf ##编辑dns配置文件
- listen-on port 53 { any; }; ##允许所有人ip都可以访问53端口
- #listen-on-v6 port 53 { ::1; };## ipv6注释掉
- allow-query { any; }; ##允许任何用户使用此dns
- forwarders { 114.114.114.114; }; ##当找不到时,问114.114.114.114高速缓存dns
- dnssec-validation no; ##检验是否授权,花钱认证没有,没有直接不检测
- 3. 测试
- 客户机进行测试
- dig www.baidu.com
no servers could be reached
REFUSED
SERVFAIL,已经访问到,并且接收到了请求,但是此dns服务器解决不了,所以添加114.114.114.114dns服务器来帮忙解决!!
SERVFAIL
NOERROR
- vim /etv/named.conf
- forwarders { 114.114.114.114; };
- 实验在标题2中做
预热知识,提前了解一下。
@变量 | 含义 |
---|---|
主机记录(A记录) | 记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的ip地址上 |
别名记录(CNAME记录) | CNAME记录用于将某个别名指向到某个A记录,这样就不需要再为某个新名字创建一条新的记录 |
ipv4主机记录(A记录) | ipv4的标志,用于将特定的主机名映射到一个主机的ipv4地址 |
ipv6主机记录(AAAA记录) | ipv6的标志,与A记录对应,用于将特定的主机名映射到一个主机的ipv6地址 |
服务位置记录(SRV记录) | 用于定义提供特定服务的服务器的位置,如主机(hostname),端口(port number)等 |
NAPTR记录 | 它提供了正则表达式方式去映射一个域名,NAPTRA记录非常著名的一个应用是用于ENUM查询 |
PTR IPV4/IPV6 | 地址至名称 |
MX | 用于名称的邮件交换器(向何处发送电子邮件) |
NS | nameserver,管理这个域名的服务器的主机的名称 |
SOA | “授权起始”,DNS区域的信息(管理信息) |
文件内容 | 含义 |
---|---|
zone “westos.org” | 自己设置的域名 |
type master | 当前服务器为主dns |
allow-update | 允许更新主机列表 |
file “westos.org.zone” | 域名A记录文件 |
/var/name/westos.org.zone内部文件 | 含义 |
---|---|
TIME-TO-LIVE | DNS地址保存时间长度 |
SOA | SOA授权起始(Start of Authority) |
serial | 域名版本序列号,每次修改ip,都需要+1,别的主机才会同步ip |
refresh | 刷新时间(辅助dns) |
retry | 重试时间(辅助dns) |
expire | 过期时间(辅助dns,查询失败过期,停止对辅助域名的应答) |
minimum | A记录最短有效期 |
CNAME | 域名规范 |
MX 1 | 邮件解析,优先级为1 |
- 1. 先关闭/etc/named.conf中的高速缓存dns
- 2. vim /etc/named.rfc1912.zones ##编辑并添加如下内容
- zone "westos.org" IN {
- type master;
- file "westos.org.zone";
- allow-update { none; };
- };
- 3. 编写解析文件内容如下图
- cp -p name.localhost westos.org.zone ##复制模板文件,一定要复制权限
关闭高速缓存dns
vim /etc/named.rfc1912.zones
编写解析文件内容
完成后重启服务!!!
测试dig zhy.westos.org 查询正向解析
- dnf install postfix mailx -y
- systemctl enable --now postfix ##启动服务
- mail [email protected] ##发送邮件
- mailq ##查询邮件,发现发送不成功
- vim /var/named/westos.org.zone
- westos.org. MX 1 172.25.254.110. 配置文件添加如下命令,MX邮件服务
- mail [email protected] ##
- mailq ##再次发送查询,发现还是不行
- netstat -antlupe | grep master ##查询端口,发现25端口使用的是回环接口
- vim /etc/postfix/main.cf ##修改配置文件,内容如下
- 135行 inet_interfaces=all
- mail [email protected] ##
- mailq ##再次发送查询,发现可以了
- dig -t mx westos.org ##测试
设置配置文件/var/named/westos.org.zone
- vim /etc/named.rfc1912.zones ##编写配置文件,内容如下
- zone "1.168.192.in-addr.arpa" IN {
- type master;
- file "192.168.1.ptr";
- allow-update { none; }
- };
-
- cd /var/named/
- cp -p named.loopback 192.168.1.ptr ##复制一份模板
-
- vim 192.168.1.ptr ##文件内容下图中看,我会标明
- systemctl restart named ##重启服务
- dig -x 192.168.1.333 ##测试(在客户端进行测试)
- dns服务器让不同的人解析不同的网络地址,设置客户端解析外网1.1.1.0网段
- 真机解析192.168.1.0网段
- 配置网址:服务端:ip addr add 1.1.1.110/24 dev enp1s0
- 客户端:ip addr add 1.1.1.210/24 dev enp1s0
- 真机:192.168.1.100 不需要变
- 设置dns解析文件,/etc/resolv.conf 客户机:nameserver=1.1.1.110
- 真机:nameserver=192.168.1.110
- 配置服务端:
- 因为有俩个客户端,一个client,一个真机
- 所以我们需要两份配置文件
- cp -p /var/named/westos.org.zone /var/named/westos.org.inter
- 修改内容:%s/192.168.1/1.1.1/g
- cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.zones.inter
- 修改内容:zone "westos.org" IN {
- type master;
- file "westos.org.inter";
- allow-update { none; }
- };
- vim /etc/named.conf
- 注释掉51-57行 也就是 zone "." IN {
- type hint;
- file "named.ca";
- };
- include "/etc/named.rfc1912.zones";
- 然后编写如下内容:
- view localnet {
- match-clients {192.168.1.0/24; };
- zone "." IN {
- type hint;
- file "named.ca";
- };
- include "/etc/named.rfc1912.zones";
- };
-
- view internet {
- match-clients {1.1.1.0/24; };
- zone "." IN {
- type hint;
- file "named.ca";
- };
- include "/etc/named.rfc1912.zones.inter";
- };
客户机
真机
- 相当于有俩个客户端,现在需要做俩份配置文件
更改/var/named/文件
更改/etc/named.rfc1912.zones 和 /etc/named.rfc1912.zones.inter
完成后重启服务!!!
真机:
客户机
- 服务端:
- 首先注释掉之前的双向解析的内容,还原文件信息,保证实验环境的纯净。也可以不还原。
- vim /etc/named.rfc1912.zones ##书写内容如下:
- zone "westos.org" IN {
- type master;
- file "westos.org.zone";
- allow-update { none; };
- also-notify { 192.168.1.210; }; ##允许210主机作为集群,读取110主机的数据
- };
- 客户端:
- dnf install bind.x86_64 -y ##安装dns服务
- systemctl enable --now named ##启动dns服务
- vim /etc/named.conf ##编辑主配置文件内容如下
- listen-on port 53 { any; };
- allow-query { ant; };
- dnssec-validation no;
- vim /etc/named.rfc1912.zones
- zone “westos.org” IN {
- type slave; ##dns状态位,表示辅助dns
- masters {192.168.1.110; }; ##主dns
- file "slaves/westos.org.zone"; ##同步的数据文件,即配置文件
- };
- systemctl restart named
服务端:
/etc/named.rfc1912.zones
测试:
- vim /var/named/westos.org.zone ##编辑配置文件修改ip
- ##同时修改参数serial ,此参数是递增变化的
- ##每修改一次ip,这个参数设置+1,从属dns自动同步
- systemctl restart named ##重启服务
设置服务端文件内容,增加允许更新的主机ip
- 服务端
- vim /etc/named.rfc1912.zones
- zone "westos.org" IN {
- type master;
- file "westos.org.zone";
- allow-update { 192.168.1.210; }; ##增加这一行,允许210更新110dns服务器
- also-notify { 192.168.1.210; };
- };
-
- 客户端
- nsupdate
- > server 192.168.1.110 ##发送到的dns服务器
- > update add test.westos.org 86400 A 192.168.1.123 ##更新一个网址和ip
- > send ##发送
- > quit ##退出
服务端设置允许更新的ip
客户端删除刚才发送的数据
前言
- rpm -ql bind | less ##分页方式显示bind安装的所有文件
- /etc/rndc.key ##我们可以用来参考里面的密钥类型及用法
- dnssec-keygen --help ##查看密钥加密的帮助
- -a 表示采用什么加密方式 -b 指密钥长度 -n 指加密的类型
-
服务端加密过程及命令
- dnssec-keygen -a HMAC-SHA256 -b 128 -n host westos ##westos是起得名字
- cp -p /etc/rndc.key /etc/westos.key ##复制一份当作模板文件
- vim /etc/westos.key ##编辑此密钥文件,输入以下内容
- key "生成密钥时起的名字" {
- alogrithm hamc-sha256; ##加密类新
- secret “从刚才生成的密钥文件中复制”
- };
- vim /etc/named.conf ##编辑主配置文件,加入密钥信息
- include "/etc/westos.key"; ## 我加在了52行左右
- vim /etc/named.rfc1912.zones ##编辑配置文件,设置允许更新为密钥更新
- zone "westos.org" IN {
- type master;
- file "westos.org.zone";
- allow-update { key westos; };
- also-notify { 192.168.1.210; };
- };
- systemctl restart named ##重启服务
- scp Kwestos.+163+42627.* [email protected]:/mnt ##将密钥发送给210客户端
-
客户端测试:
- nsupdate -k Kwestos.+163+30796.private ##更新成功
客户端的操作:
- 服务端:
- 基础配置的修改
- dnf install dhcp-server ##安装 dhcp服务
- cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf
- 然后修改基础配置,这部分之前学过,我就不写了,我会在下面截图
- ddns配置的修改
- vim /etc/dhcp/dhcpd.conf ##编辑配置文件修改内容,修改内容如下
- ddns-update-style interim;
- key westos {
- algorithm hmac-sha256;
- secret 8dCEDvn8PKKNt+B67aQtNA==; ##密钥时之前生成的
- };
- zone westos.org. {
- primary 127.0..0.1; ##自身作为服务器,所以直接写成回环接口就可以,也可以写成192.168.1.110
- key westos;
- };
- systemctl restart dhcpd
- 测试:
- 服务端修改dhcp服务的ip范围,客户端会自动更新ip
- dig 测试端hostname.westos.org ##是给每一个客户端分配ip,所以需要知道客户端的主机名
- ##即dig 主机名.westos.org
设置客户端的获取ip方式为dhcp方式