練習 - 使用網路監看員監視和診斷工具來對網路進行疑難排解
Azure 網路監看員可協助您診斷設定錯誤,這類錯誤會阻止虛擬機器 (VM) 進行通訊。
假設您有兩部無法通訊的 VM。 您想要診斷問題並儘快解決。 您想要使用網路監看員來執行該作業。
在這裡,您將對不同子網路中兩部 VM 之間的連線能力進行疑難排解。
重要
您必須有自己的 Azure 訂用帳戶才能執行本練習,且可能會產生費用。 如果您還沒有 Azure 訂用帳戶,請在開始前建立免費帳戶。
設定虛擬網路和 VM
我們就先從建立基礎結構開始。 我們也會刻意建立設定錯誤:
在瀏覽器中開啟 Azure Cloud Shell 工作階段。
開啟您要在其中建立資源的目錄。
在 Cloud Shell 功能表列的左上角,選取 [Bash]。
列出您訂用帳戶支援的區域。
az account list-locations
建立資源群組並為其指派變數名稱 RG,方法是執行下列程式碼,以資源群組的名稱取代
<resource group name>
,並以先前輸出中的區域名稱取代<name>
。az group create --name <resource group name> --location <name> RG=<resource group name>
執行此命令,建立名為 MyVNet1 的虛擬網路,且具有名為 FrontendSubnet 的子網路。
az network vnet create \ --resource-group $RG \ --name MyVNet1 \ --address-prefixes 10.10.0.0/16 \ --subnet-name FrontendSubnet \ --subnet-prefixes 10.10.1.0/24
執行此命令,以建立另一個名為 BackendSubnet 的子網路。
az network vnet subnet create \ --address-prefixes 10.10.2.0/24 \ --name BackendSubnet \ --resource-group $RG \ --vnet-name MyVNet1
執行此命令,在 FrontendSubnet 中部署 VM,並以您選擇的複雜密碼取代
<password>
。az vm create \ --resource-group $RG \ --name FrontendVM \ --vnet-name MyVNet1 \ --subnet FrontendSubnet \ --image Win2019Datacenter \ --admin-username azureuser \ --admin-password <password>
注意
如果收到錯誤訊息「partofthepassword:找不到事件」,請使用允許的字元建立新密碼。
執行下列程式碼,在 FrontendVM 上安裝 IIS。
az vm extension set \ --publisher Microsoft.Compute \ --name CustomScriptExtension \ --vm-name FrontendVM \ --resource-group $RG \ --settings '{"commandToExecute":"powershell.exe Install-WindowsFeature -Name Web-Server"}' \ --no-wait
執行此命令,在 BackendSubnet 中部署虛擬機器,並以您選擇的複雜密碼取代
<password>
。az vm create \ --resource-group $RG \ --name BackendVM \ --vnet-name MyVNet1 \ --subnet BackendSubnet \ --image Win2019Datacenter \ --admin-username azureuser \ --admin-password <password>
執行此命令,在 BackendVM 上安裝 IIS。
az vm extension set \ --publisher Microsoft.Compute \ --name CustomScriptExtension \ --vm-name BackendVM \ --resource-group $RG \ --settings '{"commandToExecute":"powershell.exe Install-WindowsFeature -Name Web-Server"}' \ --no-wait
輸入下列命令,建立網路安全性群組 (NSG) MyNsg。
az network nsg create \ --name MyNsg \ --resource-group $RG
建立會阻止 VM 之間通訊的設定錯誤。
az network nsg rule create \ --resource-group $RG \ --name MyNSGRule \ --nsg-name MyNsg \ --priority 4096 \ --source-address-prefixes '*' \ --source-port-ranges '*' \ --destination-address-prefixes '*' \ --destination-port-ranges 80 443 3389 \ --access Deny \ --protocol TCP \ --direction Inbound \ --description "Deny from specific IP address ranges on 80, 443 and 3389."
執行下列命令,為網路安全性群組與子網路建立關聯。
az network vnet subnet update \ --resource-group $RG \ --name BackendSubnet \ --vnet-name MyVNet1 \ --network-security-group MyNsg
為您的區域啟用網路監看員
現在,使用 Azure CLI,在與基礎結構相同的區域中設定網路監看員。
- 執行此命令來啟用網路監看員,並將
<location>
取代為您在此工作階段開始時建立資源群組時所使用的 Azure 區域。
az network watcher configure \
--enabled true \
--resource-group $RG \
--locations <location>
使用網路監看員來顯示拓撲
現在,您可以在 Azure 入口網站使用網路監看員,對不同子網路中兩部 VM 之間的連線進行疑難排解。 您的同事已回報在這兩部虛擬機器間,發生了 HTTP/HTTPS 的連線問題。 首先,請先調查網路拓撲。
登入 Azure 入口網站。
在全域搜尋中輸入網路監看員,然後選取該服務。 [網路監看員概觀] 窗格隨即出現,列出作用中的網路監看員。
在 [網路監看員] 功能表中,選取 [監視] 底下的 [拓撲]。 [網路監看員|拓撲] 窗格會隨即出現。
在下拉式欄位中,選取您的 [訂閱] 和 [資源群組] 進行此練習。 MyVNet1 的網路拓撲會顯示前端和後端 VM 介面。 這是您在本練習開始時建立的虛擬網路。
使用連線監視器來從後端到前端執行測試
此拓撲看似正確。 若要取得更多資訊,請在連線監視器中設定一些測試。 從建立由後端 VM 到前端 VM 的測試開始。
在 [網路監看員] 功能表中,選取 [監視] 底下的 [連線監視]。 [網路監看員 | 連線監視] 概觀窗格隨即出現。
在命令列上,選取 [建立]。 [建立連線監視器] 窗格會隨即出現。
在 [基本] 索引標籤上,為每個設定輸入下列值。
設定 值 連線監視器名稱 Back-to-front-HTTP-test 訂用帳戶 從下拉式清單中選取訂用帳戶 區域 選取您部署資源的 Azure 區域 工作區設定 已選取 [使用連線監視器建立的工作區 (預設)] 選取 [下一步:測試群組]。 [新增測試群組詳細資料] 窗格隨即出現。
測試群組名稱請輸入 Back-to-front-HTTP-test-group。
在 [來源] 方塊中,選取 [新增來源]。 [新增來源] 窗格便會出現。
在 [Azure 端點] 索引標籤上,選取 [子網路],確定已選取您的訂用帳戶,然後從清單中選取 [BackendSubnet]。
選取 [新增端點]。 在 [來源] 方塊中,已識別為來源的 BackendSubnet。 選取此端點,選取 [編輯],接著將其重新命名為 [BackendSubnet],然後選取 [儲存]。
在 [測試設定] 方塊中,選取 [新增測試設定]。 [新增測試設定] 窗格隨即出現。
在 [新設定] 索引標籤上,為每個設定輸入下列值。
設定 值 測試設定名稱 Back-to-front-HTTP-test-configuration 通訊協定 HTTP 目的地連接埠 80 測試頻率 每 30 秒 其餘設定皆保持為預設值 選取 [新增測試組態],將此測試組態新增至您的測試群組。 [新增測試群組詳細資料] 會再次出現,並識別您的測試設定。
在 [目的地] 方塊中,選取 [新增目的地]。 [新增目的地] 窗格隨即出現。
在 [Azure 端點] 索引標籤上,選取 [子網路],確定已選取您的訂用帳戶,然後從清單中選取 [FrontendSubnet]。
選取 [新增端點]。 [新增測試群組詳細資料] 隨即重新出現,並將 FrontendSubnet 識別為目的地。
選取窗格底部的 [新增測試群組]。 [建立連線監視器] 窗格隨即出現。
在 [測試群組] 索引標籤上,請注意,會以來源做為後端和以目的地做為前端將測試群組列出。
選取 [檢閱 + 建立],然後選取 [建立]。
如果您的測試未出現在 [連線監視器] 窗格中,請選取 [重新整理] 按鈕。 Back-to-front-HTTP-test 的結果應顯示,由於 NSG 與後端子網路相關聯,因此流量會從後端 VM 流至前端 VM,而不會發生任何問題。
使用連線監視器來執行從前端到後端的測試
反向執行相同測試。 讓我們在連線監視器中設定另一項測試。 從建立由前端 VM 到後端 VM 的測試開始。
在 [連線監視器] 窗格中,選取 [建立]。
在 [基本] 索引標籤上,為每個設定輸入下列值。
設定 值 連線監視器名稱 Front-to-back-HTTP-test 訂用帳戶 從下拉式清單中選取訂用帳戶 區域 選取您部署資源的 Azure 區域 選取 [下一步:測試群組]。 [新增測試群組詳細資料] 窗格隨即出現。
在 [測試群組名稱] 中輸入 Front-to-back-HTTP-test-group,然後在 [搜尋] 方塊中選取 [新增來源]。 [新增來源] 窗格便會出現。
在 [Azure 端點] 索引標籤上,選取 [子網路],確定已選取您的訂用帳戶,然後從清單中選取 [FrontSubnet]。
選取 [新增端點]。 在 [來源] 方塊中,已識別為來源的 BackendSubnet。 選取此端點,選取 [編輯],接著將其重新命名為 [FrontendSubnet],然後選取 [儲存]。
在 [測試設定] 方塊中,選取 [新增測試設定]。 [新增測試設定] 窗格隨即出現。
在 [新設定] 索引標籤上,為每個設定輸入下列值。
設定 值 測試設定名稱 Front-to-back-HTTP-test-configuration 通訊協定 HTTP 目的地連接埠 80 測試頻率 每 30 秒 「其餘設定都接受預設值」 選取 [新增測試設定]。 [新增測試群組詳細資料] 會再次出現,並識別您的測試設定。
在 [目的地] 方塊中,選取 [新增目的地]。 [新增目的地] 窗格隨即出現。
在 [Azure 端點] 索引標籤上,選取 [子網路],確定已選取您的訂用帳戶,然後從清單中選取 [BackendSubnet]。
選取 [新增端點]。 [新增測試群組詳細資料] 窗格隨即重新出現,並將 BackendSubnet 識別為目的地。
選取窗格底部的 [新增測試群組]。 [建立連接監視] 窗格隨即出現。
在 [測試群組] 索引標籤上,注意到目前列出的 Front-to-back-HTTP-test-group。
選取 [檢閱 + 建立],然後選取 [建立]。
如果您的測試未出現在 [連線監視器] 窗格中,請選取 [重新整理] 按鈕。 Front-to-back-HTTP-test 的結果應顯示,由於 NSG 與後端子網路相關聯,因此流量不會從前端 VM 流至後端 VM。
使用 IP 流程驗證來測試連線
讓我們使用 IP 流程驗證工具來取得詳細資訊。
在 [網路診斷工具] 下的 [資源] 功能表中,依序選取 [網路監看員]、[IP 流量驗證]。
針對每個設定輸入下列值來設定測試,然後選取 [檢查]。
設定 值 訂用帳戶 選取您的訂用帳戶 資源群組 選取您的資源群組 虛擬機器 BackendVM 網路介面 BackendVMVMNic 通訊協定 TCP 方向 傳入 本機 IP 位址 10.10.2.4 本機連接埠 3389 遠端 IP 10.10.1.4 遠端連接埠 3389 結果顯示因為 NSG 和安全性規則而拒絕存取。
在此練習中,您已成功使用網路監看員工具來探索這兩個子網路之間的連線能力問題。 有一個方向能夠通訊,但另一個方向則會因為 NSG 規則而遭到封鎖。