DNS服務(wù)(Linux)
DNS 介紹
dns,Domain Name Server,它的作用是將域名解析為 IP 地址,或者將IP地址解析為域名。
這需要運(yùn)行在三層和四層,也就是說(shuō)它需要使用 TCP 或UDP 協(xié)議,并且需要綁定端口,53。在使用時(shí)先通過(guò) UDP 去查詢(xún),哪里 UDP 查詢(xún)不到再使用 TCP 查詢(xún)。
bind軟件
安裝
[root@localhost ~]# dnf install bind -y Updating Subscription Management repositories. Unable to read consumer identity This system is not registered with an entitlement server. You can use "rhc" or "subscription-manager" to register. BaseOS 2.7 MB/s | 2.7 kB 00:00 AppStream 2.9 MB/s | 3.2 kB 00:00 Dependencies resolved. ============================================================================================================================== Package Architecture Version Repository Size ============================================================================================================================== Installing: bind x86_64 32:9.16.23-24.el9_5 appStream 509 k Installing dependencies: bind-dnssec-doc noarch 32:9.16.23-24.el9_5 appStream 49 k bind-libs x86_64 32:9.16.23-24.el9_5 appStream 1.2 M bind-license noarch 32:9.16.23-24.el9_5 appStream 14 k fstrm x86_64 0.6.1-3.el9 appStream 30 k libmaxminddb x86_64 1.5.2-4.el9 appStream 35 k libuv x86_64 1:1.42.0-2.el9_4 appStream 151 k protobuf-c x86_64 1.3.3-13.el9 baseOS 37 k python3-bind noarch 32:9.16.23-24.el9_5 appStream 72 k python3-ply noarch 3.11-14.el9 baseOS 111 k Installing weak dependencies: bind-dnssec-utils x86_64 32:9.16.23-24.el9_5 appStream 122 k bind-utils x86_64 32:9.16.23-24.el9_5 appStream 213 k Transaction Summary ============================================================================================================================== Install 12 Packages Total size: 2.6 M Installed size: 7.2 M Downloading Packages: Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : bind-license-32:9.16.23-24.el9_5.noarch 1/12 Installing : protobuf-c-1.3.3-13.el9.x86_64 2/12 Installing : libuv-1:1.42.0-2.el9_4.x86_64 3/12 Installing : libmaxminddb-1.5.2-4.el9.x86_64 4/12 Installing : fstrm-0.6.1-3.el9.x86_64 5/12 Installing : bind-libs-32:9.16.23-24.el9_5.x86_64 6/12 Installing : bind-utils-32:9.16.23-24.el9_5.x86_64 7/12 Installing : bind-dnssec-doc-32:9.16.23-24.el9_5.noarch 8/12 Installing : python3-ply-3.11-14.el9.noarch 9/12 Installing : python3-bind-32:9.16.23-24.el9_5.noarch 10/12 Installing : bind-dnssec-utils-32:9.16.23-24.el9_5.x86_64 11/12 Running scriptlet: bind-32:9.16.23-24.el9_5.x86_64 12/12 Installing : bind-32:9.16.23-24.el9_5.x86_64 12/12 Running scriptlet: bind-32:9.16.23-24.el9_5.x86_64 12/12 Verifying : protobuf-c-1.3.3-13.el9.x86_64 1/12 Verifying : python3-ply-3.11-14.el9.noarch 2/12 Verifying : bind-32:9.16.23-24.el9_5.x86_64 3/12 Verifying : bind-dnssec-doc-32:9.16.23-24.el9_5.noarch 4/12 Verifying : bind-dnssec-utils-32:9.16.23-24.el9_5.x86_64 5/12 Verifying : bind-libs-32:9.16.23-24.el9_5.x86_64 6/12 Verifying : bind-license-32:9.16.23-24.el9_5.noarch 7/12 Verifying : bind-utils-32:9.16.23-24.el9_5.x86_64 8/12 Verifying : fstrm-0.6.1-3.el9.x86_64 9/12 Verifying : libmaxminddb-1.5.2-4.el9.x86_64 10/12 Verifying : libuv-1:1.42.0-2.el9_4.x86_64 11/12 Verifying : python3-bind-32:9.16.23-24.el9_5.noarch 12/12 Installed products updated. Installed: bind-32:9.16.23-24.el9_5.x86_64 bind-dnssec-doc-32:9.16.23-24.el9_5.noarch bind-dnssec-utils-32:9.16.23-24.el9_5.x86_64 bind-libs-32:9.16.23-24.el9_5.x86_64 bind-license-32:9.16.23-24.el9_5.noarch bind-utils-32:9.16.23-24.el9_5.x86_64 fstrm-0.6.1-3.el9.x86_64 libmaxminddb-1.5.2-4.el9.x86_64 libuv-1:1.42.0-2.el9_4.x86_64 protobuf-c-1.3.3-13.el9.x86_64 python3-bind-32:9.16.23-24.el9_5.noarch python3-ply-3.11-14.el9.noarch Complete! DNS 服務(wù)中的 bind bind(Berkeley Internet Name Domain)是 Linux 系統(tǒng)中廣泛使用的 DNS(Domain Name System)服務(wù)器軟件。 功能:它的主要功能是將域名解析為 IP 地址,或者將 IP 地址反向解析為域名。借助 bind,你可以搭建自己的 DNS 服務(wù)器,對(duì)域名解析進(jìn)行管理和配置。 配置:bind 的配置文件通常位于 /etc/bind 目錄下,主要的配置文件是 named.conf,而區(qū)域文件則用于定義具體的域名解析規(guī)則。 示例配置: // named.conf.options options { directory "/var/cache/bind"; forwarders { 8.8.8.8; 8.8.4.4; }; dnssec-validation auto; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { any; }; }; // named.conf.local zone "example.com" { type master; file "/etc/bind/db.example.com"; }; // db.example.com $TTL 604800 @ IN SOA ns1.example.com. admin.example.com. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns1.example.com. @ IN A 192.168.1.100 ns1 IN A 192.168.1.100 www IN A 192.168.1.100 在這些配置文件中,定義了 DNS 服務(wù)器的全局選項(xiàng)、域名區(qū)域以及具體的解析記錄。通過(guò)配置 bind,你可以讓 DNS 服務(wù)器依據(jù)這些規(guī)則進(jìn)行域名解析。
查看
[root@localhost ~]# rpm -ql bind /etc/named.conf # 主配置文件 /etc/named.rfc1912.zones # 區(qū)域數(shù)據(jù)配置文件 ...... /var/named # 區(qū)域數(shù)據(jù)文件存放目錄 /var/named/named.empty # 正向解析模板文件 /var/named/named.localhost /var/named/named.loopback # 反向解析模板文件 /var/named/slaves # 輔助區(qū)域配置文件存放目錄 ....... /usr/lib/systemd/system/named.service # 服務(wù)啟動(dòng)文件
查看正向解析模板文件
[root@localhost ~]# cat /var/named/named.empty $TTL 3H @ IN SOA @ rname.invalid. ( 0 ; serial 序號(hào) 1D ; refresh 刷新時(shí)間 1H ; retry 重試時(shí)間 1W ; expire 過(guò)期時(shí)間 3H ) ; minimum 否定緩存時(shí)間 NS @ A 127.0.0.1 AAAA ::1 整體結(jié)構(gòu)概述 此區(qū)域文件包含了起始授權(quán)機(jī)構(gòu)(SOA)記錄、名稱(chēng)服務(wù)器(NS)記錄、IPv4 地址記錄(A)和 IPv6 地址記錄(AAAA)。這些記錄為 DNS 解析提供了關(guān)鍵信息。 詳細(xì)解釋 1. $TTL 3H $TTL 是一個(gè)指令,用來(lái)設(shè)置該區(qū)域文件里所有資源記錄的默認(rèn)生存時(shí)間(Time To Live)。 3H 代表 3 小時(shí),意味著這些記錄在 DNS 緩存中的有效時(shí)長(zhǎng)為 3 小時(shí)。超過(guò)這個(gè)時(shí)間,緩存中的記錄將被視為無(wú)效,需要重新從權(quán)威 DNS 服務(wù)器獲取。 2. @ IN SOA @ rname.invalid. ( @:在區(qū)域文件里,@ 是一個(gè)占位符,代表該區(qū)域的域名。一般而言,它會(huì)被替換為該區(qū)域的實(shí)際域名。 IN:表明這是一個(gè) Internet 類(lèi)的 DNS 記錄,這是最常見(jiàn)的 DNS 記錄類(lèi)型。 SOA:即起始授權(quán)機(jī)構(gòu)(Start of Authority)記錄,它是每個(gè) DNS 區(qū)域文件中必不可少的記錄,為該區(qū)域提供權(quán)威信息。 @:作為主名稱(chēng)服務(wù)器,這里的 @ 同樣代表該區(qū)域的域名。 rname.invalid.:這是負(fù)責(zé)該區(qū)域的管理員的電子郵件地址。由于 DNS 不允許使用 @ 符號(hào),所以用 . 來(lái)替代。比如 rname.invalid. 實(shí)際上代表 rname@invalid。 3. 序列號(hào)及相關(guān)時(shí)間參數(shù) plaintext 0 ; serial 序號(hào) 1D ; refresh 刷新時(shí)間 1H ; retry 重試時(shí)間 1W ; expire 過(guò)期時(shí)間 3H ; minimum 否定緩存時(shí)間 serial(序列號(hào)):其值為 0,這個(gè)序列號(hào)用于標(biāo)識(shí)區(qū)域文件的版本。當(dāng)區(qū)域文件內(nèi)容有更新時(shí),序列號(hào)需要增加,這樣從屬 DNS 服務(wù)器就能通過(guò)比較序列號(hào)來(lái)判斷是否需要更新本地緩存。 refresh(刷新時(shí)間):1D 代表 1 天,從屬 DNS 服務(wù)器每隔 1 天就會(huì)嘗試從主 DNS 服務(wù)器獲取最新的區(qū)域文件。 retry(重試時(shí)間):1H 代表 1 小時(shí),若從屬 DNS 服務(wù)器在刷新區(qū)域文件時(shí)失敗,會(huì)在 1 小時(shí)后再次嘗試。 expire(過(guò)期時(shí)間):1W 代表 1 周,若從屬 DNS 服務(wù)器在 1 周內(nèi)都無(wú)法從主 DNS 服務(wù)器獲取最新的區(qū)域文件,那么它將認(rèn)為該區(qū)域文件已過(guò)期,不再提供該區(qū)域的解析服務(wù)。 minimum(否定緩存時(shí)間):3H 代表 3 小時(shí),當(dāng) DNS 查詢(xún)得到否定響應(yīng)(如域名不存在)時(shí),該否定響應(yīng)會(huì)在緩存中保留 3 小時(shí)。 4. NS @ NS:即名稱(chēng)服務(wù)器(Name Server)記錄,它指定了負(fù)責(zé)該區(qū)域的 DNS 服務(wù)器。 @:這里代表該區(qū)域的域名,表明該區(qū)域的權(quán)威 DNS 服務(wù)器就是該區(qū)域本身。 5. A 127.0.0.1 A:是 IPv4 地址記錄,它將域名映射到對(duì)應(yīng)的 IPv4 地址。 127.0.0.1:這是本地回環(huán)地址,意味著該區(qū)域的域名解析到本地主機(jī)。 6. AAAA ::1 AAAA:為 IPv6 地址記錄,它把域名映射到對(duì)應(yīng)的 IPv6 地址。 ::1:這是 IPv6 的本地回環(huán)地址,表明該區(qū)域的域名在 IPv6 環(huán)境下解析到本地主機(jī)。 總結(jié) 這個(gè) named.empty 文件構(gòu)建了一個(gè)基礎(chǔ)的 DNS 區(qū)域,把域名解析到本地主機(jī),并且設(shè)定了區(qū)域文件的更新和緩存策略。在實(shí)際應(yīng)用中,你需要依據(jù)具體需求對(duì)這些記錄進(jìn)行修改和擴(kuò)展。
查看反向解析模板文件
[root@localhost ~]# cat /var/named/named.loopback $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 AAAA ::1 PTR localhost. 1. PTR 記錄的用途 正常情況下,DNS 的正向解析是把域名解析為 IP 地址,比如通過(guò) www.example.com 解析出對(duì)應(yīng)的 IP 地址(如 192.168.1.100)。而反向解析則是相反的過(guò)程,它依據(jù) IP 地址找出對(duì)應(yīng)的域名。反向解析在很多場(chǎng)景中都很重要,例如郵件服務(wù)器驗(yàn)證、網(wǎng)絡(luò)安全審計(jì)等。 2. PTR localhost. 的具體解釋 PTR:這是記錄類(lèi)型,表明這是一條反向解析記錄。 localhost.:這是與 IP 地址對(duì)應(yīng)的域名。結(jié)合前面的 A 記錄 A 127.0.0.1 和 AAAA 記錄 AAAA ::1,這里的 PTR localhost. 表示將 IPv4 地址 127.0.0.1 和 IPv6 地址 ::1 反向解析為域名 localhost.。
服務(wù)啟動(dòng)文件
[root@localhost ~]# cat /usr/lib/systemd/system/named.service [Unit] Description=Berkeley Internet Name Domain (DNS) Wants=nss-lookup.target Wants=named-setup-rndc.service Before=nss-lookup.target After=named-setup-rndc.service After=network.target [Service] Type=forking Environment=NAMEDCONF=/etc/named.conf EnvironmentFile=-/etc/sysconfig/named Environment=KRB5_KTNAME=/etc/named.keytab PIDFile=/run/named/named.pid ExecStartPre=/bin/bash -c 'if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi' ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS ExecReload=/bin/sh -c 'if /usr/sbin/rndc null > /dev/null 2>&1; then /usr/sbin/rndc reload; else /bin/kill -HUP $MAINPID; fi' ExecStop=/bin/sh -c '/usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID' PrivateTmp=true [Install] WantedBy=multi-user.target
查看主配置文件
[root@localhost~]# cat /etc/named.conf # 配置的核心選項(xiàng) options { # 監(jiān)聽(tīng)哪個(gè)主機(jī)的 53 端口,以IPv4的格式來(lái)監(jiān)聽(tīng),一般寫(xiě)當(dāng)前主機(jī)的IP地址。注意此文件中每一行結(jié)束使用的分號(hào) listen-on port53{127.0.0.1; }; listen-on-v6port53{ ::1; }; # 指定區(qū)域數(shù)據(jù)文件存放目錄 directory "/var/named"; # 指定緩存文件所在路徑 dump-file "/var/named/data/cache_dump.db"; # 指定統(tǒng)計(jì)文件所在路徑 statistics-file"/var/named/data/named_stats.txt"; memstatistics-file"/var/named/data/named_mem_stats.txt"; # 指定安全文件所在路徑 secroots-file "/var/named/data/named.secroots"; recursing-file "/var/named/data/named.recursing"; # 是否允許查詢(xún),此配置可以刪除,如果允許所有人查詢(xún),將它的值設(shè)置為 any,如果值為 localhost則表示只能當(dāng)前主機(jī)查詢(xún) allow-query { localhost; }; # 是否允許遞歸查詢(xún),一般會(huì)設(shè)置為 false recursion yes; dnssec-validation yes; managed-keys-directory"/var/named/dynamic"; geoip-directory"/usr/share/GeoIP"; # 進(jìn)程pid文件 pid-file"/run/named/named.pid"; session-keyfile"/run/named/session.key"; # 包含的配置 include"/etc/crypto-policies/back-ends/bind.config"; }; # 日志配置 logging { channel default_debug { file"data/named.run"; severity dynamic; }; }; # 根服務(wù)配置 zone"."IN { type hint; file"named.ca"; }; # 引入的區(qū)域數(shù)據(jù)配置文件 include"/etc/named.rfc1912.zones"; include"/etc/named.root.key";
DNS正向解析配置
需求:將 www.example.com 解析為你們電腦中虛擬機(jī)的IP地址,比如我們 IP是 192.168.153.7
實(shí)現(xiàn)步驟
1、安裝bind軟件
2、修改主配置文件
[root@localhost ~]# vim /etc/named.conf options { listen-on port 53 { 192.168.72.135; }; directory "/var/named"; }; zone "example.com" IN { type master; file "example.zone"; }; 詳細(xì)解釋?zhuān)?全局選項(xiàng)部分(options 塊) options { listen-on port 53 { 192.168.72.135; }; directory "/var/named"; }; listen-on port 53 { 192.168.72.135; }; listen-on:此指令用于指定 DNS 服務(wù)器監(jiān)聽(tīng)的網(wǎng)絡(luò)接口和端口。 port 53:表明 DNS 服務(wù)器將在 TCP 和 UDP 的 53 號(hào)端口上監(jiān)聽(tīng)請(qǐng)求,因?yàn)?53 號(hào)端口是 DNS 服務(wù)的標(biāo)準(zhǔn)端口。 { 192.168.72.135; }:這里指定了 DNS 服務(wù)器僅監(jiān)聽(tīng) IP 地址為 192.168.72.135 的網(wǎng)絡(luò)接口。也就是說(shuō),只有發(fā)往該 IP 地址 53 號(hào)端口的 DNS 請(qǐng)求才會(huì)被處理。如果有多塊網(wǎng)卡或多個(gè) IP 地址,你可以添加多個(gè) IP 地址,例如 { 192.168.72.135; 192.168.72.136; }。 directory "/var/named"; directory:該指令定義了 DNS 服務(wù)器查找區(qū)域文件的默認(rèn)目錄。區(qū)域文件包含了域名到 IP 地址的映射等 DNS 記錄。在這個(gè)配置中,所有區(qū)域文件都將從 /var/named 目錄下查找。例如,后續(xù)配置中提到的 example.zone 文件就會(huì)在這個(gè)目錄下尋找。 區(qū)域配置部分(zone 塊) zone "example.com" IN { type master; file "example.zone"; }; zone "example.com" IN zone:這是定義一個(gè) DNS 區(qū)域的關(guān)鍵字。 "example.com":指定了要配置的域名區(qū)域,即 example.com。這個(gè)區(qū)域包含了與 example.com 相關(guān)的所有 DNS 記錄。 IN:表示這是一個(gè) Internet 類(lèi)的 DNS 區(qū)域,這是最常見(jiàn)的區(qū)域類(lèi)型。 type master; type:用于指定該區(qū)域的類(lèi)型,這里的 master 表明這臺(tái) DNS 服務(wù)器是 example.com 區(qū)域的主服務(wù)器。主服務(wù)器擁有該區(qū)域的權(quán)威數(shù)據(jù),它可以對(duì)區(qū)域文件進(jìn)行修改,并將更新同步給從屬服務(wù)器。 file "example.zone"; file:指定了存儲(chǔ)該區(qū)域 DNS 記錄的文件名稱(chēng)。在這個(gè)配置中,example.com 區(qū)域的所有 DNS 記錄都存儲(chǔ)在 /var/named/example.zone 文件中。該文件應(yīng)包含如 SOA(起始授權(quán)機(jī)構(gòu))、NS(名稱(chēng)服務(wù)器)、A(IPv4 地址記錄)等各種 DNS 記錄。 總結(jié) 這個(gè)配置文件的主要作用是讓 DNS 服務(wù)器監(jiān)聽(tīng)特定 IP 地址的 53 號(hào)端口,將 /var/named 作為區(qū)域文件的存儲(chǔ)目錄,并將 example.com 區(qū)域的管理職責(zé)賦予這臺(tái)服務(wù)器,相關(guān)的 DNS 記錄存儲(chǔ)在 example.zone 文件中。
3、檢測(cè)主配置文件是否有語(yǔ)法錯(cuò)誤
[root@localhost ~]# named-checkconf [root@tomcat1 /]# named-checkconf /etc/named.conf '{' expected near '53' 有提示說(shuō)明有錯(cuò)誤,沒(méi)有提示說(shuō)明正確,以上錯(cuò)誤可能是你沒(méi)寫(xiě)port
執(zhí)行這條命令后,如果沒(méi)有輸出任何信息表示主配置文件沒(méi)有錯(cuò)誤。
4、編寫(xiě)區(qū)域數(shù)據(jù)配置文件
[root@localhost ~]# vim /var/named/example.zone $TTL 1D @ IN SOA ns.example.com. admin.example.com. ( 0 1H 1W 2M 1D ) IN NS ns IN MX 5 mail ns IN A 192.168.72.135 # NS 記錄要批向當(dāng)前DNS服務(wù)器的IP地址 www IN A 10.10.10.11 mail IN A 92.68.22.14 web IN CNAME www # CNAME記錄是別名記錄 你提供的 example.zone 文件是一個(gè) DNS 區(qū)域文件,用于定義 example.com 域名的 DNS 記錄。下面為你詳細(xì)解釋文件中各部分的含義: 1. $TTL 1D $TTL 是一個(gè)指令,用于設(shè)置該區(qū)域文件中所有資源記錄的默認(rèn)生存時(shí)間(Time To Live)。 1D 表示 1 天,意味著這些記錄在 DNS 緩存中的有效時(shí)間為 1 天。超過(guò)這個(gè)時(shí)間,緩存中的記錄將被視為無(wú)效,需要重新從權(quán)威 DNS 服務(wù)器獲取。 2. @ IN SOA ns.example.com. admin.example.com. (...) @:在區(qū)域文件中,@ 是一個(gè)占位符,代表該區(qū)域的域名,即 example.com。 IN:表示這是一個(gè) Internet 類(lèi)的 DNS 記錄,這是最常見(jiàn)的 DNS 記錄類(lèi)型。 SOA:即起始授權(quán)機(jī)構(gòu)(Start of Authority)記錄,是每個(gè) DNS 區(qū)域文件中必須存在的記錄,為該區(qū)域提供權(quán)威信息。 ns.example.com.:主名稱(chēng)服務(wù)器的域名,負(fù)責(zé)該區(qū)域的 DNS 解析。 admin.example.com.:負(fù)責(zé)該區(qū)域的管理員的電子郵件地址。由于 DNS 不允許使用 @ 符號(hào),所以用 . 來(lái)替代。例如 admin.example.com. 實(shí)際上代表 admin@example.com。 序列號(hào)及相關(guān)時(shí)間參數(shù) plaintext 0 ; serial 序列號(hào) 1H ; refresh 刷新時(shí)間 1W ; retry 重試時(shí)間 2M ; expire 過(guò)期時(shí)間 1D ; minimum 否定緩存時(shí)間 serial(序列號(hào)):值為 0,這個(gè)序列號(hào)用于標(biāo)識(shí)區(qū)域文件的版本。當(dāng)區(qū)域文件內(nèi)容有更新時(shí),序列號(hào)需要增加,以便從屬 DNS 服務(wù)器通過(guò)比較序列號(hào)來(lái)判斷是否需要更新本地緩存。 refresh(刷新時(shí)間):1H 表示 1 小時(shí),從屬 DNS 服務(wù)器每隔 1 小時(shí)會(huì)嘗試從主 DNS 服務(wù)器獲取最新的區(qū)域文件。 retry(重試時(shí)間):1W 表示 1 周,如果從屬 DNS 服務(wù)器在刷新區(qū)域文件時(shí)失敗,會(huì)在 1 周后再次嘗試。 expire(過(guò)期時(shí)間):2M 表示 2 個(gè)月,如果從屬 DNS 服務(wù)器在 2 個(gè)月內(nèi)都無(wú)法從主 DNS 服務(wù)器獲取最新的區(qū)域文件,那么它將認(rèn)為該區(qū)域文件已過(guò)期,不再提供該區(qū)域的解析服務(wù)。 minimum(否定緩存時(shí)間):1D 表示 1 天,當(dāng) DNS 查詢(xún)得到否定響應(yīng)(如域名不存在)時(shí),該否定響應(yīng)會(huì)在緩存中保留 1 天。 3. IN NS ns NS:即名稱(chēng)服務(wù)器(Name Server)記錄,指定了負(fù)責(zé)該區(qū)域的 DNS 服務(wù)器。 ns:這里的 ns 實(shí)際上是 ns.example.com 的簡(jiǎn)寫(xiě),表示該區(qū)域的權(quán)威 DNS 服務(wù)器是 ns.example.com。 4. IN MX 5 mail MX:即郵件交換器(Mail Exchanger)記錄,用于指定接收該域名電子郵件的郵件服務(wù)器。 5:是優(yōu)先級(jí),數(shù)值越小,優(yōu)先級(jí)越高。 mail:實(shí)際上是 mail.example.com 的簡(jiǎn)寫(xiě),表示 mail.example.com 是接收 example.com 域名電子郵件的郵件服務(wù)器。 5. ns IN A 192.168.72.135 A:是 IPv4 地址記錄,將域名映射到對(duì)應(yīng)的 IPv4 地址。 ns:即 ns.example.com,表示 ns.example.com 的 IPv4 地址是 192.168.72.135。 6. www IN A 10.10.10.11 A:IPv4 地址記錄。 www:即 www.example.com,表示 www.example.com 的 IPv4 地址是 10.10.10.11。 7. mail IN A 92.68.22.14 A:IPv4 地址記錄。 mail:即 mail.example.com,表示 mail.example.com 的 IPv4 地址是 92.68.22.14。 8. web IN CNAME www CNAME:即規(guī)范名稱(chēng)(Canonical Name)記錄,也稱(chēng)為別名記錄。 web:即 web.example.com,表示 web.example.com 是 www.example.com 的別名,訪(fǎng)問(wèn) web.example.com 實(shí)際上會(huì)被解析為 www.example.com 的 IP 地址。 總結(jié) 這個(gè) example.zone 文件定義了 example.com 域名的 DNS 記錄,包括主名稱(chēng)服務(wù)器、郵件服務(wù)器、Web 服務(wù)器等的相關(guān)信息,以及它們對(duì)應(yīng)的 IP 地址和別名。這些記錄為 DNS 解析提供了必要的信息,使得用戶(hù)可以通過(guò)域名訪(fǎng)問(wèn)相應(yīng)的服務(wù)。
5、檢測(cè)區(qū)域數(shù)據(jù)匹配文件的語(yǔ)法
# 格式:named-checkzone 要解析的域名 這個(gè)域名解析對(duì)應(yīng)區(qū)域數(shù)據(jù)文件的路徑 [root@localhost ~]# named-checkzone example.com /var/named/example.zone zone example.com/IN: loaded serial 0 OK
6、啟動(dòng)服務(wù)
`[root@localhost ~]# systemctl start named`
7、檢測(cè)解析是否成功
# 1. 解析NS記錄 # 使用格式:dig -t 要解析的記錄類(lèi)型 域名 @DNS服務(wù)器的IP地址 [root@localhost ~]# dig -t NS example.com @192.168.72.135 ; <<>> DiG 9.16.23-RH <<>> -t NS example.com @192.168.72.135 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12332 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 ; COOKIE: 4d561b462550d8b20100000067e9400ac355adc305b548e5 (good) ;; QUESTION SECTION: ;example.com. ? ? ? ? ? IN ?NS ;; ANSWER SECTION: example.com. ? ? ? ?86400 ? IN ?NS ?ns.example.com. ;; ADDITIONAL SECTION: ns.example.com. ? ? 86400 ? IN ?A ? 192.168.72.135 ;; Query time: 0 msec ;; SERVER: 192.168.72.135#53(192.168.72.135) ;; WHEN: Sun Mar 30 2050 CST 2025 ;; MSG SIZE ?rcvd: 101 # 2. 解析A記錄 [root@localhost ~]# dig -t A www.example.com @192.168.72.135 ; <<>> DiG 9.16.23-RH <<>> -t A www.example.com @192.168.72.135 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53940 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 ; COOKIE: b6d24840a685a6930100000067e940958baf9d4b8a53e81f (good) ;; QUESTION SECTION: ;www.example.com. ? ? ? IN ?A ;; ANSWER SECTION: www.example.com. ? ?86400 ? IN ?A ? 10.10.10.11 ;; Query time: 0 msec ;; SERVER: 192.168.72.135#53(192.168.72.135) ;; WHEN: Sun Mar 30 2109 CST 2025 ;; MSG SIZE ?rcvd: 88
以上代碼具體作用:
命令一:dig -t NS example.com @192.168.72.135 命令解析 dig:這是一個(gè)在 Linux、Unix 以及 macOS 系統(tǒng)里常用的 DNS 查詢(xún)工具,其功能是向 DNS 服務(wù)器發(fā)送查詢(xún)請(qǐng)求,并且顯示響應(yīng)結(jié)果。 -t NS:-t 是 dig 命令里用于指定查詢(xún)記錄類(lèi)型的選項(xiàng),NS 代表名稱(chēng)服務(wù)器(Name Server)記錄。該記錄的作用是指定負(fù)責(zé)某個(gè)域名的權(quán)威 DNS 服務(wù)器。 example.com:此為要查詢(xún)的域名。 @192.168.72.135:@ 后面跟的是 DNS 服務(wù)器的 IP 地址,意味著要向 192.168.72.135 這個(gè) DNS 服務(wù)器發(fā)起查詢(xún)請(qǐng)求。 命令作用 這條命令的用途是向 IP 地址為 192.168.72.135 的 DNS 服務(wù)器查詢(xún) example.com 域名的 NS 記錄,也就是獲取負(fù)責(zé) example.com 域名的權(quán)威 DNS 服務(wù)器列表。 命令二:dig -t A www.example.com @192.168.72.135 命令解析 dig:同樣是 DNS 查詢(xún)工具。 -t A:A 代表 IPv4 地址記錄,該記錄的作用是將域名映射到對(duì)應(yīng)的 IPv4 地址。 www.example.com:要查詢(xún)的具體域名。 @192.168.72.135:指定向 192.168.72.135 這個(gè) DNS 服務(wù)器發(fā)起查詢(xún)請(qǐng)求。 命令作用 這條命令的用途是向 IP 地址為 192.168.72.135 的 DNS 服務(wù)器查詢(xún) www.example.com 域名的 A 記錄,也就是獲取 www.example.com 對(duì)應(yīng)的 IPv4 地址。 總結(jié) 這兩條 dig 命令能夠幫助你驗(yàn)證 DNS 服務(wù)器的配置是否正確,以及域名解析是否能夠正常工作。通過(guò)查詢(xún)不同類(lèi)型的 DNS 記錄,你可以了解域名的權(quán)威 DNS 服務(wù)器信息和具體的 IP 地址映射情況。
DNS反向解析配置
需求:將 192.168.72.135 解析為 www.exampe.com。 實(shí)現(xiàn): 1、修改主配置文件 [root@localhost ~]# vim /etc/named.conf options { listen-on port 53 { 192.168.72.135; }; directory "/var/named"; }; zone "72.168.192.in-addr.arpa" IN { type master; file "fanxiang.zone"; }; 2、檢測(cè)主配置文件的語(yǔ)法 [root@localhost ~]# named-checkconf 3、編寫(xiě)區(qū)域數(shù)據(jù)反向解析文件 [root@localhost ~]# vim /var/named/fanxiang.zone $TTL 1D @ IN SOA ns.example.com. amdin.example.com. ( 7 1D 1W 2M 1D ) IN NS ns ns IN A 192.168.72.135 135 IN PTR www.example.com. 4、檢測(cè)區(qū)域文件的語(yǔ)法 [root@localhost ~]# named-checkzone 72.168.192.in-addr.arpa /var/named/fanxiang.zone zone 72.168.192.in-addr.arpa/IN: loaded serial 7 OK 5、啟動(dòng)服務(wù) [root@localhost ~]# systemctl restart named 6、功能測(cè)試 [root@localhost ~]# dig -x 192.168.72.135 @192.168.72.135 ; <<>> DiG 9.16.23-RH <<>> -x 192.168.72.135 @192.168.72.135 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54279 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 ; COOKIE: be29844f0e1189e30100000067e9456f6d407ccdce24d52e (good) ;; QUESTION SECTION: ;135.72.168.192.in-addr.arpa. ? IN ?PTR ;; ANSWER SECTION: 135.72.168.192.in-addr.arpa. 86400 IN ? PTR www.example.com.72.168.192.in-addr.arpa. ;; Query time: 0 msec ;; SERVER: 192.168.72.135#53(192.168.72.135) ;; WHEN: Sun Mar 30 2151 CST 2025 ;; MSG SIZE ?rcvd: 137
[root@localhost ~]# dig -x 192.168.72.135 @192.168.72.135詳解
dig -x 192.168.72.135 @192.168.72.135 這條命令使用了 dig 工具來(lái)進(jìn)行 DNS 查詢(xún),下面為你詳細(xì)解釋該命令的各個(gè)部分及其作用: 命令解析 dig dig(Domain Information Groper)是一個(gè)在 Linux、Unix 以及 macOS 系統(tǒng)中常用的 DNS 診斷工具,它的主要功能是向 DNS 服務(wù)器發(fā)送查詢(xún)請(qǐng)求,并顯示詳細(xì)的響應(yīng)結(jié)果,常用于測(cè)試 DNS 服務(wù)器配置、排查域名解析問(wèn)題等。 -x -x 是 dig 命令的一個(gè)選項(xiàng),它是進(jìn)行反向 DNS 查找(Reverse DNS Lookup)的快捷方式。反向 DNS 查找與正向 DNS 查找相反,正向查找是將域名解析為對(duì)應(yīng)的 IP 地址,而反向查找則是根據(jù)給定的 IP 地址查找對(duì)應(yīng)的域名。當(dāng)使用 -x 選項(xiàng)時(shí),dig 會(huì)自動(dòng)將 IP 地址轉(zhuǎn)換為相應(yīng)的反向查找區(qū)域(如 in-addr.arpa 用于 IPv4 地址)并進(jìn)行查詢(xún)。 192.168.72.135 這是要進(jìn)行反向 DNS 查找的目標(biāo) IP 地址。也就是說(shuō),你希望通過(guò) DNS 服務(wù)器查詢(xún)這個(gè) IP 地址對(duì)應(yīng)的域名是什么。 @192.168.72.135 @ 符號(hào)用于指定要查詢(xún)的 DNS 服務(wù)器的 IP 地址。在這個(gè)命令中,你指定向 IP 地址為 192.168.72.135 的 DNS 服務(wù)器發(fā)起反向查詢(xún)請(qǐng)求。 命令作用 這條命令的主要作用是向 IP 地址為 192.168.72.135 的 DNS 服務(wù)器發(fā)送一個(gè)反向 DNS 查詢(xún)請(qǐng)求,以獲取 IP 地址 192.168.72.135 對(duì)應(yīng)的域名。如果該 DNS 服務(wù)器配置了相應(yīng)的反向解析區(qū)域文件,并且其中包含了 192.168.72.135 的反向解析記錄,那么它將返回對(duì)應(yīng)的域名;如果沒(méi)有配置或者沒(méi)有找到對(duì)應(yīng)的記錄,可能會(huì)返回一個(gè)表示未找到的結(jié)果。 示例輸出及含義 假設(shè)命令執(zhí)行后有如下簡(jiǎn)化輸出: plaintext ; <<>> DiG 9.16.23-RH <<>> -x 192.168.72.135 @192.168.72.135 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52345 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; QUESTION SECTION: ;135.72.168.192.in-addr.arpa. ?IN ? ? ?PTR ;; ANSWER SECTION: 135.72.168.192.in-addr.arpa. 86400 IN ?PTR ? ? myserver.example.com. ;; Query time: 2 msec ;; SERVER: 192.168.72.135#53(192.168.72.135) ;; WHEN: Mon Apr 07 1500 CST 2025 ;; MSG SIZE ?rcvd: 103 QUESTION SECTION:顯示了查詢(xún)的具體內(nèi)容,這里是對(duì) 135.72.168.192.in-addr.arpa 進(jìn)行 PTR(Pointer,指針記錄,用于反向解析)類(lèi)型的查詢(xún)。 ANSWER SECTION:顯示了查詢(xún)的結(jié)果,這里表明 IP 地址 192.168.72.135 對(duì)應(yīng)的域名是 myserver.example.com。 通過(guò)這樣的反向查詢(xún),你可以驗(yàn)證 IP 地址和域名之間的映射關(guān)系是否正確配置,在網(wǎng)絡(luò)管理、安全審計(jì)等場(chǎng)景中具有重要作用。
-
Linux
+關(guān)注
關(guān)注
87文章
11432瀏覽量
212458 -
軟件
+關(guān)注
關(guān)注
69文章
5097瀏覽量
88811 -
DNS
+關(guān)注
關(guān)注
0文章
222瀏覽量
20218 -
端口
+關(guān)注
關(guān)注
4文章
1011瀏覽量
32663
原文標(biāo)題:全面解析Linux中的DNS服務(wù):搭建與優(yōu)化指南
文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
【Raspberry Pi 3試用體驗(yàn)】+ 搭建本地DNS服務(wù)器
如何解決DNS解析錯(cuò)誤故障
Linux中DNS服務(wù)器配置分析
《DNS攻擊防范科普系列1》—你的DNS服務(wù)器真的安全么?
Win 2000中DNS服務(wù)器的設(shè)置
在Linux中如何配置DNS
Linux DNS 服務(wù)器安裝、配置和維護(hù)的詳細(xì)解析
DNS服務(wù)器和DNS服務(wù)器地址是什么
探討DNS服務(wù)器解析
如何在 Linux 上查看本地 DNS 緩存

DNS服務(wù)器是什么?有哪些類(lèi)型?
【教程】DNS域名解析服務(wù)systemd-resolved使用指南

評(píng)論