虛擬設備的案例
大型 Azure 客戶之間常見的案例是需要提供一個對網際網路公開的兩層式應用程式,同時還允許從內部部署資料中心存取後端層。 本文會逐步引導您完成一個案例,其中使用路由表、VPN 閘道和網路虛擬設備,來部署符合下列需求的兩層式環境:
- Web 應用程式必須只能從公用網際網路存取。
- 裝載應用程式的網頁伺服器必須能夠存取後端應用程式伺服器。
- 從網際網路到 Web 應用程式的所有流量都必須通過防火牆虛擬設備。 這個虛擬設備只用於網際網路流量。
- 前往應用程式伺服器的所有流量都必須通過防火牆虛擬設備。 這個虛擬設備用於存取後端伺服器,以及透過 VPN 閘道從內部部署網路存取。
- 系統管理員必須能夠使用管理用途專用的第三個防火牆虛擬設備,從他們的內部部署電腦管理防火牆虛擬設備。
此範例是標準的周邊網路 (也稱為 DMZ) 案例,具有 DMZ 和受保護的網路。 您可以使用網路安全性群組 (NSG)、防火牆虛擬設備或兩者的組合,在 Azure 中建構此案例。
下表會顯示 NSG 和防火牆虛擬設備的一些優缺點。
項目 | 優點 | 缺點 |
---|---|---|
NSG | 無成本。 已整合至 Azure 角色型存取。 能夠在 Azure Resource Manager 範本中建立規則。 |
大型環境中的複雜性各有不同。 |
防火牆 | 完全掌控資料面。 透過防火牆主控台集中管理。 |
防火牆設備的成本。 未與 Azure 角色型存取整合。 |
下列解決方案使用防火牆虛擬設備實作周邊網路 (DMZ) / 受保護網路案例。
考量
您可以使用目前可用的功能,在 Azure 中部署上述環境:
- 虛擬網路:Azure 虛擬網路的運作方式與內部部署網路類似。 您可以將其分段為一或多個子網路,以提供流量隔離和關注點分離。
- 虛擬設備:有數家合作夥伴在 Azure Marketplace 中提供虛擬設備,以用於先前所述的三種防火牆。
- 路由表:Azure 網路會使用路由表來控制虛擬網路內的封包流程。 您可以將這些路由表套用至子網路。 您可以將路由表套用至
GatewaySubnet
,其會將進入 Azure 虛擬網路的所有流量從混合式連線轉送至虛擬設備。 - IP 轉送:根據預設,只有封包目的地 IP 位址符合 NIC IP 位址時,Azure 網路引擎才會將封包轉送到虛擬網路介面卡 (NIC)。 如果路由表定義封包必須傳送到指定的虛擬設備,則 Azure 網路引擎就會卸除該封包。 若要確保封包傳遞至不是封包實際目的地的 VM (在本例中為虛擬設備),請為虛擬設備啟用 IP 轉送。
- 網路安全性群組:下列範例不會使用 NSG,但您可以在此解決方案中使用套用至子網路或 NIC 的 NSG。 NSG 會進一步篩選出入這些子網路和 NIC 的流量。
在此範例中,訂用帳戶包含下列項目:
兩個資源群組 (未顯示在圖表中):
ONPREMRG
:包含模擬內部部署網路所需的所有資源。AZURERG
:包含 Azure 虛擬網路環境所需的所有資源。
名為
onpremvnet
的虛擬網路會進行分段,並用來模擬內部部署資料中心:onpremsn1
:子網路,其中包含執行 Linux 發行版本以模擬內部部署伺服器的虛擬機器 (VM)。onpremsn2
:子網路,其中包含執行 Linux 發行版以模擬系統管理員所用內部部署電腦的 VM。
有一個防火牆虛擬設備在
onpremvnet
上命名為OPFW
。 其用來維護azurevnet
的通道。名為
azurevnet
的虛擬網路會進行分段,如下所示:azsn1
:專門用於外部防火牆的外部防火牆子網路。 所有的網際網路流量都會透過這個子網路進入。 這個子網路只包含連結至外部防火牆的 NIC。azsn2
:前端子網路,其中裝載的 VM 會作為從網際網路存取的網頁伺服器執行。azsn3
:後端子網路,其中裝載的 VM 會執行前端 Web 伺服器存取的後端應用程式伺服器。azsn4
:管理子網路,專門用來提供所有防火牆虛擬設備的管理存取權。 對於解決方案中所使用的每個防火牆虛擬設備,這個子網路只包含一個 NIC。GatewaySubnet
:Azure 混合式連線子網路,ExpressRoute 和 VPN 閘道需要這個子網路,才能在 Azure 虛擬網路與其他網路之間提供連線。
三個防火牆虛擬設備位於
azurevnet
網路中:AZF1
:在 Azure 中使用公用 IP 位址資源對公用網際網路公開的外部防火牆。 您必須確定您有一個範本來自 Azure Marketplace,或直接來自部署 3-NIC 虛擬設備的設備供應商。AZF2
:用來控制azsn2
與azsn3
之間流量的內部防火牆。 此防火牆也是 3-NIC 虛擬設備。AZF3
:系統管理員可從內部部署資料中心存取的管理防火牆,其會連線到用來管理所有防火牆設備的管理子網路。 您可以在 Azure Marketplace 中找到 2-NIC 虛擬設備範本。 您也可以直接從設備廠商要求一個。
路由表
將 Azure 中的每個子網路連結至路由表,以定義如何路由在該子網路中起始的流量。 如果未定義任何使用者定義的路由 (UDR),Azure 就會使用預設路由,以允許流量從一個子網路流向另一個子網路。 若要進一步了解路由表和流量路由,請參閱 Azure 虛擬網路流量路由。
若要確保通訊透過正確的防火牆設備完成,根據先前所列的最後一個需求,您必須在 azurevnet
中建立下列路由表。
azgwudr
在這個案例中,從內部部署流向 Azure 的唯一流量用來透過連線到 AZF3
管理防火牆,且該流量必須通過內部防火牆 AZF2
。 GatewaySubnet
中只需要一個路由,如下所示:
Destination | 下一個躍點 | 說明 |
---|---|---|
10.0.4.0/24 | 10.0.3.11 | 允許內部部署流量到達管理防火牆 AZF3 。 |
azsn2udr
Destination | 下一個躍點 | 說明 |
---|---|---|
10.0.3.0/24 | 10.0.2.11 | 允許流量透過 AZF2 流向裝載應用程式伺服器的後端子網路。 |
0.0.0.0/0 | 10.0.2.10 | 允許透過 AZF1 路由所有其他流量。 |
azsn3udr
Destination | 下一個躍點 | 說明 |
---|---|---|
10.0.2.0/24 | 10.0.3.10 | 允許流向 azsn2 的流量透過 AZF2 從應用程式伺服器流向網頁伺服器。 |
您也必須為 onpremvnet
中的子網路建立路由表,以模擬內部部署資料中心。
onpremsn1udr
Destination | 下一個躍點 | 說明 |
---|---|---|
192.168.2.0/24 | 192.168.1.4 | 允許流量透過 OPFW 流向 onpremsn2 。 |
onpremsn2udr
Destination | 下一個躍點 | 說明 |
---|---|---|
10.0.3.0/24 | 192.168.2.4 | 允許流量透過 OPFW 流向 Azure 中的後端子網路。 |
192.168.1.0/24 | 192.168.2.4 | 允許流量透過 OPFW 流向 onpremsn1 。 |
IP 轉送
路由表和 IP 轉送是您可以結合使用的功能,以允許虛擬設備控制 Azure 虛擬網路中的流量流程。 虛擬設備無非就是一個 VM,其會執行用來以某種方式處理網路流量的應用程式,例如防火牆或網路位址轉譯裝置。
此虛擬設備 VM 必須能夠接收未定址到本身的連入流量。 若要允許 VM 接收定址到其他目的地的流量,您必須針對 VM 啟用 IP 轉送。 此設定是 Azure 設定,不是客體作業系統中的設定。 虛擬設備仍然需要執行某些類型的應用程式,以處理連入流量並適當地路由該流量。
若要深入了解 IP 轉送,請參閱 Azure 虛擬網路流量路由。
例如,設想您在 Azure 虛擬網路中具有下列設定:
- 子網路
onpremsn1
包含名為onpremvm1
的 VM。 - 子網路
onpremsn2
包含名為onpremvm2
的 VM。 - 名為
OPFW
的虛擬裝置會連線到onpremsn1
和onpremsn2
。 - 連結至
onpremsn1
的 UDR 指定所有流向onpremsn2
的流量都必須傳送至OPFW
。
此時,如果 onpremvm1
嘗試建立與 onpremvm2
的連線,則會使用 UDR,並將流量傳送至 OPFW
作為下一個躍點。 實際封包目的地並未變更。 其仍然表達 onpremvm2
是目的地。
若未針對 OPFW
啟用 IP 轉送,Azure 虛擬網路邏輯會卸除封包,因為如果 VM 的 IP 位址是封包的目的地,則其只允許封包傳送至 VM。
透過 IP 轉送,Azure 虛擬網路邏輯會將封包轉送到 OPFW
,而不會變更其原始的目的地位址。 OPFW
必須處理封包,並確定要使用這些封包做什麼。
上述案例若要運作,您必須在 NIC 上針對用於路由的 OPFW
、AZF1
、AZF2
和 AZF3
啟用 IP 轉送 (所有 NIC,但連結到管理子網路的 NIC 除外)。
防火牆規則
如上所述,IP 轉送只確保封包傳送到虛擬設備。 您的設備仍然需要決定如何處理這些封包。 在上述案例中,您需要在設備中建立下列規則。
OPFW
OPFW 代表包含下列規則的內部部署裝置:
- 路由:所有流向 10.0.0.0/16 (
azurevnet
) 的流量都必須透過通道ONPREMAZURE
傳送。 - 原則︰允許
port2
與ONPREMAZURE
之間所有的雙向流量。
AZF1
AZF1
代表包含下列規則的 Azure 虛擬設備:
原則︰允許 port1
與 port2
之間所有的雙向流量。
AZF2
AZF2
代表包含下列規則的 Azure 虛擬設備:
原則︰允許 port1
與 port2
之間所有的雙向流量。
AZF3
AZF3
代表包含下列規則的 Azure 虛擬設備:
路由:所有流向 192.168.0.0/16 (onpremvnet
) 的流量都必須透過 port1
傳送至 Azure 閘道 IP 位址 (即 10.0.0.1)。
網路安全性群組
這個案例中不會使用 NSG。 不過,您可以將 NSG 套用到每個子網路來限制流量的出入。 例如,您可以將下列 NSG 規則套用至外部防火牆子網路。
連入
- 在子網路的任何 VM 上,允許從網際網路到連接埠 80 的所有 TCP 流量。
- 拒絕來自網際網路的所有其他流量。
連出
拒絕所有流向網際網路的流量。
高階步驟
若要部署此案例,請遵循下列步驟:
登入 Azure 訂用帳戶。
如果您想要部署虛擬網路來模擬內部部署網路,請部署屬於
ONPREMRG
的資源。部署屬於
AZURERG
的資源。將通道從
onpremvnet
部署到azurevnet
。在佈建了所有資源之後,請登入
onpremvm2
並 ping 10.0.3.101,來測試onpremsn2
與azsn3
之間的連線。