Linux系統(tǒng)之dns域名解析全過程
一、dns域名解析介紹
dns,應(yīng)用層協(xié)議
- 作用:域名解析
- 正向解析,將主機名解析成對應(yīng)的IP地址
- 反向解析,將IP地址解析成對應(yīng)的主機名
涉及的軟件
- 軟件: bind
- 服務(wù): named
- 端口: 53/udp (提供解析服務(wù))、53/tcp(提供多個DNS間數(shù)據(jù)同步)
1、DNS核心概念
1.1 區(qū)域 zone
正向區(qū)域
- 一般就是個二級域名, linux.com
反向區(qū)域
- x.x.x.in-addr.arpa
- 10.168.192.in-addr.arpa
1.2 記錄 record
A記錄, 標(biāo)識主機名和IP地址的對應(yīng)關(guān)系
www.jd.com A 123.45.6.78
PTR記錄, 標(biāo)識IP地址和主機名的對應(yīng)關(guān)系
1.1.1.1 PTR test.linux.com
NS記錄, 標(biāo)識DNS服務(wù)器自身, 必須配合A記錄
NS ns1.jd.com ns1.jd.com A 2.2.2.2
MX記錄, 標(biāo)識郵件服務(wù)器, 必須配合A記錄
// 數(shù)字5:優(yōu)先級,數(shù)字越小優(yōu)先級越高 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服務(wù)的配置
1、正向解析的配置
- 關(guān)閉selinux,防火墻
[root@node01 ~]# getenforce Disabled [root@node01 ~]# systemctl status firewalld.service ● firewalld.service Loaded: masked (/dev/null; bad) Active: inactive (dead)
- 安裝bind軟件
[root@node01 ~]# yum install bind -y [root@node01 ~]# rpm -q bind bind-9.11.4-26.P2.el7_9.16.x86_64
- 修改dns主配置文件, named.conf
[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服務(wù)啟動的地址、端口 directory "/var/named"; // 記錄文件的存放位置 allow-query { any; }; // 定義dns服務(wù)可以為哪些主機提供解析 …………………… include "/etc/named.rfc1912.zones";
- 創(chuàng)建區(qū)域
[root@node01 ~]# vim /etc/named.rfc1912.zones zone "linux.com" IN { type master; // 指定區(qū)域類型為master file "linux.com.zone"; // 指定存放記錄的文件名 };
- 創(chuàng)建記錄
[root@node01 ~]# cp -a /var/named/named.localhost /var/named/linux.com.zone -a:保留文件權(quán)限
[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
- 啟動named服務(wù)
[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 默認(rèn)服務(wù)器: public1.alidns.com Address: 223.5.5.5 > server 192.168.140.10 默認(rèn)服務(wù)器: [192.168.140.10] Address: 192.168.140.10 > > ns01.linux.com 服務(wù)器: [192.168.140.10] Address: 192.168.140.10 名稱: ns01.linux.com Address: 192.168.140.10 > www.linux.com 服務(wù)器: [192.168.140.10] Address: 192.168.140.10 名稱: www.linux.com Address: 192.168.10.1 > file.linux.com 服務(wù)器: [192.168.140.10] Address: 192.168.140.10 名稱: file.linux.com Address: 192.168.10.9 > mail.linux.com 服務(wù)器: [192.168.140.10] Address: 192.168.140.10 名稱: mail.linux.com Address: 192.168.10.7 > 192.168.10.7 服務(wù)器: [192.168.140.10] Address: 192.168.140.10 > exit
3、配置反向解析
- 創(chuàng)建反向解析區(qū)域
[root@node01 ~]# vim /etc/named.rfc1912.zones zone "10.168.192.in-addr.arpa" IN { type master; file "192.168.10.zone"; };
- 創(chuàng)建反向區(qū)域?qū)?yīng)的記錄文件
[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.
- 重啟named服務(wù),測試
[root@node01 ~]# systemctl restart named
C:\Users\admin>nslookup 默認(rèn)服務(wù)器: public1.alidns.com Address: 223.5.5.5 > server 192.168.140.10 默認(rèn)服務(wù)器: [192.168.140.10] Address: 192.168.140.10 > 192.168.10.9 服務(wù)器: [192.168.140.10] Address: 192.168.140.10 名稱: file.linux.com Address: 192.168.10.9 > 192.168.10.7 服務(wù)器: [192.168.140.10] Address: 192.168.140.10 名稱: mail.linux.com Address: 192.168.10.7 > exit
4、dns復(fù)制
作用:保證多個dns間的數(shù)據(jù)同步,實現(xiàn)備份
環(huán)境描述
- 192.168.140.10 ns01.linux.com 主DNS
- 192.168.140.11 ns02.linux.com 從DNS
- 從DNS安裝bind軟件
[root@localhost ~]# yum install -y bind
- 修改主DNS上區(qū)域配置文件
[root@node01 ~]# vim /etc/named.rfc1912.zones zone "linux.com" IN { type master; allow-transfer { 從DNS服務(wù)器地址; }; // 允許哪個從來復(fù)制數(shù)據(jù) file "linux.com.zone"; };
- 修改主DNS上記錄文件
[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
- 修改從DNS的主配置文件
[root@node01 ~]# vim /etc/named.conf listen-on port 53 { any; }; allow-query { any; };
- 在從dns上創(chuàng)建和主dns一樣的區(qū)域
[root@localhost ~]# vim /etc/named.rfc1912.zones zone "linux.com" IN { type slave; // 指定區(qū)域類型為slave從 masters { 主DNS服務(wù)器地址; }; file "slaves/linux.com.zone"; };
- 啟動從DNS服務(wù),驗證可以正常復(fù)制記錄文件
[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
- 驗證使用從dns解析主機名
C:\Users\admin>nslookup 默認(rèn)服務(wù)器: public1.alidns.com Address: 223.5.5.5 > server 192.168.140.11 默認(rèn)服務(wù)器: [192.168.140.11] Address: 192.168.140.11 > www.linux.com 服務(wù)器: [192.168.140.11] Address: 192.168.140.11 名稱: www.linux.com Address: 192.168.10.1 > mail.linux.com 服務(wù)器: [192.168.140.11] Address: 192.168.140.11 名稱: mail.linux.com Address: 192.168.10.7
- 驗證數(shù)據(jù)同步
主DNS修改記錄,從DNS會根據(jù)記錄文件中的序列號檢測變化,同步復(fù)制數(shù)據(jù)
[root@node01 ~]# vim /var/named/linux.com.zone 添加一條記錄,修改序列號 [root@node01 ~]# systemctl restart named 驗證使用從dns來解析變化的記錄
三、DNS查詢類型
遞歸查詢
- 只發(fā)送一次DNS請求,等待結(jié)果
- 發(fā)生在客戶端與DNS服務(wù)器間
迭代查詢
- 發(fā)送多次DNS請求
- 發(fā)生在DNS服務(wù)器間
四、hosts文件的使用
保存主機名、IP地址對應(yīng)關(guān)系
- Linux
[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
- Windows
C:\Windows\System32\drivers\etc\hosts
- 主機域名解析的流程
1、先找本地的DNS緩存
2、再找hosts文件
3、向網(wǎng)卡DNS服務(wù)器發(fā)送查詢請求,經(jīng)過多次迭代過程返回結(jié)果
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
PHP程序員玩轉(zhuǎn)Linux系列 自動備份與SVN
這篇文章主要為大家詳細(xì)介紹了PHP程序員玩轉(zhuǎn)Linux系列文章,學(xué)習(xí)自動備份與SVN教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04在Linux服務(wù)器下查看公網(wǎng)IP地址的方法
在接口對接的時候,很多公司需要對方提供公網(wǎng)ip地址來配置對應(yīng)的IP白名單,那么在Linux環(huán)境下怎么查看對應(yīng)服務(wù)器的公網(wǎng)IP呢,所以本文給大家介紹了在Linux服務(wù)器下查看公網(wǎng)IP地址的方法,需要的朋友可以參考下2023-12-12