Azure 檔案同步的網路考慮
您可以透過兩種方式連線至 Azure 檔案共用:
- 直接透過SMB或FileREST通訊協定存取共用。 此存取模式主要用來盡可能減少所用的內部部署伺服器數目。
- 使用 Azure 檔案同步 在內部部署伺服器上建立 Azure 檔案共用的快取,並使用您選擇的通訊協定從內部部署伺服器存取檔案共享的數據(SMB、NFS、FTPS 等)。 此存取模式很方便,因為它結合了內部部署效能和雲端規模的最佳功能,以及 Azure 備份 等增值服務。
本文著重於第二個案例:當您使用案例呼叫使用 Azure 檔案同步 快取內部部署檔案,而不是直接透過SMB掛接 Azure 檔案共享時,如何設定網路功能。 如需 Azure 檔案儲存體部署的網路功能考量相關詳細資訊,請參閱 Azure 檔案儲存體的網路功能考量。
Azure 檔案同步的網路功能設定涵蓋兩個不同的 Azure 物件:儲存體同步服務與 Azure 儲存體帳戶。 儲存器帳戶是一種管理建構,代表一個共用的記憶體集區,您可以在其中部署多個檔案共用,以及其他記憶體資源,例如 Blob 或佇列。 儲存體同步服務是一種管理結構,代表已註冊的伺服器,這是已和 Azure 檔案同步建立信任關係的 Windows 檔案伺服器,以及定義同步關係拓撲的同步群組。
重要
Azure 檔案同步不支援網際網路路由。 Azure 檔案同步支援預設的網路路由選項:Microsoft 路由。
使用 Azure 檔案同步將 Windows 檔案伺服器連線至 Azure
若要設定及使用 Azure 檔案儲存體與 Azure 檔案同步,來與內部部署 Windows 檔案伺服器搭配使用,除了基本的網際網路連線之外,不需要任何特殊網路功能來連線 Azure。 若要部署 Azure 檔案同步,請在您想要與 Azure 同步的 Windows 檔案伺服器上安裝 Azure 檔案同步代理程式。 Azure 檔案同步代理程式會透過兩個通道與 Azure 檔案共用進行同步處理:
- FileREST 通訊協定,這是用來存取 Azure 檔案共用的 HTTPS 型通訊協定。 因為 FileREST 通訊協定會使用標準 HTTPS 進行數據傳輸,因此埠 443 必須可存取輸出。 Azure 檔案同步 不會使用SMB通訊協定在內部部署 Windows Server 與 Azure 檔案共享之間傳輸數據。
- Azure 檔案同步 同步通訊協定,這是 HTTPS 型通訊協定,用來交換同步處理知識,也就是環境中端點之間檔案和資料夾的版本資訊。 此通訊協定也可用來交換檔案和資料夾的相關元數據,例如時間戳和訪問控制清單(ACL)。
由於 Azure 檔案儲存體在 Azure 檔案共用上提供直接的 SMB 通訊協定存取功能,因此客戶經常會想知道是否需要設定特殊的網路功能,才能使用 SMB 掛接 Azure 檔案共用,以供 Azure 檔案同步代理程式存取。 這並非必要專案,而且實際上不建議使用,除非在系統管理員案例中,因為直接對 Azure 檔案共用所做的變更缺乏快速變更偵測。 根據 Azure 檔案共用中的專案大小和數目而定,可能無法探索超過 24 小時的變更。 如果您想要直接使用 Azure 檔案共用,而不是使用 Azure 檔案同步 來快取內部部署,請參閱 Azure 檔案儲存體 網路概觀。
雖然 Azure 檔案同步 不需要任何特殊的網路設定,但某些客戶可能想要設定進階網路設定,以啟用下列案例:
- 與您組織的 Proxy 伺服器設定交互操作。
- 針對 Azure 檔案儲存體與 Azure 檔案同步服務,開啟您組織的內部部署防火牆。
- 透過 ExpressRoute 或虛擬專用網 (VPN) 連線的通道 Azure 檔案儲存體 和 Azure 檔案同步 流量。
設定 Proxy 伺服器
許多組織都會使用 Proxy 伺服器,作為其內部部署網路內部資源與其網路外之資源 (例如在 Azure 中) 之間的媒介。 Proxy 伺服器適用於許多應用程式,例如網路隔離和安全性、監視和記錄。 Azure 檔案同步可以與 Proxy 伺服器完全互通,不過,您必須使用 Azure 檔案同步手動設定環境的 Proxy 端點設定。這必須透過 PowerShell 使用 Azure 檔案同步伺服器 Cmdlet Set-StorageSyncProxyConfiguration
來完成。
如需有關如何使用 Proxy 伺服器設定 Azure 檔案同步的詳細資訊,請參閱使用 Proxy 伺服器設定 Azure 檔案同步。
設定防火牆與服務標籤
許多組織會基於安全性考量,將其檔案伺服器與大部分網際網路位置隔離。 若要在這類環境中使用 Azure 檔案同步,您必須設定防火牆以允許輸出存取選取 Azure 服務。 如果您的防火牆支援 URL/網域,您可以允許連接埠 443 輸出存取裝載這些特定 Azure 服務的所需雲端端點,藉此達成此設定。 如果不支援,則您可以透過服務標籤擷取這些 Azure 服務的 IP 位址範圍。
Azure 檔案同步需要下列服務的 IP 位址範圍,就如同它們的服務標籤所識別的那樣:
Service | 描述 | 服務標籤 |
---|---|---|
Azure 檔案同步 | 就像儲存體同步服務物件一樣,顧名思義,「Azure 檔案同步」服務會負責執行在 Azure 檔案共用與 Windows 檔案伺服器之間同步處理資料的核心活動。 | StorageSyncService |
Azure 檔案 | 透過 Azure 檔案同步同步處理的所有資料都會儲存在 Azure 檔案共用中。 您 Windows 檔案伺服器上變更的檔案會複寫至您的 Azure 檔案共用,而您內部部署檔案伺服器上的階層式檔案則會在使用者要求時順暢地下載。 | Storage |
Azure Resource Manager | Azure Resource Manager 是 Azure 的管理介面。 所有管理呼叫 (包括 Azure 檔案同步伺服器註冊與進行中的同步處理伺服器工作) 都是透過 Azure Resource Manager 進行的。 | AzureResourceManager |
Microsoft Entra ID | Microsoft Entra ID (先前稱為 Azure AD) 包含針對儲存體同步服務授權進行伺服器註冊所需的使用者主體,以及授權 Azure 檔案同步存取雲端資源所需的服務主體。 | AzureActiveDirectory |
如果您在 Azure 中使用 Azure 檔案同步,即使其是不同的區域,您也可以直接在您的網路安全性群組中使用服務標籤的名稱,以允許對該服務傳送流量。 若要深入了解,請參閱網路安全性群組。
如果您是使用 Azure 檔案同步內部部署,就可利用服務標籤 API 來取得您防火牆允許清單的特定 IP 位址範圍。 有兩種方法可以取得此資訊:
- 所有支援服務標籤之 Azure 服務的目前 IP 位址範圍清單,都會以 JSON 文件的形式,每週在 Microsoft 下載中心發佈。 每個 Azure 雲端都有自己的 JSON 文件,其中包含與該雲端相關的 IP 位址範圍:
- 服務標籤探索 API (預覽) 可讓您以程式設計方式擷取目前的服務標籤清單。 在預覽中,服務標籤探索 API 傳回的資訊,可能沒有從 Microsoft 下載中心上發佈的 JSON 文件所傳回的資訊那麼新。 您可以根據您的自動化喜好設定來使用 API 介面:
若要深入了解如何使用服務標籤 API 來擷取您服務的位址,請參閱 Azure 檔案同步 IP 位址的允許清單。
透過虛擬私人網路或 ExpressRoute 以通道傳送流量
某些組織需要與 Azure 進行通訊,才能透過 VPN 或 ExpressRoute 等網路通道進行通訊,以取得額外的安全性層級,或確保與 Azure 的通訊遵循決定性路由。
當您在內部部署網路與 Azure 之間建立網路通道時,您會將內部部署網路與 Azure 中的一或多個虛擬網路對等互連。 虛擬網路或 VNET 類似於您在內部部署運作的傳統網路。 如同 Azure 記憶體帳戶或 Azure VM,VNET 是部署在資源群組中的 Azure 資源。
Azure 檔案儲存體與 Azure 檔案同步支援下列機制,以在您的內部部署伺服器與 Azure 之間以通道傳送流量:
Azure VPN 閘道:VPN 閘道是特定的虛擬網路閘道類型,可透過網際網路在 Azure 虛擬網路與替代位置 (例如,內部部署環境) 之間傳送加密流量。 Azure VPN 閘道是一種 Azure 資源,可供部署在儲存體帳戶或其他 Azure 資源的資源群組中。 由於 Azure 檔案同步是要與內部部署 Windows 檔案伺服器搭配使用的,因此您通常會使用站對站 (S2S) VPN,雖然在技術上,您可以使用點對站 (P2S) VPN。
站對站 (S2S) VPN 連線會連線您的 Azure 虛擬網路與您組織的內部部署網路。 S2S VPN 連線可讓您一次就為組織網路上裝載的 VPN 伺服器或裝置設定 VPN 連線,而不必針對需要存取 Azure 檔案共用的每個用戶端裝置進行設定。 若要簡化 S2S VPN 連線的部署,請參閱設定站對站 (S2S) VPN 以用於 Azure 檔案儲存體。
ExpressRoute,可讓您在 Azure 與不會周遊網際網路的內部部署網路之間建立已定義好的路由 (私人連線)。 因為 ExpressRoute 提供內部部署資料中心與 Azure 之間的專用路徑,因此當網路效能是關鍵考慮時,ExpressRoute 會很有用。 當組織的原則或法規需求要求您的雲端資源必須有確定的路徑時,ExpressRoute 也會是不錯的選擇。
私人端點
除了預設公用端點 Azure 檔案儲存體 和 Azure 檔案同步 透過記憶體帳戶和記憶體同步服務提供,它們還提供每個資源有一或多個私人端點的選項。 這可讓您使用 VPN 或 ExpressRoute 從內部部署使用 VPN 或 ExpressRoute,以及從 Azure VNET 內私下安全地連線到 Azure 檔案共用。 當您為 Azure 資源建立私人端點時,Azure 資源便會從您虛擬網路的位址空間內取得私人 IP 位址,情況非常類似於您的內部部署 Windows 檔案伺服器如何獲得您內部部署網路專用位址空間內的 IP 位址。
個別的私人端點會與特定的 Azure 虛擬網路子網路相關聯。 儲存體帳戶與儲存體同步服務可能會在超過一個虛擬網路中有私人端點。
使用私人端點可讓您:
- 使用 VPN 或 ExpressRoute 連線搭配私人對等互連,來安全地從內部部署網路連線到您的 Azure 資源。
- 藉由停用 Azure 檔案儲存體 和 檔案同步 的公用端點,保護您的 Azure 資源。根據預設,建立私人端點不會封鎖公用端點的連線。
- 藉由讓您能夠封鎖從虛擬網路 (和對等互連界限) 外泄資料的可能,來提高虛擬網路的安全性。
若要建立私人端點,請參閱設定 Azure 檔案同步的私人端點。
私人端點和 DNS
當您建立私人端點時,根據預設,我們也會建立與 privatelink
子網域對應的私人 DNS 區域,或更新現有的私人 DNS 區域。 針對公用雲端區域,這些 DNS 區域為 privatelink.afs.azure.net
(針對 Azure 檔案儲存體) 與 privatelink.file.core.windows.net
(針對 Azure 檔案同步)。
注意
本文會針對 Azure 公用區域使用儲存體帳戶 DNS 尾碼 core.windows.net
。 這也適用於 Azure 主權雲端,例如 Azure US Government 雲端和由 21Vianet 雲端運作的 azure Microsoft -- 只需將適當的後綴取代為您的環境即可。
當您建立儲存體帳戶與儲存體同步服務的私人端點時,我們會分別為它們在其各自的私人 DNS 區域中建立 A 記錄。 我們也會更新公用 DNS 項目,讓一般完整網域名稱為相關 privatelink
名稱的 CNAME。 這可讓完整網域名稱在要求者位於虛擬網路內部時,指向私人端點 IP 位址,並在要求者位於虛擬網路外部時,指向公用端點 IP 位址。
針對 Azure 檔案儲存體,每個私人端點都會有對應至一個私人端點私人 IP 位址的單一完整網域名稱 (遵循模式 storageaccount.privatelink.file.core.windows.net
)。 針對 Azure 檔案同步,每個私人端點都有四個完整網域名稱,用於 Azure 檔案同步所公開的四個不同端點:管理、同步 (主要)、同步 (次要) 和監視。 除非名稱包含非 ASCII 字元,否則這些端點的完整網域名稱通常會遵循儲存體同步服務的名稱。 例如,如果您的儲存體同步服務在美國西部 2 區域中的名稱為 mysyncservice
,對等端點就會是 mysyncservicemanagement.westus2.afs.azure.net
、mysyncservicesyncp.westus2.afs.azure.net
、mysyncservicesyncs.westus2.afs.azure.net
與 mysyncservicemonitoring.westus2.afs.azure.net
。 記憶體同步服務的每個私人端點都會包含四個不同的IP位址。
因為您的 Azure 私人 DNS 區域已連線到包含私人端點的虛擬網路,因此您可以在 Azure VM 中從 PowerShell 呼叫 Resolve-DnsName
Cmdlet 來觀察 DNS 設定(替代 nslookup
在 Windows 和 Linux 中):
Resolve-DnsName -Name "storageaccount.file.core.windows.net"
在此範例中,儲存體帳戶 storageaccount.file.core.windows.net
會解析為私人端點的私人 IP 位址,而這正好是 192.168.0.4
。
Name Type TTL Section NameHost
---- ---- --- ------- --------
storageaccount.file.core.windows. CNAME 29 Answer csostoracct.privatelink.file.core.windows.net
net
Name : storageaccount.privatelink.file.core.windows.net
QueryType : A
TTL : 1769
Section : Answer
IP4Address : 192.168.0.4
Name : privatelink.file.core.windows.net
QueryType : SOA
TTL : 269
Section : Authority
NameAdministrator : azureprivatedns-host.microsoft.com
SerialNumber : 1
TimeToZoneRefresh : 3600
TimeToZoneFailureRetry : 300
TimeToExpiration : 2419200
DefaultTTL : 300
如果您從內部部署環境執行相同的命令,則會發現同一個儲存體帳戶名稱會轉而解析為儲存體帳戶的公用 IP 位址;storageaccount.file.core.windows.net
是 storageaccount.privatelink.file.core.windows.net
的 CNAME 記錄,而 storageaccount.privatelink.file.core.windows.net
又是儲存體帳戶裝載所在 Azure 儲存體叢集的 CNAME 記錄:
Name Type TTL Section NameHost
---- ---- --- ------- --------
storageaccount.file.core.windows. CNAME 60 Answer storageaccount.privatelink.file.core.windows.net
net
storageaccount.privatelink.file.c CNAME 60 Answer file.par20prdstr01a.store.core.windows.net
ore.windows.net
Name : file.par20prdstr01a.store.core.windows.net
QueryType : A
TTL : 60
Section : Answer
IP4Address : 52.239.194.40
這反映出一個事實,也就是 Azure 檔案儲存體與 Azure 檔案同步都可以公開其的公用端點,以及每個資源的一或多個私人端點。 若要確保您資源的完整網域名稱會解析為私人端點私人 IP 位址,您必須變更內部部署 DNS 伺服器上的設定。 這可以透過數種方式來完成:
- 修改您用戶端上的 hosts 檔案,讓儲存體帳戶與儲存體同步服務的完整網域名稱解析成所需的私人 IP 位址。 對於生產環境,強烈建議您不要這樣做,因為您必須對需要存取私人端點的每個客戶端進行這些變更。 不會自動處理私人端點/資源的變更(刪除、修改等)。
- 使用您 Azure 資源的 A 記錄,在您的內部部署伺服器上,針對
privatelink.file.core.windows.net
與privatelink.afs.azure.net
建立 DNS 區域。 這的優點是內部部署環境中的用戶端將能夠自動解析 Azure 資源,而不需要設定每個用戶端。 不過,此解決方案與修改主機檔案類似,因為不會反映變更。 雖然此解決方案很脆弱,但可能是某些環境的最佳選擇。 - 將
core.windows.net
與afs.azure.net
區域從內部部署 DNS 伺服器轉送到您的 Azure 私人 DNS 區域。 您可以透過只能在連結至 Azure 私人 DNS 區域的虛擬網路內存取的特殊 IP 位址 (168.63.129.16
),來連線到 Azure 私人 DNS 主機。 為因應此限制,您可以在虛擬網路內執行會將core.windows.net
與afs.azure.net
轉送至對等的 Azure 私人 DNS 區域的其他 DNS 伺服器。 為了簡化此設定,我們提供了PowerShell Cmdlet,可讓您在 Azure 虛擬網路中自動部署 DNS 伺服器,並視需要進行設定。 若要了解如何設定 DNS 轉送,請參閱使用 Azure 檔案儲存體設定 DNS。
傳輸中加密
系統一律會加密從 Azure 檔案同步代理程式連線到您的 Azure 檔案共用或儲存體同步服務的連線。 雖然 Azure 記憶體帳戶有一個設定,可停用傳輸時需要加密,才能將通訊傳送至 Azure 檔案儲存體(以及從記憶體帳戶管理的其他 Azure 記憶體服務),但停用此設定不會影響與 Azure 檔案儲存體 通訊時 Azure 檔案同步 加密。 根據預設,所有 Azure 儲存體帳戶都會啟用傳輸中加密。
如需傳輸中加密的詳細資訊,請參閱在 Azure 儲存體中需要安全傳輸。