針對連線問題進行疑難排解概觀
隨著 Azure 中複雜且高效能工作負載的增加,對於執行這些工作負載的複雜網路運作狀態,需要提高可見度和控制能力。 這類複雜網路是使用 Azure 所提供的網路安全性群組、防火牆、使用者定義路由及資源來實作。 複雜的設定使得針對連線問題進行疑難排解成為一項挑戰。
Azure 網路監看員的連線疑難排解功能有助於縮短診斷和疑難排解網路連線問題的時間量。 傳回的結果會針對出現連線問題的根本原因,以及其是由平台還是使用者設定問題所造成,提供深入見解。
連線疑難排解可藉由提供完整的方法來執行所有連線主要檢查,以偵測網路安全性群組、使用者定義路由及封鎖的連接埠相關問題,藉此減少平均解決時間 (MTTR)。 它會提供下列結果,並提供可採取動作的深入解析,其中提供逐步指南或對應的文件,以更快解決:
- 使用不同的目的地類型進行連線測試 (VM、URI、FQDN 或 IP 位址)
- 影響可觸達性的設定問題
- 從來源到目的地的所有可能躍點路徑
- 每個躍點的延遲
- 延遲 (來源和目的地之間的最小值、最大值及平均值)
- 從來源到目的地的圖表拓撲檢視
- 連線疑難排解檢查期間探查失敗的數目
支援的來源和目的地類型
連線疑難排解提供從下列任何 Azure 資源檢查 TCP 或 ICMP 連線的功能:
- 虛擬機器
- 虛擬機器擴展集
- Azure Bastion 執行個體
- 應用程式閘道 (v1 除外)
重要
線上疑難解答需要您從中疑難解答的虛擬機已安裝 網路監看員 代理程式 VM 擴充功能。 目的地虛擬機器上不需要擴充功能。
- 若要在 Windows 虛擬機上安裝擴充功能,請參閱適用於 Windows 的代理程式 VM 擴充功能 網路監看員。
- 若要在Linux虛擬機上安裝擴充功能,請參閱 網路監看員Linux的代理程式 VM 擴充功能。
- 若要更新已安裝的擴充功能,請參閱 網路監看員 將代理程式 VM 擴充功能更新為最新版本。
連線疑難排解可以測試這些目的地的連線:
- 虛擬機器
- 完整網域名稱 (FQDN)
- 統一資源識別項 (URI)
- IP 位址
連線疑難排解偵測到的問題
連線疑難排解可以偵測下列可能會影響連線的問題類型:
- 高 VM CPU 使用率
- 高 VM 記憶體使用率
- 虛擬機器 (客體) 防火牆規則封鎖流量
- DNS 解析失敗
- 設定錯誤或遺失路由
- 封鎖流量的網路安全性群組 (NSG) 規則
- 無法在指定的來源連接埠開啟通訊端
- 缺少 Azure ExpressRoute 線路的位址解析通訊協定輸入項目
- 未接聽指定目的地連接埠的伺服器
回應
下表顯示執行連線疑難排解之後傳回的屬性。
屬性 | 說明 |
---|---|
ConnectionStatus | 連線檢查的狀態。 可能的結果是 Reachable 和 Unreachable。 |
AvgLatencyInMs | 連線檢查期間的平均延遲,以毫秒為單位。 (只有在檢查狀態為可連線時顯示)。 |
MinLatencyInMs | 連線檢查期間的最短延遲,以毫秒為單位。 (只有在檢查狀態為可連線時顯示)。 |
MaxLatencyInMs | 連線檢查期間的最長延遲,以毫秒為單位。 (只有在檢查狀態為可連線時顯示)。 |
ProbesSent | 檢查期間傳送的探查數目。 最大值為 100。 |
ProbesFailed | 檢查期間失敗的探查數目。 最大值為 100。 |
Hops | 從來源到目的地的逐躍點路徑。 |
Hops[].Type | 資源類型。 可能的值為 Source、VirtualAppliance、VnetLocal 及 Internet。 |
Hops[].Id | 躍點的唯一識別碼。 |
Hops[].Address | 躍點的 IP 位址。 |
Hops[].ResourceId | 如果躍點是一項 Azure 資源,則為躍點的資源識別碼。 如果是網際網路資源,ResourceID 是 Internet。 |
Hops[].NextHopIds | 下個採取躍點的唯一識別碼。 |
Hops[].Issues | 躍點檢查期間遇到之問題的集合。 如果沒有任何問題,則值會是空白。 |
Hops[].Issues[].Origin | 在目前躍點,發生問題之處。 可能的值包括: Inbound - 問題是在從上一個躍點到目前躍點的連結上。 Outbound - 問題是在從目前躍點到下一個躍點的連結上。 Local - 問題位於目前的躍點。 |
Hops[].Issues[].Severity | 偵測到問題的嚴重性。 可能的值為 Error 和 Warning。 |
Hops[].Issues[].Type | 偵測到問題的類型。 可能的值包括: CPU 記憶體 GuestFirewall DnsResolution NetworkSecurityRule UserDefinedRoute |
Hops[].Issues[].Context | 偵測到問題的相關詳細資料。 |
Hops[].Issues[].Context[].key | 傳回之索引鍵值組的索引鍵。 |
Hops[].Issues[].Context[].value | 傳回之索引鍵值組的值。 |
NextHopAnalysis.NextHopType | 下一個躍點的類型。 可能的值包括: HyperNetGateway 網際網路 None VirtualAppliance VirtualNetworkGateway VnetLocal |
NextHopAnalysis.NextHopIpAddress | 下個躍點的 IP 位址。 |
與傳回之路由相關聯的路由表資源識別碼。 如果傳回的路由未對應至任何使用者建立的路由,則此欄位將是字串系統路由。 | |
SourceSecurityRuleAnalysis.Results[].Profile | 網路設定診斷設定檔。 |
SourceSecurityRuleAnalysis.Results[].Profile.Source | 流量來源。 可能的值為:*、IP 位址/CIDR 及 服務標籤。 |
SourceSecurityRuleAnalysis.Results[].Profile.Destination | 流量目的地。 可能的值為:*、IP 位址/CIDR 及 服務標籤。 |
SourceSecurityRuleAnalysis.Results[].Profile.DestinationPort | 流量目的地連接埠。 可能的值為:* 和 (0 - 65535) 範圍內的單一連接埠。 |
SourceSecurityRuleAnalysis.Results[].Profile.Protocol | 要驗證的通訊協定。 可能的值為:*、TCP 及 UDP。 |
SourceSecurityRuleAnalysis.Results[].Profile.Direction | 流量的方向。 可能的值為輸入及輸出。 |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult | 網路安全性群組結果。 |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.EvaluatedSecurityGroups[] | 結果網路安全性群組診斷的清單。 |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.SecurityRuleAccessResult | 允許或拒絕網路流量。 可能的值為允許和拒絕。 |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.EvaluatedSecurityGroups[].AppliedTo | 套用網路安全性群組之 NIC 或子網路的資源識別碼。 |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.EvaluatedSecurityGroups[].MatchedRule | 符合的網路安全性規則。 |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.EvaluatedSecurityGroups[].MatchedRule.Action | 允許或拒絕網路流量。 可能的值為允許和拒絕。 |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.EvaluatedSecurityGroups[].MatchedRule.RuleName | 符合的網路安全性規則名稱。 |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.EvaluatedSecurityGroups[].NetworkSecurityGroupId | 網路安全性群組識別碼。 |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.RulesEvaluationResult[] | 網路安全性規則評估結果的清單。 |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.RulesEvaluationResult[].DestinationMatched | 值表示目的地是否相符。 布林值。 |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.RulesEvaluationResult[].DestinationPortMatched | 值表示目的地連接埠是否相符。 布林值。 |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.RulesEvaluationResult[].Name | 網路安全性規則的名稱。 |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.RulesEvaluationResult[].ProtocolMatched | 值表示是否符合通訊協定。 布林值。 |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.RulesEvaluationResult[].SourceMatched | 值表示是否符合來源。 布林值。 |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.RulesEvaluationResult[].SourcePortMatched | 值表示是否符合來源連接埠。 布林值。 |
DestinationSecurityRuleAnalysis | 與 SourceSecurityRuleAnalysis 格式相同。 |
SourcePortStatus | 判斷來源端的連接埠是否可觸達。 可能的值為: Unknown 可觸達 不穩定 NoConnection 逾時 |
DestinationPortStatus | 判斷目的地的連接埠是否可觸達。 可能的值為: Unknown 可觸達 不穩定 NoConnection 逾時 |
下列範例顯示躍點上發現的問題。
"Issues": [
{
"Origin": "Outbound",
"Severity": "Error",
"Type": "NetworkSecurityRule",
"Context": [
{
"key": "RuleName",
"value": "UserRule_Port80"
}
]
}
]
錯誤類型
連線疑難排解傳回連線的相關錯誤類型。 下表提供可能傳回的錯誤類型清單。
類型 | 描述 |
---|---|
CPU | 高 CPU 使用率。 |
記憶體 | 高記憶體使用率。 |
GuestFirewall | 由於虛擬機器防火牆設定,因此封鎖流量。 TCP Ping 是特別的使用案例:若沒有允許的規則,防火牆本身仍會回應用戶端的 TCP Ping 要求,即使 TCP Ping 未到達目標 IP 位址/FQDN 也是如此。 不會記錄此事件。 若有網路規則允許存取目標 IP 位址/FQDN,該 ping 要求會到達目標伺服器,並將回應轉送回用戶端。 此事件會記錄在網路規則記錄中。 |
DNSResolution | 目的地位址的 DNS 解析失敗。 |
NetworkSecurityRule | 網路安全性群組規則會封鎖流量 (傳回安全性規則)。 |
UserDefinedRoute | 因為使用者定義或系統路由而卸除流量。 |
後續步驟
若要瞭解如何使用連線疑難排解來測試和疑難排解連線,請繼續: