【DNS】功能變數名稱服務 Bind實現

来源:https://www.cnblogs.com/Janzen-q/archive/2023/06/04/17430763.html
-Advertisement-
Play Games

一、功能變數名稱解析過程 DNS功能變數名稱完整解析過程 1、查詢本地 hosts文件 解析記錄 2、查詢客戶端本地DNS緩存記錄 3、訪問DNS轉發(緩存)伺服器本地緩存記錄 4、轉發到權威伺服器查詢本地緩存記錄 5、訪問權威伺服器解析記錄 6、權威伺服器迭代查詢 6.1、訪問子域權威伺服器查詢本地緩存記錄 6. ...


一、功能變數名稱解析過程

 

 DNS功能變數名稱完整解析過程

1、查詢本地 hosts文件 解析記錄

2、查詢客戶端本地DNS緩存記錄

3、訪問DNS轉發(緩存)伺服器本地緩存記錄

4、轉發到權威伺服器查詢本地緩存記錄

5、訪問權威伺服器解析記錄

6、權威伺服器迭代查詢

  6.1、訪問子域權威伺服器查詢本地緩存記錄

  6.2、訪問子域解析記錄

7、訪問根伺服器解析記錄

8、訪問一級功能變數名稱伺服器解析記錄

.......

二、DNS解析記錄類型

 1、DNS伺服器類型

主DNS伺服器

管理和維護所負責解析的域內解析庫的伺服器

從DNS伺服器

從主伺服器或從伺服器複製(區域傳輸)解析庫副本

緩存DNS伺服器(轉發器)

將客戶端請求轉發到指定的DNS伺服器上,並將指定DNS伺服器返回結果緩存到本地DNS緩存記錄中,緩存DNS伺服器自身不保存解析庫數據,不使用自身進行功能變數名稱解析。

 2、解析結果類型

  • 肯定答案:存在對應的查詢結果
  • 否定答案:請求的條目不存在等原因導致無法返回結果
  • 權威答案:直接由存在此查詢結果的DNS伺服器(權威伺服器)返回的結果
  • 非權威答案:有其他非權威伺服器返回的查詢結果

 3、資源記錄RR(Resource Record)

區域解析庫

  有眾多資源記錄RR(Resource Record)組成

記錄類型:SOA、A、AAAA、NS、CNAME、MX、TXT、PTR

  • SOA:Start Of Authority,起始授權記錄;一個區域解析庫有且僅能有一個SOA記錄,且必須位於解析庫的第一條
  • A:IPv4 正向解析資源記錄
  • AAAA:IPv6正向解析資源記錄
  • NS:用於標註當前區域的DNS伺服器
  • CNAME:別名記錄
  • MX:郵件交換器
  • TXT:對功能變數名稱進行標識說明的一種方式,一般做驗證記錄會使用此項,如SPF(反垃圾郵件)記錄,https驗證 登
  • PTR:

3.1、資源記錄定義格式

name    [TTL]    IN      rr_type      value

使用@符號可引用當前區功能變數名稱字

TTL 可以從全局繼承

IN值可以通過繼承上一條記錄忽略不寫

同一個名字可以通過多條記錄定義多個值,此時DNS伺服器會以輪詢方式響應

同一個值也可能有多個不同定義的名字,通過多個名字指向同一個值進行定義,此時表示通過多個不同的名字找到同一臺主機

 

3.2、SOA 記錄

name:當前區域的名字

value:多個內容組成

  當前主DNS伺服器的FQDN,也可以使用當前區域的名字

  當前區域的管理員郵箱,由於無法使用@符合,通常使用.替換,例如:root.janzen.com ([email protected])

  主從服務區域傳輸相關定義以及否定答案的統一TTL設置

@       IN      SOA     dns1.janzen.com  root.janzen.com (
                         1          ; 序列號
                         604800      ; 刷新時間
                         86400       ; 重試時間
                         2419200     ; 過期時間
                         604800 )    ; 否定答案的TTL值

 

3.3、A 記錄

name:主機的FQDN,可以.結尾代表完整名稱,也可以簡寫末尾不加.

value:對應的IPv4地址

dns1            A       10.0.0.20
dns2            A       10.0.0.21
gitlab.janzen.com.          A       10.0.0.13
harbor          A       10.0.0.9
harbor          A       10.0.0.10

 

3.4、AAAA 記錄

name:主機的FQDN,可以.結尾代表完整名稱,也可以簡寫末尾不加.

value:對應的IPv6地址

 

3.5、NS 記錄

name:當前區域的名字

value:當前區域某DNS伺服器的名字

  相鄰的兩個資源記錄name相同時,後續的可以省略

  對於NS記錄而言,每一條NS記錄後面的名字,後續都應該有一條對應的A記錄

  一個區域可以有多條NS記錄

@       IN      NS      dns1
                NS      dns2

 

3.6、CNAME 記錄

name:別名FQDN

value:真實的FQDN

dns     IN      CNAME   dns1

 

3.7、MX 記錄

name:當前區域的名字

value:當前區域某郵件伺服器(smtp伺服器)的名字

  一個區域內,MX記錄可以有多個,但每個記錄的value後面都應該有一個(0-99)數字,表示此伺服器的優先順序

  對於MX記錄而言,每一條NS記錄後面的名字,後續都應該有一條對應的A記錄

@     IN      MX  12  mail1
    IN MX  10  mail2
mail1  IN  A  10.0.0.31
mail2  IN  A  10.0.0.32

 

3.8、TXT 記錄

name:文本描述頭

value:文本內容

_dnstxt        TXT     this is @ name server

 

 

3.9、PTR 記錄

name:IP

value:FQDN

  name的IP擁有固定寫法,需要將IP反向書寫,並添加特殊尾碼 in-addr.arpa.

  完整寫法為:20.0.0.10.in-addr.arpa.

  網路地址及尾碼可以省略,主機地址依舊要反寫

20.0.0.10.in-addr.arpa.    IN    PTR    dns.janzen.com.

#由於 10.0.0 為網路地址,可以省略 
9    IN    PTR    harbor.janzen.com.

 

三、DNS工具介紹 

dig 工具介紹

用於測試DNS解析結果

Usage:  dig [@global-server] [domain] [q-type] [q-class] {q-opt}

Where:  domain      is in the Domain Name System
        q-class  is one of (in,hs,ch,...) [default: in]
        q-type   is one of (a,any,mx,ns,soa,hinfo,axfr,txt,...) [default:a]
                 (Use ixfr=version for type ixfr)
     
q-opt  +[no]trace (Trace delegation down from root [+dnssec])
          +[no]recurse (Recursive mode (+[no]rdflag))
#獲取目標dns全部解析記錄
dig -tAXFR janzen.com @10.0.0.21

#跟蹤功能變數名稱解析路徑
dig +trace app3.janzen.com @10.0.0.21

#查詢PTR記錄
dig -x 10.0.0.21

#直接顯示功能變數名稱查詢結果
dig +short app3.janzen.com @10.0.0.71

nslookup工具

nslookup [-option] [name | -] [server]

 

rndc DNS管理工具 

Usage: rndc [-b address] [-c config] [-s server] [-p port]
    [-k key-file ] [-y key] [-r] [-V] command

command is one of the following:
  addzone zone [class [view]] { zone-options }
        Add zone to given view. Requires allow-new-zones option.
  delzone [-clean] zone [class [view]]
        Removes zone from given view.
  dnstap -reopen
        Close, truncate and re-open the DNSTAP output file.
  dnstap -roll count
        Close, rename and re-open the DNSTAP output file(s).
  dumpdb [-all|-cache|-zones|-adb|-bad|-fail] [view ...]
        Dump cache(s) to the dump file (named_dump.db).
  flush     Flushes all of the server's caches.
  flush [view]    Flushes the server's cache for a view.
  flushname name [view]
        Flush the given name from the server's cache(s)
  flushtree name [view]
        Flush all names under the given name from the server's cache(s)
  freeze    Suspend updates to all dynamic zones.
  freeze zone [class [view]]
        Suspend updates to a dynamic zone.
  halt        Stop the server without saving pending updates.
  halt -p    Stop the server without saving pending updates reporting
        process id.
  loadkeys zone [class [view]]
        Update keys without signing immediately.
  managed-keys refresh [class [view]]
        Check trust anchor for RFC 5011 key changes
  managed-keys status [class [view]]
        Display RFC 5011 managed keys information
  managed-keys sync [class [view]]
        Write RFC 5011 managed keys to disk
  modzone zone [class [view]] { zone-options }
        Modify a zone's configuration.
        Requires allow-new-zones option.
  notify zone [class [view]]
        Resend NOTIFY messages for the zone.
  notrace    Set debugging level to 0.
  nta -dump
        List all negative trust anchors.
  nta [-lifetime duration] [-force] domain [view]
        Set a negative trust anchor, disabling DNSSEC validation
        for the given domain.
        Using -lifetime specifies the duration of the NTA, up
        to one week.
        Using -force prevents the NTA from expiring before its
        full lifetime, even if the domain can validate sooner.
  nta -remove domain [view]
        Remove a negative trust anchor, re-enabling validation
        for the given domain.
  querylog [ on | off ]
        Enable / disable query logging.
  reconfig    Reload configuration file and new zones only.
  recursing    Dump the queries that are currently recursing (named.recursing)
  refresh zone [class [view]]
        Schedule immediate maintenance for a zone.
  reload    Reload configuration file and zones.
  reload zone [class [view]]
        Reload a single zone.
  retransfer zone [class [view]]
        Retransfer a single zone without checking serial number.
  scan        Scan available network interfaces for changes.
  secroots [view ...]
        Write security roots to the secroots file.
  showzone zone [class [view]]
        Print a zone's configuration.
  sign zone [class [view]]
        Update zone keys, and sign as needed.
  signing -clear all zone [class [view]]
        Remove the private records for all keys that have
        finished signing the given zone.
  signing -clear <keyid>/<algorithm> zone [class [view]]
        Remove the private record that indicating the given key
        has finished signing the given zone.
  signing -list zone [class [view]]
        List the private records showing the state of DNSSEC
        signing in the given zone.
  signing -nsec3param hash flags iterations salt zone [class [view]]
        Add NSEC3 chain to zone if already signed.
        Prime zone with NSEC3 chain if not yet signed.
  signing -nsec3param none zone [class [view]]
        Remove NSEC3 chains from zone.
  signing -serial <value> zone [class [view]]
        Set the zones's serial to <value>.
  stats        Write server statistics to the statistics file.
  status    Display status of the server.
  stop        Save pending updates to master files and stop the server.
  stop -p    Save pending updates to master files and stop the server
        reporting process id.
  sync [-clean]    Dump changes to all dynamic zones to disk, and optionally
        remove their journal files.
  sync [-clean] zone [class [view]]
        Dump a single zone's changes to disk, and optionally
        remove its journal file.
  thaw        Enable updates to all dynamic zones and reload them.
  thaw zone [class [view]]
        Enable updates to a frozen dynamic zone and reload it.
  trace        Increment debugging level by one.
  trace level    Change the debugging level.
  tsig-delete keyname [view]
        Delete a TKEY-negotiated TSIG key.
  tsig-list    List all currently active TSIG keys, including both statically
        configured and TKEY-negotiated keys.
  validation [ yes | no | status ] [view]
        Enable / disable DNSSEC validation.
  zonestatus zone [class [view]]
        Display the current status of a zone.

Version: 9.11.3-1ubuntu1.18-Ubuntu

  

四、DNS安裝部署

1、Centos7 配置功能變數名稱正向解析主伺服器

1.1、yum安裝bind服務,及DNS工具 bind-utils

yum install -y bind bind-utils

  

1.2、修改 named.conf 配置文件,禁用服務限制,引入區域配置文件

[root@node-centos7-70 ~]# vim /etc/named.conf 

options {
    # listen-on port 53 { 127.0.0.1; };
    listen-on-v6 port 53 { ::1; };
    directory     "/var/named";
    dump-file     "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    recursing-file  "/var/named/data/named.recursing";
    secroots-file   "/var/named/data/named.secroots";
    # allow-query     { localhost; };

    recursion yes;

    dnssec-enable yes;
    dnssec-validation yes;

    /* Path to ISC DLV key */
    bindkeys-file "/etc/named.root.key";

    managed-keys-directory "/var/named/dynamic";

    pid-file "/run/named/named.pid";
    session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
    type hint;
    file "named.ca";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
include "/etc/named.zones"

  

1.3、創建 named.zones 區域配置文件

[root@node-centos7-70 ~]# vim /etc/named.zones

zone
"janzen.com" IN { type master; file "named.janzen.com"; allow-update { none; }; };

  

1.4、創建 named.janzen.com 區域解析庫文件

[root@node-centos7-70 etc]# vim /var/named/named.janzen.com

;
; BIND reverse data file for broadcast zone
;
$TTL    604800
@       IN      SOA     janzen.com. root.localhost. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      dns1
        IN      NS      dns2
        IN      MX  12  mail1
        IN      MX  10  mail2
dns     IN      CNAME   dns1
dns1    IN      A       10.0.0.20
dns2    IN      A       10.0.0.21
gitlab  IN      A       10.0.0.13
harbor  IN      A       10.0.0.9
harbor  IN      A       10.0.0.10
www     IN      A       10.0.0.11
mail1   IN      A       10.0.0.31
mail2   IN      A       10.0.0.32
_dnstext IN     TXT     this is @ name server

  

1.5、修改文件許可權

[root@node-centos7-70 etc]# chmod 640 {/etc/named.zones,/var/named/named.janzen.com}
[root@node-centos7-70 etc]# chgrp named {/etc/named.zones,/var/named/named.janzen.com}

  

 1.6、設置named服務開機自啟動

[root@node-centos7-70 etc]# systemctl enable --now named

  

1.7、使用dig測試DNS服務

[root@node-centos7-70 etc]# dig dns.janzen.com @10.0.0.70

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.13 <<>> dns.janzen.com @10.0.0.70
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51429
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;dns.janzen.com.            IN    A

;; ANSWER SECTION:
dns.janzen.com.        604800    IN    CNAME    dns1.janzen.com.
dns1.janzen.com.    604800    IN    A    10.0.0.20

;; AUTHORITY SECTION:
janzen.com.        604800    IN    NS    dns2.janzen.com.
janzen.com.        604800    IN    NS    dns1.janzen.com.

;; ADDITIONAL SECTION:
dns2.janzen.com.    604800    IN    A    10.0.0.21

;; Query time: 0 msec
;; SERVER: 10.0.0.70#53(10.0.0.70)
;; WHEN: 四 5月 25 18:16:54 CST 2023
;; MSG SIZE  rcvd: 127

[root@node-centos7-70 etc]# dig janzen.com @10.0.0.70 mx

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.13 <<>> janzen.com @10.0.0.70 mx
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2566
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 5

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;janzen.com.            IN    MX

;; ANSWER SECTION:
janzen.com.        604800    IN    MX    10 mail2.janzen.com.
janzen.com.        604800    IN    MX    12 mail1.janzen.com.

;; AUTHORITY SECTION:
janzen.com.        604800    IN    NS    dns2.janzen.com.
janzen.com.        604800    IN    NS    dns1.janzen.com.

;; ADDITIONAL SECTION:
mail1.janzen.com.    604800    IN    A    10.0.0.31
mail2.janzen.com.    604800    IN    A    10.0.0.32
dns1.janzen.com.    604800    IN    A    10.0.0.20
dns2.janzen.com.    604800    IN    A    10.0.0.21

;; Query time: 0 msec
;; SERVER: 10.0.0.70#53(10.0.0.70)
;; WHEN: 四 5月 25 18:18:09 CST 2023
;; MSG SIZE  rcvd: 185

[root@node-centos7-70 etc]# dig harbor.janzen.com @10.0.0.70

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.13 <<>> harbor.janzen.com @10.0.0.70
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33334
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;harbor.janzen.com.        IN    A

;; ANSWER SECTION:
harbor.janzen.com.    604800    IN    A    10.0.0.10
harbor.janzen.com.    604800    IN    A    10.0.0.9

;; AUTHORITY SECTION:
janzen.com.        604800    IN    NS    dns1.janzen.com.
janzen.com.        604800    IN    NS    dns2.janzen.com.

;; ADDITIONAL SECTION:
dns1.janzen.com.    604800    IN    A    10.0.0.20
dns2.janzen.com.    604800    IN    A    10.0.0.21

;; Query time: 0 msec
;; SERVER: 10.0.0.70#53(10.0.0.70)
;; WHEN: 四 5月 25 18:20:07 CST 2023
;; MSG SIZE  rcvd: 148

  

1.8、修改區域解析庫文件內容,使用 rndc 重載配置

[root@node-centos7-70 etc]# vim /var/named/named.janzen.com 
$TTL    604800
@       IN      SOA     janzen.com. root.localhost. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
@       IN      NS      dns1
        IN      NS      dns2
        IN      MX    12    mail1
        IN      MX    10    mail2
dns     IN      CNAME   dns1
dns1    IN      A       10.0.0.70
dns2    IN      A       10.0.0.21
gitlab  IN      A       10.0.0.13
harbor  IN      A       10.0.0.9
harbor  IN      A       10.0.0.10
www     IN      A       10.0.0.11
mail1   IN      A       10.0.0.31
mail2   IN      A       10.0.0.32
_dnstext IN     TXT     this is @ name server

[root@node
-centos7-70 etc]# rndc reload server reload successful

 

[root@node-centos7-70 etc]# dig dns.janzen.com @10.0.0.70

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.13 <<>> dns.janzen.com @10.0.0.70
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5247
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;dns.janzen.com.            IN    A

;; ANSWER SECTION:
dns.janzen.com.        604800    IN    CNAME    dns1.janzen.com.
dns1.janzen.com.    604800    IN    A    10.0.0.70

;; AUTHORITY SECTION:
janzen.com.        604800    IN    NS    dns2.janzen.com.
janzen.com.        604800    IN    NS    dns1.janzen.com.

;; ADDITIONAL SECTION:
dns2.janzen.com.    604800    IN    A    10.0.0.21

;; Query time: 0 msec
;; SERVER: 10.0.0.70#53(10.0.0.70)
;; WHEN: 四 5月 25 18:27:45 CST 2023
;; MSG SIZE  rcvd: 127

 

2、Ubuntu apt安裝bind服務

 1.1、apt安裝bind9服務,及DNS工具 bind9utils

[root@Node-Ubuntu1804-20:~]# apt install -y bind9 bind9utils 

  

1.2、修改 named.conf 配置文件,引入區域配置文件

[root@Node-Ubuntu1804-20:~]# cat /etc/bind/named.conf
// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the 
// structure of BIND configuration files in Debian, *BEFORE* you customize 
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
include "/etc/bind/named.zones";

 

1.3、創建 named.zones 區域配置文件

[root@Node-Ubuntu1804-20:~]# vim /etc/bind/named.zones

zone janzen.com IN { type master; file "/etc/bind/db.janzen.com"; };

 

1.4、創建 db.janzen.com 區域解析庫文件

[root@Node-Ubuntu1804-20:~]# vim /etc/bind/db.janzen.com

$TTL    604800                                                                                                                                  
@       IN      SOA     janzen.com. root.localhost. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
@       IN      NS      dns1
        IN      NS      dns2
        IN      MX      12      mail1
        IN      MX      10      mail2
dns     IN      CNAME   dns1
dns1    IN      A       10.0.0.20
dns2    IN      A       10.0.0.21
gitlab  IN      A       10.0.0.13
harbor  IN      A       10.0.0.9
harbor  IN      A       10.0.0.10
www     IN      A       10.0.0.11
mail1   IN      A       10.0.0.31
mail2   IN      A       10.0.0.32
_dnstext IN     TXT     this is @ name server

 

1.5、修改文件許可權

[root@Node-Ubuntu1804-20:~]# chmod 640 /etc/bind/{named.zones,db.janzen.com} [root@Node-Ubuntu1804-20:~]# chgrp bind /etc/bind/{named.zones,db.janzen.com}

 

1.6、啟動 bind9 服務

[root@Node-Ubuntu1804-20:~]# systemctl start bind9

 

1.7、使用dig測試DNS服務

[root@Ansible-Ubuntu1804-25:~]# dig dns.janzen.com @10.0.0.20

; <<>> DiG 9.11.3-1ubuntu1.18-Ubuntu <<>> dns.janzen.com @10.0.0.20
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32150
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 95d843b6344528dfc99349d4646f3bbb5812908fa82e3d3f (good)
;; QUESTION SECTION:
;dns.janzen.com.            IN    A

;; ANSWER SECTION:
dns.janzen.com.        604800    IN    CNAME    dns1.janzen.com.
dns1.janzen.com.    604800    IN    A    10.0.0.20

;; AUTHORITY SECTION:
janzen.com.        604800    IN    NS    dns1.janzen.com.
janzen.com.        604800    IN    NS    dns2.janzen.com.

;; ADDITIONAL SECTION:
dns2.janzen.com.    604800    IN    A    10.0.0.21

;; Query time: 0 msec
;; SERVER: 10.0.0.20#53(10.0.0.20)
;; WHEN: Thu May 25 18:43:07 CST 2023
;; MSG SIZE  rcvd: 155
[root@Ansible-Ubuntu1804-25:~]# dig janzen.com @10.0.0.20 mx

; <<>> DiG 9.11.3-1ubuntu1.18-Ubuntu <<>> janzen.com @10.0.0.20 mx
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11520
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 5

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 2bd0379cc8f4ca918c8ed28e646f3c5c2d56e5c3704f4752 (good)
;; QUESTION SECTION:
;janzen.com.            IN    MX

;; ANSWER SECTION:
janzen.com.        604800    IN    MX    10 mail2.janzen.com.
janzen.com.        604800    IN    MX    12 mail1.janzen.com.

;; AUTHORITY SECTION:
janzen.com.        604800    IN    NS    dns2.janzen.com.
janzen.com.        604800    IN    NS    dns1.janzen.com.

;; ADDITIONAL SECTION:
mail2.janzen.com.    604800    IN    A    10.0.0.32
mail1.janzen.com.    604800    IN    A    10.0.0.31
dns1.janzen.com.    604800    IN    A    10.0.0.20
dns2.janzen.com.    604800    IN    A    10.0.0.21

;; Query time: 1 msec
;; SERVER: 10.0.0.20#53(10.0.0.20)
;; WHEN: Thu May 25 18:45:48 CST 2023
;; MSG SIZE  rcvd: 213
[root@Ansible-Ubuntu1804-25:~]# dig harbor.janzen.com @10.0.0.20

; <<>> DiG 9.11.3-1ubuntu1.18-Ubuntu <<>> harbor.janzen.com @10.0.0.20
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45201
;; flags: qr aa rd ra; QUERY: 	   

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • # 2022版本IDEA+Maven+Tomcat的第一個程式(傻瓜教學) ​ 作為學習Javaweb的一個重要環節,如何實現在IDEA中利用Maven工具創建一個Javaweb程式模版並連接Tomcat發佈是非常重要的。我比較愚鈍(小白),而且自身電腦先前運行過spring或maven的程式,系統 ...
  • 歡迎來到本篇文章!通過上一篇什麼是 Spring?為什麼學它?的學習,我們知道了 Spring 的基本概念,知道什麼是 Spring,以及為什麼學習 Spring。今天,這篇就來說說 Spring 中的核心概念之一 IoC。 ...
  • 本次主要介紹golang中的標準庫`bytes`,基本上參考了 [位元組 | bytes](https://cloud.tencent.com/developer/section/1140520) 、[Golang標準庫——bytes](https://www.jianshu.com/p/e6f7f2 ...
  • ![線程各屬性縱覽](https://img2023.cnblogs.com/blog/1220983/202306/1220983-20230603114109107-477345835.png) 如上圖所示,線程有四個屬性: - 線程ID - 線程名稱 - 守護線程 - 線程優先順序 ### 1. ...
  • # 圖片介面JWT鑒權實現 # 前言 之前做了個返回圖片鏈接的介面,然後沒做授權,然後今天鍵盤到了,也是用JWT來做介面的許可權控制。 然後JTW網上已經有很多文章來說怎麼用了,這裡就不做多的解釋了,如果不懂的可以參考下列鏈接的 文章。 圖片介面文章:[還在愁個人博客沒有圖片放?](https://w ...
  • 以MySQL資料庫為例 # 一. 安裝 NuGet搜索Dapper.Lite並安裝最新版本。 ![](https://img2023.cnblogs.com/blog/174862/202306/174862-20230602155913303-757935399.jpg) NuGet搜索MySql ...
  • 從按鈕、文本框到下拉框、列表框,WPF提供了一系列常用控制項,每個控制項都有自己獨特的特性和用途。通過靈活的佈局容器,如網格、堆棧面板和換行面板,我們可以將這些控制項組合在一起,實現複雜的界面佈局。而通過樣式和模板,我們可以輕鬆地定製控制項的外觀和行為,以符合我們的設計需求。本篇記錄WPF入門需要瞭解的樣式... ...
  • 在一些複雜的業務表中間查詢數據,有時候操作會比較複雜一些,不過基於SqlSugar的相關操作,處理的代碼會比較簡單一些,以前我在隨筆《基於SqlSugar的開發框架循序漸進介紹(2)-- 基於中間表的查詢處理》介紹過基於主表和中間表的聯合查詢,而往往實際會比這個會複雜一些。本篇隨筆介紹聯合多個表進行... ...
一周排行
    -Advertisement-
    Play Games
  • 概述:在C#中,++i和i++都是自增運算符,其中++i先增加值再返回,而i++先返回值再增加。應用場景根據需求選擇,首碼適合先增後用,尾碼適合先用後增。詳細示例提供清晰的代碼演示這兩者的操作時機和實際應用。 在C#中,++i 和 i++ 都是自增運算符,但它們在操作上有細微的差異,主要體現在操作的 ...
  • 上次發佈了:Taurus.MVC 性能壓力測試(ap 壓測 和 linux 下wrk 壓測):.NET Core 版本,今天計劃準備壓測一下 .NET 版本,來測試並記錄一下 Taurus.MVC 框架在 .NET 版本的性能,以便後續持續優化改進。 為了方便對比,本文章的電腦環境和測試思路,儘量和... ...
  • .NET WebAPI作為一種構建RESTful服務的強大工具,為開發者提供了便捷的方式來定義、處理HTTP請求並返迴響應。在設計API介面時,正確地接收和解析客戶端發送的數據至關重要。.NET WebAPI提供了一系列特性,如[FromRoute]、[FromQuery]和[FromBody],用 ...
  • 原因:我之所以想做這個項目,是因為在之前查找關於C#/WPF相關資料時,我發現講解圖像濾鏡的資源非常稀缺。此外,我註意到許多現有的開源庫主要基於CPU進行圖像渲染。這種方式在處理大量圖像時,會導致CPU的渲染負擔過重。因此,我將在下文中介紹如何通過GPU渲染來有效實現圖像的各種濾鏡效果。 生成的效果 ...
  • 引言 上一章我們介紹了在xUnit單元測試中用xUnit.DependencyInject來使用依賴註入,上一章我們的Sample.Repository倉儲層有一個批量註入的介面沒有做單元測試,今天用這個示例來演示一下如何用Bogus創建模擬數據 ,和 EFCore 的種子數據生成 Bogus 的優 ...
  • 一、前言 在自己的項目中,涉及到實時心率曲線的繪製,項目上的曲線繪製,一般很難找到能直接用的第三方庫,而且有些還是定製化的功能,所以還是自己繪製比較方便。很多人一聽到自己畫就害怕,感覺很難,今天就分享一個完整的實時心率數據繪製心率曲線圖的例子;之前的博客也分享給DrawingVisual繪製曲線的方 ...
  • 如果你在自定義的 Main 方法中直接使用 App 類並啟動應用程式,但發現 App.xaml 中定義的資源沒有被正確載入,那麼問題可能在於如何正確配置 App.xaml 與你的 App 類的交互。 確保 App.xaml 文件中的 x:Class 屬性正確指向你的 App 類。這樣,當你創建 Ap ...
  • 一:背景 1. 講故事 上個月有個朋友在微信上找到我,說他們的軟體在客戶那邊隔幾天就要崩潰一次,一直都沒有找到原因,讓我幫忙看下怎麼回事,確實工控類的軟體環境複雜難搞,朋友手上有一個崩潰的dump,剛好丟給我來分析一下。 二:WinDbg分析 1. 程式為什麼會崩潰 windbg 有一個厲害之處在於 ...
  • 前言 .NET生態中有許多依賴註入容器。在大多數情況下,微軟提供的內置容器在易用性和性能方面都非常優秀。外加ASP.NET Core預設使用內置容器,使用很方便。 但是筆者在使用中一直有一個頭疼的問題:服務工廠無法提供請求的服務類型相關的信息。這在一般情況下並沒有影響,但是內置容器支持註冊開放泛型服 ...
  • 一、前言 在項目開發過程中,DataGrid是經常使用到的一個數據展示控制項,而通常表格的最後一列是作為操作列存在,比如會有編輯、刪除等功能按鈕。但WPF的原始DataGrid中,預設只支持固定左側列,這跟大家習慣性操作列放最後不符,今天就來介紹一種簡單的方式實現固定右側列。(這裡的實現方式參考的大佬 ...