一、dns域名解析介绍
dns,应用层协议
- 作用:域名解析
- 正向解析,将主机名解析成对应的IP地址
- 反向解析,将IP地址解析成对应的主机名
涉及的软件
- 软件: bind
- 服务: named
- 端口: 53/udp (提供解析服务)、53/tcp(提供多个DNS间数据同步)
1、DNS核心概念
1.1 区域 zone
正向区域
反向区域
- x.x.x.in-addr.arpa
- 10.168.192.in-addr.arpa
1.2 记录 record
A记录, 标识主机名和IP地址的对应关系PTR记录, 标识IP地址和主机名的对应关系- 1.1.1.1 PTR test.linux.com
复制代码 NS记录, 标识DNS服务器自身, 必须配合A记录- NS ns1.jd.com
- ns1.jd.com A 2.2.2.2
复制代码 MX记录, 标识邮件服务器, 必须配合A记录- // 数字5:优先级,数字越小优先级越高
- MX 5 mail1.linux.com
- mail1.linux.com A 3.3.3.3
- MX 10 mail2.linux.com
- mail2.linux.com A 4.4.4.4
复制代码 CNAME记录, 别名记录- www.baidu.com CNAME www.a.shifen.com
复制代码 二、DNS服务的配置
1、正向解析的配置
- [root@node01 ~]# getenforce
- Disabled
- [root@node01 ~]# systemctl status firewalld.service
- ● firewalld.service
- Loaded: masked (/dev/null; bad)
- Active: inactive (dead)
复制代码- [root@node01 ~]# yum install bind -y
- [root@node01 ~]# rpm -q bind
- bind-9.11.4-26.P2.el7_9.16.x86_64
复制代码- [root@node01 ~]# ls -l /etc/named.conf
- -rw-r----- 1 root named 1806 Jun 11 22:41 /etc/named.conf
- [root@node01 ~]# vim /etc/named.conf
- listen-on port 53 { any; }; // 定义dns服务启动的地址、端口
- directory "/var/named"; // 记录文件的存放位置
- allow-query { any; }; // 定义dns服务可以为哪些主机提供解析
- ……………………
- include "/etc/named.rfc1912.zones";
复制代码- [root@node01 ~]# vim /etc/named.rfc1912.zones
- zone "linux.com" IN {
- type master; // 指定区域类型为master
- file "linux.com.zone"; // 指定存放记录的文件名
- };
复制代码- [root@node01 ~]# cp -a /var/named/named.localhost /var/named/linux.com.zone
- -a:保留文件权限
复制代码- [root@node01 ~]# cat /var/named/linux.com.zone
- $TTL 1D
- @ IN SOA linux.com. 454452000.qq.com. (
- 0 ; serial
- 1D ; refresh
- 1H ; retry
- 1W ; expire
- 3H ) ; minimum
- NS ns01.linux.com.
- ns01 A 192.168.140.10
- www A 192.168.10.1
- file A 192.168.10.9
- MX 5 mail.linux.com.
- mail A 192.168.10.7
复制代码- [root@node01 ~]# systemctl enable --now named
- Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
- [root@node01 ~]#
- [root@node01 ~]# ps -elf | grep named
- 5 S named 2911 1 0 80 0 - 171176 sigsus 11:20 ? 00:00:00 /usr/sbin/named -u named -c /etc/named.conf
- 0 S root 2932 1268 0 80 0 - 28203 pipe_w 11:21 pts/0 00:00:00 grep --color=auto named
- [root@node01 ~]#
- [root@node01 ~]#
- [root@node01 ~]# netstat -tunlp | grep named
- tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 2911/named
- tcp6 0 0 ::1:953 :::* LISTEN 2911/named
- tcp6 0 0 ::1:53 :::* LISTEN 2911/named
- udp6 0 0 ::1:53 :::* 2911/named
复制代码 2、测试dns正常工作
- C:\Users\admin>nslookup
- 默认服务器: public1.alidns.com
- Address: 223.5.5.5
- > server 192.168.140.10
- 默认服务器: [192.168.140.10]
- Address: 192.168.140.10
- >
- > ns01.linux.com
- 服务器: [192.168.140.10]
- Address: 192.168.140.10
- 名称: ns01.linux.com
- Address: 192.168.140.10
- > www.linux.com
- 服务器: [192.168.140.10]
- Address: 192.168.140.10
- 名称: www.linux.com
- Address: 192.168.10.1
- > file.linux.com
- 服务器: [192.168.140.10]
- Address: 192.168.140.10
- 名称: file.linux.com
- Address: 192.168.10.9
- > mail.linux.com
- 服务器: [192.168.140.10]
- Address: 192.168.140.10
- 名称: mail.linux.com
- Address: 192.168.10.7
- > 192.168.10.7
- 服务器: [192.168.140.10]
- Address: 192.168.140.10
- > exit
复制代码 3、配置反向解析
- [root@node01 ~]# vim /etc/named.rfc1912.zones
- zone "10.168.192.in-addr.arpa" IN {
- type master;
- file "192.168.10.zone";
- };
复制代码- [root@node01 ~]# cd /var/named/
- [root@node01 named]# cp -a linux.com.zone 192.168.10.zone
复制代码- [root@node01 named]# cat 192.168.10.zone
- $TTL 1D
- @ IN SOA linux.com. 454452000.qq.com. (
- 0 ; serial
- 1D ; refresh
- 1H ; retry
- 1W ; expire
- 3H ) ; minimum
- NS ns01.linux.com.
- ns01 A 192.168.140.10
- 1 PTR www.linux.com.
- 9 PTR file.linux.com.
- 7 PTR mail.linux.com.
复制代码- [root@node01 ~]# systemctl restart named
复制代码- C:\Users\admin>nslookup
- 默认服务器: public1.alidns.com
- Address: 223.5.5.5
- > server 192.168.140.10
- 默认服务器: [192.168.140.10]
- Address: 192.168.140.10
- > 192.168.10.9
- 服务器: [192.168.140.10]
- Address: 192.168.140.10
- 名称: file.linux.com
- Address: 192.168.10.9
- > 192.168.10.7
- 服务器: [192.168.140.10]
- Address: 192.168.140.10
- 名称: mail.linux.com
- Address: 192.168.10.7
- > exit
复制代码 4、dns复制
作用:保证多个dns间的数据同步,实现备份
环境描述
- 192.168.140.10 ns01.linux.com 主DNS
- 192.168.140.11 ns02.linux.com 从DNS
- 从DNS安装bind软件
- [root@localhost ~]# yum install -y bind
复制代码- [root@node01 ~]# vim /etc/named.rfc1912.zones
- zone "linux.com" IN {
- type master;
- allow-transfer { 从DNS服务器地址; }; // 允许哪个从来复制数据
- file "linux.com.zone";
- };
复制代码- [root@node01 ~]# vim /var/named/linux.com.zone
- NS ns01.linux.com.
- NS ns02.linux.com.
- ns01 A 192.168.140.10
- ns02 A 192.168.140.11
- [root@node01 ~]# systemctl restart named
复制代码- [root@node01 ~]# vim /etc/named.conf
- listen-on port 53 { any; };
- allow-query { any; };
复制代码- [root@localhost ~]# vim /etc/named.rfc1912.zones
- zone "linux.com" IN {
- type slave; // 指定区域类型为slave从
- masters { 主DNS服务器地址; };
- file "slaves/linux.com.zone";
- };
复制代码- [root@localhost ~]# systemctl enable --now named
- [root@localhost ~]#
- [root@localhost ~]# netstat -tunlp | grep named
- tcp 0 0 192.168.140.11:53 0.0.0.0:* LISTEN 1475/named
- tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1475/named
- tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1475/named
- tcp6 0 0 ::1:53 :::* LISTEN 1475/named
- tcp6 0 0 ::1:953 :::* LISTEN 1475/named
- udp 0 0 192.168.140.11:53 0.0.0.0:* 1475/named
- udp 0 0 127.0.0.1:53 0.0.0.0:* 1475/named
- udp6 0 0 ::1:53 :::* 1475/named
- [root@localhost ~]#
复制代码- [root@localhost ~]# ls /var/named/slaves/
- linux.com.zone
- [root@localhost ~]# file /var/named/slaves/linux.com.zone
- /var/named/slaves/linux.com.zone: data
复制代码- C:\Users\admin>nslookup
- 默认服务器: public1.alidns.com
- Address: 223.5.5.5
- > server 192.168.140.11
- 默认服务器: [192.168.140.11]
- Address: 192.168.140.11
- > www.linux.com
- 服务器: [192.168.140.11]
- Address: 192.168.140.11
- 名称: www.linux.com
- Address: 192.168.10.1
- > mail.linux.com
- 服务器: [192.168.140.11]
- Address: 192.168.140.11
- 名称: mail.linux.com
- Address: 192.168.10.7
复制代码 主DNS修改记录,从DNS会根据记录文件中的序列号检测变化,同步复制数据- [root@node01 ~]# vim /var/named/linux.com.zone
- 添加一条记录,修改序列号
-
- [root@node01 ~]# systemctl restart named
- 验证使用从dns来解析变化的记录
复制代码 三、DNS查询类型
递归查询
- 只发送一次DNS请求,等待结果
- 发生在客户端与DNS服务器间
迭代查询
四、hosts文件的使用
保存主机名、IP地址对应关系
- [root@node01 ~]# cat /etc/hosts
- 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
- ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
- 10.11.0.254 file.linux.com
复制代码- C:\Windows\System32\drivers\etc\hosts
复制代码 1、先找本地的DNS缓存
2、再找hosts文件
3、向网卡DNS服务器发送查询请求,经过多次迭代过程返回结果
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
来源:互联网
免责声明:如果侵犯了您的权益,请联系站长(1277306191@qq.com),我们会及时删除侵权内容,谢谢合作! |