DNS正向解析,反向解析

目录

一、正向解析

1.下载DNS软件包

2.修改主配置文件 

3.创建区域文件 

4.配置DNS

5.测试

二、反向解析

1.修改主配置文件

2.创建区域文件 

3.测试


一、正向解析

1.下载DNS软件包

[root@www ~]# yum indtall -y bind

 注意:

下载软件前需要配置仓库,挂载

[root@www ~]# cd /etc/yum.repos.d/
[root@www ~]# vi rpm.repo

仓库内容:

[BaseOS]
name=BaseOS
baseurl=/mnt/BaseOS
enable=1
gpgcheck=0
[AppStream]
name=AppStream
baseurl=/mnt/AppStream
enable=1
gpgcheck=0
[root@www ~]# mkdir /mnt
[root@www ~]# mount /dev/sr0 /mnt

 需要在虚拟机中勾选“已连接”,否则挂载不成功

2.修改主配置文件 

[root@www ~]# vim /etc/named.conf
options {
        listen-on port 53 { 192.168.198.142; };
        directory       "/var/named";
};
zone "." IN {
        type hint;
        file "named.ca";
};
zone "haha.com." IN {
        type master;
        file "named.haha";
};
zone "198.168.192.in-addr.arpa" IN {
        type master;
        file "fanxiang";
};

3.创建区域文件 

[root@www ~]# vim /var/named/named.haha
$TTL 1d
@       IN      SOA     @       admin.haha.com. ( 2024070601
                                                        1
                                                        1
                                                        1
                                                        1)
        IN      NS      ns.haha.com.
        IN      MX      10 mail.haha.com.
ns      IN      A       192.168.198.142
mail    IN      A       192.168.198.38
www     IN      A       192.168.198.140
ftp     IN      CNAME   www

4.配置DNS

[root@www ~]# nmcli connection modify ens160 ipv4.dns 192.168.198.2
[root@www ~]# nmcli connection up ens160 
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
[root@www ~]# nmcli device show | grep DNS
IP4.DNS[1]:                             192.168.198.2

5.测试

[root@www ~]# dig -t NS haha.com 

; <<>> DiG 9.16.23-RH <<>> -t NS haha.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3133
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 4

;; QUESTION SECTION:
;haha.com.			IN	NS

;; ANSWER SECTION:
haha.com.		5	IN	NS	ns1.mediatemple.net.
haha.com.		5	IN	NS	ns2.mediatemple.net.

;; ADDITIONAL SECTION:
ns1.mediatemple.net.	5	IN	A	97.74.100.1
ns2.mediatemple.net.	5	IN	A	173.201.68.1
ns1.mediatemple.net.	5	IN	AAAA	2603:5:2140::1
ns2.mediatemple.net.	5	IN	AAAA	2603:5:2240::1

;; Query time: 146 msec
;; SERVER: 192.168.198.2#53(192.168.198.2)
;; WHEN: Sat Jul 06 21:04:15 CST 2024
;; MSG SIZE  rcvd: 165

[root@www ~]# dig -t MX haha.com @192.168.198.142

; <<>> DiG 9.16.23-RH <<>> -t MX haha.com @192.168.198.142
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19808
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: d58cf8c66c0968f801000000668940f6cb52c830e481d508 (good)
;; QUESTION SECTION:
;haha.com.			IN	MX

;; ANSWER SECTION:
haha.com.		86400	IN	MX	10 mail.haha.com.

;; ADDITIONAL SECTION:
mail.haha.com.		86400	IN	A	192.168.198.38

;; Query time: 0 msec
;; SERVER: 192.168.198.142#53(192.168.198.142)
;; WHEN: Sat Jul 06 21:04:54 CST 2024
;; MSG SIZE  rcvd: 102

[root@www ~]# dig -t A www.haha.com

; <<>> DiG 9.16.23-RH <<>> -t A www.haha.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50555
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 4

;; QUESTION SECTION:
;www.haha.com.			IN	A

;; ANSWER SECTION:
www.haha.com.		5	IN	A	68.178.204.6

;; AUTHORITY SECTION:
haha.com.		5	IN	NS	ns1.mediatemple.net.
haha.com.		5	IN	NS	ns2.mediatemple.net.

;; ADDITIONAL SECTION:
ns1.mediatemple.net.	5	IN	A	97.74.100.1
ns2.mediatemple.net.	5	IN	A	173.201.68.1
ns1.mediatemple.net.	5	IN	AAAA	2603:5:2140::1
ns2.mediatemple.net.	5	IN	AAAA	2603:5:2240::1

;; Query time: 210 msec
;; SERVER: 192.168.198.2#53(192.168.198.2)
;; WHEN: Sat Jul 06 21:06:25 CST 2024
;; MSG SIZE  rcvd: 185

[root@www ~]# dig -t A ftp.haha.com 

; <<>> DiG 9.16.23-RH <<>> -t A ftp.haha.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16361
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 4

;; QUESTION SECTION:
;ftp.haha.com.			IN	A

;; ANSWER SECTION:
ftp.haha.com.		5	IN	A	68.178.204.6

;; AUTHORITY SECTION:
haha.com.		5	IN	NS	ns1.mediatemple.net.
haha.com.		5	IN	NS	ns2.mediatemple.net.

;; ADDITIONAL SECTION:
ns1.mediatemple.net.	5	IN	A	97.74.100.1
ns2.mediatemple.net.	5	IN	A	173.201.68.1
ns1.mediatemple.net.	5	IN	AAAA	2603:5:2140::1
ns2.mediatemple.net.	5	IN	AAAA	2603:5:2240::1

;; Query time: 146 msec
;; SERVER: 192.168.198.2#53(192.168.198.2)
;; WHEN: Sat Jul 06 21:08:47 CST 2024
;; MSG SIZE  rcvd: 185

二、反向解析

1.修改主配置文件

[root@www ~]# vim /etc/named.conf
options {
        listen-on port 53 { 192.168.198.142; };
        directory       "/var/named";
        forward only;
        forwarders { 61.134.1.4; };
};
zone "." IN {
        type hint;
        file "named.ca";
};
zone "haha.com." IN {
        type master;
        file "named.haha";
};
zone "198.168.192.in-addr.arpa" IN {
        type master;
        file "fanxiang";
};

2.创建区域文件 

[root@www ~]# vim /var/named/named.haha
$TTL 1d
@       IN      SOA     @       admin.haha.com. ( 2024070601
                                                        1
                                                        1
                                                        1
                                                        1)
        IN      NS      ns.haha.com.
        IN      MX      10 mail.haha.com.
139     IN      PTR     ns.haha.com.
38      IN      PTR     mail.haha.com.
140     IN      PTR     www.haha.com.
140     IN      PTR     ftp.haha.com.

3.测试

[root@www ~]# dig -x 192.168.198.142

; <<>> DiG 9.16.23-RH <<>> -x 192.168.198.142
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 26610
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;142.198.168.192.in-addr.arpa.	IN	PTR

;; AUTHORITY SECTION:
168.192.in-addr.arpa.	5	IN	SOA	168.192.in-addr.arpa. . 0 28800 7200 604800 86400

;; Query time: 11 msec
;; SERVER: 192.168.198.2#53(192.168.198.2)
;; WHEN: Sat Jul 06 21:13:23 CST 2024
;; MSG SIZE  rcvd: 81
[root@www ~]# dig -x 192.168.198.140

; <<>> DiG 9.16.23-RH <<>> -x 192.168.198.140
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 25264
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;140.198.168.192.in-addr.arpa.	IN	PTR

;; AUTHORITY SECTION:
168.192.in-addr.arpa.	5	IN	SOA	168.192.in-addr.arpa. . 0 28800 7200 604800 86400

;; Query time: 2014 msec
;; SERVER: 192.168.198.2#53(192.168.198.2)
;; WHEN: Sat Jul 06 21:16:42 CST 2024
;; MSG SIZE  rcvd: 81

[root@www ~]# dig -x 192.168.198.38

; <<>> DiG 9.16.23-RH <<>> -x 192.168.198.38
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 11998
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;38.198.168.192.in-addr.arpa.	IN	PTR

;; AUTHORITY SECTION:
168.192.in-addr.arpa.	5	IN	SOA	168.192.in-addr.arpa. . 0 28800 7200 604800 86400

;; Query time: 2019 msec
;; SERVER: 192.168.198.2#53(192.168.198.2)
;; WHEN: Sat Jul 06 21:17:22 CST 2024
;; MSG SIZE  rcvd: 80

DNS(Domain Name System,域名系统)是互联网的一项核心服务,它通过将域名转换为对应的IP地址来实现网络资源的访问。DNS解析主要分为正向解析反向解析两种类型。 ### 正向解析 正向解析是指将域名转换为对应的IPv4或IPv6地址的过程。这是最常见的DNS查询方式。例如,当用户在浏览器中输入“www.example.com”时,操作系统会向DNS服务器发送请求,查找该域名对应的IP地址,从而完成网页加载[^1]。 #### 工作原理 - 用户设备发起对目标域名的解析请求。 - 请求首先到达本地DNS缓存,如果缓存中存在该域名的解析记录,则直接返回结果。 - 如果缓存中没有相关记录,请求会被转发到递归解析器(通常是ISP提供的DNS服务器)。 - 递归解析器依次向根域名服务器、顶级域(TLD)服务器以及权威DNS服务器发起查询。 - 权威DNS服务器最终返回目标域名的IP地址给递归解析器,再由递归解析器将结果传递给用户设备。 ### 反向解析 反向解析则是指将IP地址转换为对应的域名的过程。这种解析方式通常用于邮件服务器验证、网络安全审计等场景。例如,邮件服务器可以通过反向解析验证发送方IP地址是否与其声称的域名匹配,以防止垃圾邮件。 #### 工作原理 - 反向解析的核心在于`in-addr.arpa`(IPv4)或`ip6.arpa`(IPv6)特殊域名下的PTR记录。 - 当需要解析一个IP地址时,系统会构造一个针对该IP地址反转后的字符串加上`.in-addr.arpa`的查询。 - 查询过程与正向解析类似,但涉及的是PTR记录而非A记录或AAAA记录。 - 最终,权威DNS服务器返回与该IP地址关联的域名信息。 ### 区别总结 - **目的不同**:正向解析旨在获取域名对应的IP地址;反向解析则相反,用于从IP地址获取对应的域名。 - **记录类型不同**:正向解析依赖于A记录(IPv4)AAAA记录(IPv6),而反向解析依赖于PTR记录。 - **应用场景不同**:正向解析广泛应用于日常上网行为;反向解析多见于网络管理安全领域。 以下是一个简单的示例代码,展示如何使用Python中的`socket`库进行正向反向解析: ```python import socket # 正向解析:域名转IP def forward_lookup(domain): try: ip_address = socket.gethostbyname(domain) print(f"正向解析结果: {domain} -> {ip_address}") except socket.gaierror as e: print(f"正向解析失败: {e}") # 反向解析:IP转域名 def reverse_lookup(ip): try: domain_name = socket.gethostbyaddr(ip) print(f"反向解析结果: {ip} -> {domain_name[0]}") except socket.herror as e: print(f"反向解析失败: {e}") if __name__ == "__main__": forward_lookup("www.example.com") reverse_lookup("93.184.216.34") ``` 上述代码中,`socket.gethostbyname()`用于执行正向解析,而`socket.gethostbyaddr()`用于执行反向解析。这两个函数分别展示了如何通过编程手段实现DNS的基本功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值