共用方式為


針對虛擬機認證進行疑難解答

當您將虛擬機 (VM) 映射發佈至 Azure Marketplace 時,Azure 小組會驗證它,以確保其可開機、安全且與 Azure 相容。 如果您的 VM 映射失敗任何高品質的測試,則不會發布。 您會收到描述問題的錯誤訊息。

本文說明 VM 映像發佈期間常見的錯誤訊息,以及相關的解決方案。

注意

如果您有有關本文或改進建議的問題,請連絡 合作夥伴中心支援

VM 擴充功能失敗

檢查您的映像是否支援 VM 擴充功能。

若要啟用 VM 擴充功能:

  1. 選取您的Linux VM。

  2. 移至診斷設定。

  3. 藉由更新 記憶體帳戶來啟用基底矩陣。

  4. 選取 [儲存]。

    顯示如何啟用來賓層級監視的螢幕快照。

若要確認 VM 擴充功能已正確啟用:

  1. 在 VM 中,選取 [VM 擴充功能] 索引標籤,然後確認 [Linux 診斷擴充功能的狀態。

  2. 檢查布建狀態。

    • 如果狀態為 布建成功,則會通過延伸模塊測試案例。
    • 如果狀態 布建失敗,則擴充功能測試案例失敗,而且您需要設定強化旗標。

    顯示布建成功的螢幕快照。

    如果 VM 擴充功能失敗,請參閱 使用 Linux 診斷擴充功能來監視計量和記錄 加以啟用。 如果您不想要啟用 VM 擴充功能,請連絡支援小組,並要求他們將其停用。

VM 布建問題

確認您已嚴格遵循 VM 布建程式,再提交供應專案。 若要檢視布建 VM 的 JSON 格式,請參閱 測試虛擬機映像

布建問題可能包括下列失敗案例:

場景 錯誤 原因 溶液
1 不合法的虛擬硬碟 (VHD) 如果 VHD 頁尾中指定的 Cookie 值不正確,VHD 會被視為無效。 重新建立映像並提交要求。
2 無效的 Blob 類型 VM 布建失敗,因為所使用的 Blob 是區塊類型,而不是頁面類型。 重新建立影像作為頁面類型,並提交要求。
3 布建逾時或未正確一般化 VM 一般化有問題。 使用一般化重新建立映像,並提交要求。

注意

如需 VM 一般化的詳細資訊,請參閱:

注意

如果布建失敗,因為 VM 映射需要部署自定義 ARM 範本,請在合作夥伴中心的 [技術設定] 頁面中啟用 [需要自定義 ARM 範本進行部署]。 這有助於認證小組針對此要求採取適當的動作,而不會讓其無法布建問題。

自定義ARM樣本複選框

VHD 規格

'conectix' 字串是 VHD 規格的一部分。 它會定義為 VHD 頁尾中識別檔案建立者的 8 位元組 Cookie。 Microsoft建立的所有 VHD 檔案都有此 Cookie。

VHD 格式化的 Blob 應該具有 512 位元組的頁尾,格式如下:

硬碟頁尾欄位 大小 (位元組)
餅乾 8
特徵 4
檔案格式版本 4
數據位移 8
時間戳 4
Creator Application 4
建立者版本 4
建立者主機OS 4
原始大小 8
目前大小 8
磁碟幾何 4
磁碟類型 4
校驗和 4
唯一標識碼 16
儲存狀態 1
保留 427

VHD 規格

若要確保順暢的發佈體驗,請確定您的 VHD 符合下列準則:

  • Cookie 包含字串 'conectix'。
  • 磁碟類型為 Fixed。
  • VHD 的虛擬大小至少為 20 MB。
  • VHD 已對齊。 虛擬大小必須是 1 MB 的倍數。
  • VHD Blob 長度等於虛擬大小加上 VHD 頁尾長度 (512)。

下載VHD 規格。

適用於 Windows 的軟體合規性

如果您的 Windows 映射要求因為軟體合規性問題而遭到拒絕,可能是您建立了已安裝 SQL Server 實例的 Windows 映像。 相反地,您必須從 Azure Marketplace 取得相關的 SQL Server 版本基底映射。

請勿建立自己的 Windows 映射,並在其中安裝 SQL Server。 使用 Azure Marketplace 中已核准的 SQL Server 基底映射 (Enterprise/Standard/web)。

如果您嘗試安裝 Visual Studio 或任何 Office 授權的產品,請連絡支援小組以取得事先核准。

如需選取已核准基底的詳細資訊,請參閱 從核准的基底建立虛擬機

工具組測試案例執行失敗

Microsoft Certification 工具組可協助您執行測試案例,並確認 VHD 或映射與 Azure 環境相容。

下載 Microsoft Certification Toolkit

Linux 測試案例

下表列出工具組執行的Linux測試案例。 測試驗證會在描述中指出。

場景 測試案例 描述
1 Bash 歷程記錄 建立 VM 映射之前,應該先清除 Bash 歷程記錄檔。
2 Linux 代理程式版本 必須安裝最低支援的 Azure Linux 代理程式版本或更新版本。
3 必要的核心參數 確認已設定下列核心參數:
console=ttyS0
earlyprintk=ttyS0
4 交換OS磁碟上的磁碟分區 確認未在 OS 磁碟上建立交換分割區。
5 OS 磁碟上的根磁碟分區 建立OS磁碟的單一根磁碟分區。
6 OpenSSL 版本 OpenSSL 版本應該是 v0.9.8 或更新版本。
7 Python 版本 強烈建議使用 Python 2.6 版或更新版本。
8 用戶端運作間隔 將 ClientAliveInterval 設定為 180。 在應用程式需求上,它可以從 30 設定為 235。 如果您要為終端使用者啟用 SSH,則必須如所述設定此值。
9 OS 架構 僅支援 64 位作業系統。
10 自動更新 識別 Linux 代理程式自動更新是否已啟用。

常見的測試案例錯誤

如需執行測試案例時可能看到的常見錯誤,請參閱下表:

場景 測試案例 錯誤 溶液
1 Linux 代理程式版本測試案例 必須安裝最低支援的 Azure Linux 代理程式版本或更新版本。(https://learn.microsoft.com/troubleshoot/azure/virtual-machines/support-extensions-agent-version 更新 Linux 代理程式版本。 如需詳細資訊,請瀏覽 Linux 代理程式版本更新頁面
2 Bash歷程記錄測試案例 如果提交的影像中Bash歷程記錄的大小超過1 KB,就會發生錯誤。 大小限製為 1 KB,以確保您的 Bash 歷程記錄檔案不包含任何潛在的敏感性資訊。 藉由將 VHD 掛接至另一個可運作的 VM,並進行變更,以將大小縮減為 1 KB 或更少。 例如,刪除 .bash_history 檔案。
3 必要的核心參數測試案例 console 的值未設定為 ttyS0時,您會收到此錯誤。 執行下列命令來檢查:
cat /proc/cmdline
console 的值設定為 ttyS0,然後重新提交要求。
4 ClientAlive 間隔測試案例 如果工具組提供此測試案例的失敗結果,則 ClientAliveInterval有不適當的值。 ClientAliveInterval 的值設定為小於或等於 235,然後重新提交要求。
5 smoke_test 當映像因為核心異常而無法開機或重新啟動時,您會收到錯誤。 您可以從「錯誤描述」取得核心異常的一些呼叫追蹤資訊。 如果您想要查看整個呼叫追蹤和序列記錄檔,您可以使用映像在 Azure 中部署 VM,並在 Azure 入口網站中檢查 VM 資源中的「序列控制台」。 當您在 Azure 中建立 VM 時,您可以從 Azure 入口網站下載序列主控台記錄檔(如需序列主控台的詳細資訊,請參閱 https://learn.microsoft.com/en-us/troubleshoot/azure/virtual-machines/serial-console-linux
6 verify_dns_name_resolution 此測試案例會執行 command:ping bing.com -c 5 -i 0.5 -O 來檢查 DNS 名稱解析。 如果無法偵測公用網址 『bing.com』,就會發生錯誤。 請參閱 https://learn.microsoft.com/en-us/azure/virtual-machines/linux/azure-dns 以新增正確的設定
7 verify_no_pre_exist_users 偵測到某些使用者的密碼或偵測到某些使用者的金鑰時,您會收到「偵測到使用者 XXXX 的密碼」錯誤 檢查 /etc/shadow 檔案以查看是否有某些用戶的密碼,如果是的話,您必須刪除密碼,並刪除 '{user's home directory}/.ssh/authorized_keys' 檔案,並遵循錯誤訊息
8 validate_netvsc_reload 您會收到錯誤「失敗」。 SSHException:SSH 會話未使用中。 如果在執行下列命令之後無法連線 VM,則為 。 您會收到錯誤「發現來自xx節點的核心異常狀況」。 如果在執行 命令後從 VM 找到核心異常狀況:『modprobe -r hv_netvsc;modprobe hv_netvsc;ip link set eth0 down;ip link set eth0 up;dhclient -r eth0;dhclient eth0 ' 檢查序列主控台,以查看在執行上述命令期間是否發生任何錯誤。 如需網路虛擬網路用戶端 (NetVSC) 的詳細資訊,您可以流覽 https://learn.microsoft.com/en-us/windows-hardware/drivers/network/sr-iov-synthetic-data-path

Windows 測試案例

下表列出工具組執行的 Windows 測試案例,以及測試驗證的描述:

場景 測試案例 描述
1 OS 架構 Azure 僅支援 64 位作業系統。
2 用戶帳戶相依性 應用程式執行不應相依於系統管理員帳戶。
3 故障轉移叢集 尚不支援 Windows Server 故障轉移叢集功能。 應用程式不應該相依於這項功能。
4 IPV6 Azure 環境中尚不支援 IPv6。 應用程式不應該相依於這項功能。
5 DHCP 尚未支援動態主機設定通訊協定伺服器角色。 應用程式不應該相依於這項功能。
6 遠端訪問 尚未支援遠端訪問 (Direct Access) 伺服器角色。 應用程式不應該相依於這項功能。
7 Rights Management Services Rights Management Services。 尚不支援伺服器角色。 應用程式不應該相依於這項功能。
8 Windows 部署服務 Windows 部署服務。 尚不支援伺服器角色。 應用程式不應該相依於這項功能。
9 BitLocker 磁碟驅動器加密 操作系統硬碟不支援 BitLocker 磁碟驅動器加密,但可能會用於數據磁碟。
10 因特網記憶體名稱伺服器 尚不支援因特網記憶體名稱伺服器功能。 應用程式不應該相依於這項功能。
11 多重路徑 I/O 多重路徑 I/O。 尚不支援此伺服器功能。 應用程式不應該相依於這項功能。
12 網路負載平衡 網路負載平衡。 尚不支援此伺服器功能。 應用程式不應該相依於這項功能。
13 對等名稱解析通訊協定 對等名稱解析通訊協定。 尚不支援此伺服器功能。 應用程式不應該相依於這項功能。
14 SNMP 服務 尚不支援簡單網路管理通訊協定 (SNMP) 服務功能。 應用程式不應該相依於這項功能。
15 Windows 因特網名稱服務 Windows 因特網名稱服務。 尚不支援此伺服器功能。 應用程式不應該相依於這項功能。
16 無線 LAN 服務 無線 LAN 服務。 尚不支援此伺服器功能。 應用程式不應該相依於這項功能。

如果您遇到上述測試案例的任何失敗,請參閱解決方案數據表中的 描述 數據行。 如需詳細資訊,請連絡支援小組。

數據磁碟大小驗證

大小大於 1023 GB 的數據磁碟要求將不會獲得核准。 此規則適用於Linux和 Windows。

重新提交大小小於或等於 1023 GB 的要求。

OS 磁碟大小驗證

如需OS磁碟大小的限制,請參閱下列規則。 當您提交任何要求時,請確認 OS 磁碟大小符合 Linux 或 Windows 的限制。

操作系統 建議的 VHD 大小
Linux 1 GB 到 1023 GB
窗戶 30 GB 至 250 GB

因為 VM 允許存取基礎作業系統,因此請確定 VHD 大小足以供 VHD 使用。 磁碟在停機的情況下無法擴充。 使用從 30 GB 到 50 GB 的磁碟大小。

VHD 大小 實際佔用的大小 溶液
>500 tebibytes (TiB) n/a 請連絡支援小組以取得例外狀況核准。
250-500 TiB >200 gibibytes (GiB) 與 Blob 大小的差異 請連絡支援小組以取得例外狀況核准。

注意

較大的磁碟大小會產生較高的成本,並在設定和複寫程式期間造成延遲。 由於此延遲和成本,支援小組可能會尋求例外狀況核准的理由。

適用於 Windows 的 WannaCry 修補程式驗證測試

若要防止與 WannaCry 病毒相關的潛在攻擊,請確定所有 Windows 映像要求都會以最新的修補程式更新。

您可以從 C:\windows\system32\drivers\srv.syssrv2.sys確認映像檔版本。

下表顯示 Windows Server 的最低修補版本:

操作系統 版本
Windows Server 2008 R2 6.1.7601.23689
Windows Server 2012 6.2.9200.22099
Windows Server 2012 R2 6.3.9600.18604
Windows Server 2016 10.0.14393.953
Windows Server 2019

注意

Windows Server 2019 沒有任何必要版本需求。

SACK 弱點修補程序驗證

當您提交 Linux 映射時,可能會因為核心版本問題而拒絕您的要求。

使用核准的版本更新核心,然後重新提交要求。 您可以在下表中找到核准的核心版本。 版本號碼應等於或大於此處所列的數位。

如果您的映像未安裝下列其中一個核心版本,請使用正確的修補程式加以更新。 在映像更新這些必要修補程序之後,要求支援小組的必要核准:

  • CVE-2019-11477
  • CVE-2019-11478
  • CVE-2019-11479
操作系統系列 版本 內核
Ubuntu 14.04 LTS 4.4.0-151
14.04 LTS 4.15.0-1049-*-azure
16.04 LTS 4.15.0-1049
18.04 LTS 4.18.0-1023
18.04 LTS 5.0.0-1025
18.10 4.18.0-1023
19.04 5.0.0-1010
19.04 5.3.0-1004
RHEL 和 Cent OS 6.10 2.6.32-754.15.3
7.2 3.10.0-327.79.2
7.3 3.10.0-514.66.2
7.4 3.10.0-693.50.3
7.5 3.10.0-862.34.2
7.6 3.10.0-957.21.3
7.7 3.10.0-1062.1.1
8.0 4.18.0-80.4.2
8.1 4.18.0-147
“7-RAW” (7.6)
“7-LVM” (7.6) 3.10.0-957.21.3
RHEL-SAP 7.4 待定
RHEL-SAP 7.5 待定
SLES SLES11SP4 (包括 SAP) 3.0.101-108.95.2
適用於 SAP 的SLES12SP1 3.12.74-60.64.115.1
適用於 SAP 的SLES12SP2 4.4.121-92.114.1
SLES12SP3 4.4180-4.31.1 (kernel-azure)
適用於 SAP 的SLES12SP3 4.4.180-94.97.1
SLES12SP4 4.12.14-6.15.2 (kernel-azure)
適用於 SAP 的SLES12SP4 4.12.14-95.19.1
SLES15 4.12.14-5.30.1 (kernel-azure)
SLES15 for SAP 4.12.14-5.30.1 (kernel-azure)
SLES15SP1 4.12.14-5.30.1 (kernel-azure)
神諭 6.10 UEK2 2.6.39-400.312.2
UEK3 3.8.13-118.35.2
RHCK 2.6.32-754.15.3
7.0-7.5 UEK3 3.8.13-118.35.2
UEK4 4.1.12-124.28.3
RHCK 遵循上述 RHEL
7.6 RHCK 3.10.0-957.21.3
UEK5 4.14.35-1902.2.0
CoreOS 穩定 2079.6.0 4.19.43*
Beta 2135.3.1 4.19.50*
Alpha 2163.2.1 4.19.50*
Debian jessie (安全) 3.16.68-2
jessie backports 4.9.168-1+deb9u3
延展 (安全性) 4.9.168-1+deb9u3
Debian GNU/Linux 10 (buster) Debian 6.3.0-18+deb9u1
buster, sid (伸展後港) 4.19.37-5

影像大小應以 MB 為單位

Azure 上的所有 VHD 都必須具有對齊 1 MB 之倍數的虛擬大小。 如果您的 VHD 不符合建議的虛擬大小,您的要求可能會遭到拒絕。

當您從原始磁碟轉換成 VHD 時,請遵循指導方針。 確定原始磁碟大小是 1 MB 的倍數。 如需詳細資訊,請參閱 非散發的資訊。

VM 存取遭拒

在 VM 上執行測試案例時,存取遭到拒絕 問題,可能是因為許可權不足所造成。

確認您已針對執行自我測試案例的帳戶啟用適當的存取權。 如果未啟用測試案例,請啟用執行測試案例的存取權。 如果您不想啟用存取權,您可能會與支援小組共用自我測試案例結果。

若要使用 SSH 停用的映像提交您的要求,以進行認證程式:

  1. 在映像上 執行適用於 Azure VM 的最新認證測試工具

  2. 引發 支援票證。 請務必附加工具組報告並提供供應項目詳細資料:

    • 供應項目名稱
    • 發行者名稱
    • 方案標識碼/SKU 和版本
  3. 重新提交您的認證要求。

注意

如果您要發佈已停用或限制 SSH 的鎖定 VM 映像,請在合作夥伴中心的 [技術設定] 頁面中啟用 [遠端桌面或 SSH 已停用] 複選框。 這會通知認證小組,這是根據設計,並在映像上執行正確的驗證,而不會讓映像無法進行限制的存取。

鎖定複選框

下載失敗

如需使用共用存取簽章 (SAS) URL 下載 VM 映射時所發生的任何問題,請參閱下表。

錯誤 原因 溶液
找不到 Blob VHD 可能會遭到刪除或從指定的位置移動。
使用中的 Blob VHD 是由另一個內部進程使用。 發行進行時,會修改 VHD 的來源 Blob 記憶體。 當您使用 SAS URL 下載 VHD 時,不應該處於已使用狀態。 此外,在發佈進行時請勿使用/變更 VHD。
無效的 SAS URL VHD 的相關 SAS URL 不正確。 取得正確的 SAS URL。
無效的簽章 VHD 的相關 SAS URL 不正確。 取得正確的 SAS URL。
HTTP 條件式標頭 SAS URL 無效。 取得正確的 SAS URL。
無效的 VHD 名稱 請檢查 VHD 名稱中是否有任何特殊字元,例如百分比符號 % 或引號 " 拿掉特殊字元來重新命名 VHD 檔案。

VM 映像必須有 1 MB 的可用空間

如果您要將映射發佈至 Azure(GPT 磁碟分區),我們強烈建議 保留 OS 磁碟的前 2,048 個扇區 (1 MB) 空白。 這項需求是允許 Azure 將重要的元數據新增至映像(範例包括元數據,以改善客戶的開機時間、計費和其他詳細數據)。 如果您已經 已核准的基底映像 且您的映像具有有效的計費標籤,則這是最佳做法的建議。 不過,如果您的映像沒有有效的計費卷標,如果 OS 磁碟的前 1 MB 不是空的,您的發佈可能會失敗。

如果您要建置本身沒有有效計費卷標的映像,請確定OS磁碟的前2,048個扇區 (1 MB) 是空的。 否則,您的發佈將會失敗。 此需求僅適用於 OS 磁碟(而非資料磁碟)。 如果您要從已核准的基底建置映像,則其前 1 MB 會是空的。 因此,您不需要個別處理它。

若要在OS磁碟保留前1 MB可用,請完成下一節中的步驟。

如何在空白 VHD 上保留 1 MB 的可用空間(2,048 個扇區,每個扇區 512 個字節)

這些步驟僅適用於Linux。

  1. 建立任何類型的Linux VM,例如Ubuntu、CentOS或其他。 填入必要的欄位,然後選取 [下一步][:磁碟

    顯示 [建立虛擬機] 頁面的螢幕快照,其中已醒目提示 [下一步:磁碟] 命令按鈕。

  2. 為您的 VM 建立非受控磁碟。 請使用預設值,或為 OS 磁碟大小OS 磁碟類型,以及 加密類型等欄位指定任何值。

    [建立虛擬機流程] 中 [數據磁碟] 頁面的螢幕快照影像。

  3. 建立 VM 之後,請在左窗格中選取 [磁碟]

    螢幕快照,顯示如何選取 V M 的磁碟

  4. 將 VHD 作為數據磁碟連結至 VM,以建立分割區數據表。

    1. 選取 [連結現有的磁碟

      顯示如何將數據磁碟新增至 V H D 的螢幕快照。

      顯示如何選取 V H D 數據磁碟的螢幕快照。

    2. 尋找您的 VHD 記憶體帳戶。

    3. 選取 [容器],然後選取您的 VHD。

    4. 選取 [確定]

      連結非受控磁碟頁面的螢幕快照。

      您的 VHD 將會新增為數據磁碟 LUN 0。

  5. 重新啟動 VM。

  6. 重新啟動 VM 之後,請使用 Putty 或其他用戶端登入 VM,然後執行 sudo -i 命令以取得根存取權。

    Putty 用戶端命令行螢幕快照,其中顯示 sudo -i 命令。

  7. 在您的 VHD 上建立分割區。

    1. 輸入 fdisk /dev/sdb 命令。

    2. 若要從 VHD 檢視現有的分割區清單,請輸入 p

    3. 輸入 d,以刪除 VHD 中可用的所有現有分割區。 如果不需要,您可以略過此步驟。

      Putty 用戶端命令行螢幕快照,其中顯示刪除現有分割區的命令。

    4. 輸入 n 以建立新的分割區,然後針對 [主要分割區] 選取 [p]。

    5. 輸入 2048 第一個扇區 值。 您可以將最後一個扇區 保留為預設值

      重要

      任何現有的數據都會清除到 2048 個扇區(每個扇區 512 個字節)。 建立新的分割區之前,請先備份 VHD。

      Putty 用戶端命令行螢幕快照,其中顯示已清除資料的命令和輸出。

    6. 輸入 w 以確認數據分割的建立。

      Putty 用戶端命令行螢幕快照,其中顯示用於建立資料分割的命令。

    7. 您可以執行 命令 n fdisk /dev/sdb 並輸入 p來驗證分割區數據表。 您會看到數據分割是以 2048 位移值建立。

      Putty 用戶端命令行螢幕快照,其中顯示建立 2048 位移的命令。

  8. 將 VHD 與 VM 中斷連結,並刪除 VM。

默認認證

永遠不要傳送具有所提交 VHD 的預設認證。 新增預設認證可讓 VHD 更容易遭受安全性威脅。 相反地,當您提交 VHD 時,請建立您自己的認證。

DataDisk 對應不正確

當要求以多個未循序的數據磁碟提交時,就可能發生對應問題。 例如,三個資料磁碟的編號順序必須 0、1、2。 任何其他順序都會被視為對應問題。

以適當的數據磁碟排序重新提交要求。

不正確的OS對應

建立映射時,可能會對應至或指派錯誤的OS標籤。 例如,當您在建立映射時選取 [Windows 做為作業系統名稱的一部分時,OS 磁碟應該只與 Windows 一起安裝。 相同的需求適用於Linux。

VM 未一般化

如果要重複使用從 Azure Marketplace 擷取的所有映像,則必須將操作系統 VHD 一般化。

  • 針對 Linux,下列程式會將 Linux VM 一般化,並將其重新部署為個別的 VM。

    在 SSH 視窗中,輸入下列命令:sudo waagent -deprovision+user

  • 針對 Windows,您可以使用 sysreptool將 Windows 映射一般化。

    如需 sysreptool 工具的詳細資訊,請參閱 系統準備 (Sysprep) 概觀

DataDisk 錯誤

如需與資料磁碟相關的錯誤解決方案,請使用下表:

錯誤 原因 溶液
DataDisk- InvalidUrl: 提交供應專案時,可能會因為無效的邏輯單元編號 (LUN) 而發生此錯誤。 確認數據磁碟的 LUN 編號順序位於合作夥伴中心。
DataDisk- NotFound: 此錯誤可能發生,因為數據磁碟不在指定的SAS URL。 確認數據磁碟位於指定的SAS URL。

遠端訪問問題

如果未針對 Windows 映像啟用遠端桌面通訊協定 (RDP) 選項,您將會收到此錯誤。

提交 Windows 映射之前,請先啟用 Windows 映射的 RDP 存取。

Bash 歷程記錄失敗

如果提交的影像中的Bash歷程記錄大小超過1 KB,您就會看到此錯誤。 大小限制為 1 KB,以限制檔案包含潛在的敏感性資訊。

若要刪除 Bash 歷程記錄:

  1. 部署 VM,然後選取 Azure 入口網站上 執行命令 選項。

    Azure 入口網站的螢幕快照,其中左窗格中有 [執行命令] 選項。

  2. RunShellScript 選取第一個選項,然後執行命令:cat /dev/null > ~/.bash_history && history -c

    Azure 入口網站上 [執行命令腳本] 頁面的螢幕快照。

  3. 成功執行命令之後,請重新啟動 VM。

  4. 將 VM 一般化、擷取映像 VHD,然後停止 VM。

  5. 重新提交一般化映像。

網路虛擬設備驗證

在 Marketplace 映射認證期間,網路虛擬設備 (NVA) 的 VM 供應專案會使用任何 VM 供應專案的一般測試進行驗證,以及下表所列的 NVA 測試案例。 這些 NVA 特定驗證的目標是驗證 NVA 映像與 SDN 堆疊的協調程度。

測試案例 執行測試案例的步驟 溶液
VHD 存取 請確定已提供正確的 VHD SAS URL、將權限設定為允許存取,且 NVA 映像 一般化 確認 NVA 映像和提供的 URL。
NVA 部署 使用 NVA 搭配一個 NIC 部署 VM。 確認部署已在20分鐘內完成。 如果部署未在 20 分鐘內完成,請確認 NVA 映射。
NVA 重新啟動 使用 NVA 搭配一個 NIC 部署 VM。 然後,移至 Azure 入口網站中的 VM,然後在左窗格中的 [支援 + 疑難解答 + 疑難解答] 區段底下,選取 [重新部署 + 重新套用 並重新部署 VM。 重新部署完成之後,請確認 VM 的狀態 執行中,並使用 Netcat 命令連線到 NIC 埠 22。 如果 VM 在重新啟動後未出現,則 NVA 映像可能會發生問題。

如果 Netcat 測試失敗,可能是因為即使 VM 正在執行,NIC 仍無法在重新啟動後出現。 等候幾分鐘后再試一次。 如果在 20 分鐘後仍然失敗,則 NVA 映射可能會有問題
NVA 重新部署 使用 NVA 搭配一個 NIC 部署 VM。 然後,重新部署 VM。 確認 VM 的狀態 執行中,且可以使用 Netcat 命令連線到 NIC 埠 22。 如果重新部署未在15分鐘內完成,則 NVA 映像可能會發生問題。

如果 Netcat 測試失敗,可能是因為即使 VM 正在執行,NIC 仍無法在重新啟動後出現。 等候幾分鐘后再試一次。 如果在 20 分鐘後仍然失敗,則 NVA 映射可能會有問題
高可用性 使用 NVA 搭配一個 NIC 部署 VM。 不應將公用IP附加至NIC,或者如果附加公用IP,SKU應該是標準,而IP配置方法應該是靜態的。 在相同的虛擬網路中,使用下列設定來設定 Azure 內部 負載平衡器
- 使用標準 SKU 的負載平衡器
- 使用私人IP配置方法作為動態的前端IP
- 使用 TCP 的健康情況探查,埠 22,重試間隔為 15 秒
- 以通訊協議作為 所有 的負載平衡規則,並啟用設定為 False 的浮動 IP。
- 指向 NVA VM 的後端集區。

設定準備就緒之後,請使用 Netcat 命令,確認 NVA VM 可透過負載平衡器連線。
如果 NVA 無法連線到負載平衡器,請確認 VM、負載平衡器和 HA 埠功能的設定。 如果一切正確,則 NVA 映射可能會有問題。
VNET 對等互連 使用 NVA 映射部署虛擬機器 VM1,並在虛擬網路 VNET1 中部署一個 NIC。 在另一個虛擬網路 VNET2 中,使用任何 Linux 映射部署虛擬機器 VM2,例如 ubuntu,搭配一個 NIC,並將 VM 設定作為動態 IP 配置方法和基本 SKU。 在 VNET1 與 VNET2 和 流量之間建立 VNET 對等互連 設定為 [允許] [預設]

設定準備就緒后,請使用 Netcat 命令,從 VM2 確認我們可以在 NVA VM1 上聯機到 NIC 的私人 IP。
如果 NVA VM1 無法從 VM2 連線,請確認 VNET 對等互連已正確設定,然後再試一次。 如果仍然無法運作,則 NVA 映射可能會有問題。
加速網路 (AN) 使用已啟用 NVA 和 1 AN 的 NIC部署 VM。 您可以在建立 VM 時,或在建立 VM 之後的 NIC 屬性上啟用 AN。 確認 VM 已啟動並執行。 如果部署失敗,請確認 NVA 映射支援加速網路。
多重 NIC 基本 使用 NVA 搭配 3 個 NIC 搭配動態 IP 配置方法和基本 SKU 來部署 VM。 取得所有 NIC 的私人 IP 和 MAC 位址(如需指示,請參閱 檢視網路介面)。 然後,重新部署 VM,並確認所有 NIC 的私人 IP 和 MAC 位址都與重新部署之前保持相同。 如果所有 NIC 的私人 IP 和 MAC 位址在重新部署後變更,則 NVA 映像可能會發生問題。
網路中斷 使用 NVA 搭配一個 NIC 部署 VM。 然後,建立並套用 網路安全組 (NSG) 來封鎖 NVA VM 的所有流量。 然後,確認 VM 的狀態 執行中 如果在套用NSG之後,VM 會關閉,則 NVA 映射可能會發生問題。

如需進一步的信息或問題,請開啟 Azure 支援案例。

Netcat 概觀:

Netcat 是能夠在兩部計算機之間建立 TCP 或 UDP 連線的命令,這表示它可以透過開啟的埠寫入和讀取。 在 NVA 驗證期間,我們會從與 NVA VM 位於相同虛擬網路中的 VM 執行 Netcat 命令,以測試 TCP 連接埠 22 是否可連線。 命令語法 nc <destination_ip_address> <destination_port>,其中

  • destination_ip_address 是指派給 VM NIC 的私人 IP 位址,
  • destination_port 是 NVA 上的埠號碼。 我們會在 NVA 測試案例中使用 22

例如,nc 192.168.1.1 22

針對選取的測試要求 VM 映像上的例外狀況

發行者可以針對在 VM 認證期間執行的一些測試要求例外狀況。 當發行者提供證據來支援要求時,在罕見的情況下會提供例外狀況。 認證小組隨時保留拒絕或核准例外狀況的權利。

本節說明發行者要求例外狀況以及如何要求例外狀況的一般案例。

例外狀況的案例

發行者通常會在下列情況下要求例外狀況:

  • 一或多個測試案例的例外狀況。 請連絡 合作夥伴中心支援,以要求測試案例的例外狀況。

  • 鎖定的 VM/沒有根存取。 少數發行者有 VM 需要鎖定的情況,因為它們在 VM 上安裝防火牆等軟體。 在此情況下,請下載 認證測試工具,並在 合作夥伴中心支援提交報告。

  • 自訂樣本。 某些發行者會發佈需要自定義 Azure Resource Manager (ARM) 範本才能部署 VM 的 VM 映像。 在此情況下,請提交 合作夥伴中心支援的自定義範本, 認證小組將用於驗證。

提供例外狀況案例的資訊

請連絡合作夥伴中心支援 ,要求其中一個案例的例外狀況,並包含下列資訊:

  • 發行者識別碼。 輸入您的合作夥伴 Central 入口網站發行者識別碼。

  • 供應項目識別碼/名稱。 輸入供應項目識別碼或名稱。

  • SKU/方案識別碼。 輸入 VM 供應專案方案識別碼或 SKU。

  • 版本。 輸入需要例外狀況的 VM 供應專案版本。

  • 例外狀況類型。 從測試、鎖定的 VM 或自定義範本中選擇。

  • 要求的原因。 包含例外狀況要求的原因,以及測試豁免的任何資訊。

  • 時間軸。 輸入例外狀況的結束日期。

  • 附件。 附加的重要辨識項目檔:

    • 針對鎖定的 VM,請附加測試報告。
    • 針對自定義範本,提供自定義 ARM 範本做為附件。

    如果您無法包含這些附件,您的要求將會遭到拒絕。

解決 VM 供應專案中的弱點或惡意探索

本節說明如何使用其中一個 VM 映射探索到弱點或惡意探索時,提供新的 VM 映射。 它僅適用於發佈至 Azure Marketplace 的 Azure VM 供應專案。

注意

您無法從方案中移除最後一個 VM 映像,或停止銷售供應項目的最後一個方案。

執行下列其中一個動作:

提供固定的 VM 映像

若要提供固定的 VM 映射,以取代有弱點或惡意探索的 VM 映射:

  1. 提供新的 VM 映射,以解決安全性弱點或惡意探索。
  2. 拿掉具有安全性弱點或惡意探索的 VM 映像。
  3. 重新發佈供應專案。

提供新的 VM 映像來解決安全性弱點或惡意探索

若要完成這些步驟,請為您想要新增的 VM 映像準備技術資產。 如需詳細資訊,請參閱 使用已核准的基底 建立虛擬機,或 使用您自己的映像建立虛擬機為 VM 映射產生 SAS URI

  1. 登入 合作夥伴中心

  2. 在 [首頁] 頁面上,選取 Marketplace 供應專案 圖格。

  3. 在 [供應項目別名] 欄中,選取供應專案。

  4. 選取 [方案概觀] 索引卷標,然後選取適當的方案。

  5. 在 [技術組態] 索引卷標的 [VM 映射] 底下,選取 [+ 新增 VM 映射]。

    注意

    您一次只能將一個 VM 映像新增至一個方案。 若要新增多個 VM 映射,請先發佈第一個映像,再新增下一個 VM 映射。

  6. 在出現的方塊中,提供新的磁碟版本和虛擬機映像。

  7. 選取 [[儲存草稿]

接下來,移除具有安全性弱點的 VM 映射。

拿掉具有安全性弱點或惡意探索的 VM 映像

  1. 登入 合作夥伴中心
  2. 在 [首頁] 頁面上,選取 Marketplace 供應專案 圖格。
  3. 在 [供應項目別名] 欄中,選取供應專案。
  4. 選取 [方案概觀] 索引卷標,然後選取適當的方案。
  5. 在 [技術組態] 索引卷標的 [VM 映射] 底下,選取您要移除的 VM 映射旁的 [[移除 VM 映射]
  6. 在對話框中,選取 [繼續 繼續]。
  7. 選取 [[儲存草稿]

接下來,重新發佈供應專案。

重新發佈供應專案

  1. 選取 [檢 檢閱併發佈
  2. 如果您需要將任何資訊提供給認證小組,請將它新增至認證 方塊的 [附注]。
  3. 選取 [[發佈]。

若要完成發佈程式,請參閱 檢閱和發佈供應專案

解決 VM 供應專案中的 TLS 相關弱點

本節說明如何使用其中一個 VM 映射探索到 TLS 相關弱點時,提供新的 VM 映射。 它僅適用於發佈至 Azure Marketplace 的 Azure VM 供應專案。

補救步驟

若要解決這些弱點,請遵循下列步驟:

停用 TLS 1.0 和 1.1 通訊協定的使用,並確保 VM 映射支援 TLS 1.2 版或更高版本。 這可以藉由在 VM 映射中設定適當的登錄機碼或組態設定來達成。

針對 Linux,請使用下列命令手動測試,並確定這些版本已停用:

  • TLS 1.0 的

    openssl s_client -connect ip:port -tls1
    
  • TLS 1.1 的

    openssl s_client -connect ip:port -tls1_1
    

針對 Windows,請參閱正式 TLS 登錄設定檔, 更新登錄機碼。 使用下列 PowerShell 命令來設定 TLS 設定:

路徑 名字 價值
HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client “Enabled” 0
HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server “Enabled” 0
HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client “Enabled” 0
HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server “Enabled” 0
HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client “Enabled” 1
HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server “Enabled” 1

開啟更高版本 (選擇性)

如果您想要啟用較高版本(例如 TLS 1.3),請使用這些版本的對應路徑和值重複上述步驟。

具有有限存取權或需要自定義範本的 VM 映像

鎖定的 SSH 已停用供應專案

已停用 SSH 或已停用 RDP 的映像會被視為鎖定的 VM。 有一些特殊的商務案例,因為發行者只允許限制存取否/少數使用者。

在驗證檢查期間,鎖定的 VM 可能無法執行特定認證命令。

自定義範本

一般而言,在單一 VM 供應專案下發佈的所有映像都遵循標準 ARM 範本進行部署。 不過,在某些情況下,發行者可能需要自定義,同時部署 VM(例如,要設定多個 NIC)。。

根據下列案例 (非exhaustive),發行者會使用自定義範本來部署 VM:

  • VM 需要額外的網路子網。
  • 更多要插入ARM範本的元數據。
  • 執行 ARM 範本的必要條件命令。

VM 擴充功能

Azure 虛擬機 (VM) 擴充功能是小型應用程式,可在 Azure VM 上提供部署後設定和自動化工作。 例如,如果虛擬機需要軟體安裝、防毒保護,或在其中執行腳本,則可以使用 VM 擴充功能。

Linux VM 擴充功能驗證需要下列專案才能成為映像的一部分:

如需詳細資訊,請瀏覽 VM 擴充功能

驗證映像的完整性

如果您要建立映像,並從映射建立光碟以確認映像的完整性,請注意,前 1 MB 會保留給優化效能,最後 512 個字節會保留給 VHD 頁尾。 因此,在驗證映像的完整性時忽略它們。