日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用DNSTAP Analyser診斷域名解析異常

ACK集群的ACK CoreDNS DNSTAP Analyser組件,可以從CoreDNS和客戶端之間,CoreDNS和上游DNS服務(wù)器之間的請求和響應(yīng)過程中,對所有產(chǎn)生的DNS網(wǎng)絡(luò)報文進(jìn)行歸類和識別。借助此工具,您可以快速定位域名無法解析的原因。

前提條件

背景信息

DNSTAP是一種DNS報文日志格式協(xié)議,可以被用于診斷DNS服務(wù)器上異常解析問題。更多信息,請參見dnstap

步驟一:安裝ACK CoreDNS DNSTAP Analyser

  1. 登錄容器服務(wù)管理控制臺

  2. 在控制臺左側(cè)導(dǎo)航欄,選擇市場 > 應(yīng)用市場

  3. 應(yīng)用目錄頁簽搜索ack-coredns-dnstap-analyser,找到并單擊ack-coredns-dnstap-analyser

  4. ack-coredns-dnstap-analyser頁面,單擊一鍵部署

  5. 創(chuàng)建面板中選擇目標(biāo)集群和命名空間,然后單擊下一步。在參數(shù)配置頁簽中根據(jù)需求設(shè)置參數(shù),然后單擊確定

步驟二:配置CoreDNS的DNSTAP插件

CoreDNS中內(nèi)置了發(fā)送DNSTAP報文的DNSTAP插件,DNSTAP插件收到和發(fā)出的DNS報文可以發(fā)送至ACK CoreDNS DNSTAP Analyser。使用ACK CoreDNS DNSTAP Analyser診斷CoreDNS域名解析異常前,您需要先配置并啟用CoreDNS的DNSTAP插件。插件配置完成后,CoreDNS會將接收和發(fā)送到的DNS報文轉(zhuǎn)發(fā)至ACK CoreDNS DNSTAP Analyser進(jìn)行自動化診斷。

  1. 執(zhí)行以下命令,獲取并記錄kube-system命名空間下ACK CoreDNS DNSTAP Analyser服務(wù)的ClusterIP地址(例如172.21.0.10)用于配置DNSTAP插件。

    kubectl -n kube-system get svc dnstap-analyser
  2. 執(zhí)行以下命令,編輯CoreDNS配置文件。

    kubectl -n kube-system edit cm coredns -o yaml
  3. 參考以下注釋修改CoreDNS的默認(rèn)配置。

    修改配置的目的是啟用DNSTAP插件,并指向地址至CoreDNS DNSTAP Analyser的ClusterIP地址,從而將DNSTAP插件收到和發(fā)出的DNS報文發(fā)送至ACK CoreDNS DNSTAP Analyser。

    Corefile: |
            .:53 {
                # 省略
                ready
    
                # 添加以下一行,需將172.21.0.10替換成獲取到的CoreDNS DNSTAP Analyser ClusterIP地址。
                dnstap tcp://172.21.0.10:6000 full
    
                kubernetes cluster.local in-addr.arpa ip6.arpa {
                # 省略
                }
                # 省略
                reload
                loadbalance
            }
  4. 執(zhí)行以下命令,查看當(dāng)前CoreDNS的所有容器組。

    kubectl -n kube-system get pod | grep coredns

    預(yù)期輸出:

    coredns-7d56l         1/1     Running   0          30m
    coredns-s7m2t         1/1     Running   0          30m
  5. 執(zhí)行以下命令,持續(xù)查看CoreDNS日志。

    kubectl -n kube-system logs -f --tail=500 coredns-7d56l
    說明

    替換容器組名稱coredns-7d56l為上述步驟4中出現(xiàn)的任意一個容器組名稱。

    等待約一分鐘,觀察日志中出現(xiàn)以下輸出,并無其它異常時,表明配置修改成功。

    [INFO] Reloading complete

步驟三:查看ACK CoreDNS DNSTAP Analyser日志

  1. 執(zhí)行以下命令,查看ACK CoreDNS DNSTAP Analyser的所有Pod。

    kubectl -n kube-system get pod | grep dnstap-analyser

    預(yù)期輸出:

    dnstap-analyser-bbdf879-g****         1/1     Running   0          30m
  2. 執(zhí)行以下命令,查看ACK CoreDNS DNSTAP Analyser日志。

    kubectl -n kube-system logs -f dnstap-analyser-bbdf879-g****
    說明

    替換Pod名稱dnstap-analyser-bbdf879-gpfkm為上述步驟1中出現(xiàn)的Pod名稱。

步驟四:分析ACK CoreDNS DNSTAP Analyser日志

在ACK CoreDNS DNSTAP Analyser日志中,每一行是一個經(jīng)過聚合的DNS請求上下文(Session),包含了從客戶端、CoreDNS、上游DNS服務(wù)器之間的所有請求和響應(yīng)的報文。DNS請求上下文(Session)包括:

  • Status字段:不同的Status代表不同的場景。

    上下文狀態(tài)

    描述

    Succeeded

    完整的域名查詢請求,域名的響應(yīng)是正常的(狀態(tài)為NXDOMAIN、NOERROR)。

    Failed

    有問題的域名查詢請求,域名響應(yīng)中狀態(tài)碼異常或上游服務(wù)器連接超時等情況。

    SampleLoss

    CoreDNS或Analyser負(fù)載較高,導(dǎo)致DNSTAP報文丟失,出現(xiàn)這類狀態(tài)時,應(yīng)調(diào)整CoreDNS或Analyser副本數(shù),使單個容器的負(fù)載下降,提高診斷可信度。

  • BitMap字段:BitMap的值代表了該請求上下文中截取到的DNSTAP報文的種類,根據(jù)截取到的不同種類,得到可能的異常原因。

    上下文Session BitMap值

    含義

    1

    CoreDNS接收到了客戶端的查詢請求,但未返回結(jié)果給客戶端。

    3

    一次完整的內(nèi)部域名查詢,從客戶端發(fā)起了請求,CoreDNS本地緩存中或Kubernetes中存在命中該域名的解析結(jié)果,將結(jié)果返回給了客戶端。

    5

    無法連接到上游服務(wù)器,從客戶端發(fā)起了請求,CoreDNS將請求轉(zhuǎn)發(fā)給上游服務(wù)器進(jìn)行查詢,上游服務(wù)器未返回結(jié)果。

    15

    一次完整的外部域名查詢,從客戶端發(fā)起請求,CoreDNS將請求轉(zhuǎn)發(fā)給上游服務(wù)器進(jìn)行查詢,上游服務(wù)器完成查詢并返回,CoreDNS又將結(jié)果返回給客戶端。

  • Messages字段:DNS請求上下文Session中Messages字段記錄了DNS請求、響應(yīng)的原始報文的JSON輸出,可以根據(jù)dns-parameters-6對報文內(nèi)容進(jìn)行問題診斷。

(可選)步驟五:卸載DNSTAP

定位到原因后,建議您卸載DNSTap以避免不必要的日志開銷。卸載流程如下。

  1. 刪除CoreDNS配置文件中包含dnstap的一行。

    1. 執(zhí)行以下命令,編輯CoreDNS配置文件。

      kubectl -n kube-system edit cm coredns -o yaml
    2. 參考以下注釋刪除CoreDNS配置文件中包含dnstap的一行。

      Corefile: |
              .:53 {
                  # 省略
                  ready
      
                  # 刪除您此前添加的以下一行
                  dnstap tcp://10.10.10.10:6000 full
      
                  kubernetes cluster.local in-addr.arpa ip6.arpa {
                  # 省略
                  }
                  # 省略
                  reload
                  loadbalance
              }
    3. 執(zhí)行以下命令,查看當(dāng)前CoreDNS的所有容器組。

      kubectl -n kube-system get pod | grep coredns

      預(yù)期輸出:

      coredns-7d56l         1/1     Running   0          30m
      coredns-s7m2t         1/1     Running   0          30m
    4. 執(zhí)行以下命令,持續(xù)查看CoreDNS日志。

      kubectl -n kube-system logs -f --tail=500 coredns-7d56l
      說明

      替換容器組名稱coredns-7d56l為上述步驟c中出現(xiàn)的任意一個容器組名稱。

      等待約一分鐘,觀察日志中出現(xiàn)以下輸出,并無其它異常時,說明配置修改成功。

      [INFO] Reloading complete
  2. 卸載ACK CoreDNS DNSTAP Analyser組件。

    1. 登錄容器服務(wù)管理控制臺,在左側(cè)導(dǎo)航欄選擇集群

    2. 集群列表頁面,單擊目標(biāo)集群名稱,然后在左側(cè)導(dǎo)航欄,選擇應(yīng)用 > Helm

    3. 在集群管理頁左側(cè)導(dǎo)航欄中,單擊應(yīng)用 > Helm

    4. Helm頁面,單擊ack-coredns-dnstap-analyser操作列的刪除,根據(jù)頁面提示完成刪除。