教學目標

學習 Google Cloud Platform 的心得分享,初步了解有關診斷網路問題的重點概念。

重點概念

首先 Google 的網路規模和複雜性常使我們很難所定問題根因和責任歸屬,而為了能夠正確診斷網路問題,我們需要知道造成問題的根本原因,所以需要收集更詳細的診斷資訊,以利縮小可能的問題假設範圍,此時如果能夠提供封包傳輸流程圖,則就能夠更清楚了解封包從來源至目的地所經過的關鍵點有哪些,以及過程中有哪些任何重要的轉換。更進一步我們需要留意任何與端點有關且有意義的資訊,像是端點由誰控管、是否與 DNS 主機名稱解析服務進行關聯,是否有任何中間層,像是 Load Balancing 負載平衡、VPN 虛擬私有網路安全通道和 NAT Gateway 網路轉址閘道,是否有任何防護機制,像是 Firewall 防火牆、CDN 內容傳遞網路或 WAF 網路應用程式防火牆。此外 Google 雲端平台有提供許多與網路相關的對應服務,分別為:

  1. DNS 主機名稱解析服務:Cloud DNS
  2. Load Balancing 負載平衡:Cloud Load Balancing
  3. VPN 虛擬私有網路安全通道:Cloud VPN
  4. NAT Gateway 網路轉址閘道:Cloud NAT
  5. Firewall 防火牆:VPC Firewall
  6. CDN 內容傳遞網路:Cloud CDN
  7. WAF 網路應用程式防火牆:Cloud Armor

接著 Google 雲端平台提供許多與網路相關的對應服務需要如何搭配呢?一開始我們主要會在 Google 雲端平台的虛擬私有雲端 (VPC) 建立虛擬機器的執行個體,並且設定虛擬私有雲端 Firewall 防火牆允許 HTTP 的 80 連接埠就能夠讓網際網路的使用者透過外部 IP 位址連線至虛擬機器中所架設的網站進行瀏覽,但是 IP 位址無法代表任何意義,所以需要透過 Cloud DNS 主機名稱解析服務將網域中的特定網址與 IP 位址進行相聯,以利使用者僅需要輸入特定網址就能夠瀏覽虛擬機器中所架設的網站。而當瀏覽的使用者越來越多時,就會需要將虛擬機器的執行個體變更為執行個體群組,以利透過 Cloud Load Balancing 設定 HTTP(S) 負載平衡服務,可以跨地區平衡多個後端執行個體的 HTTP(S) 流量,此時為了安全傳輸就會需要使用 HTTPS 的 443 連接埠讓網際網路的使用者透過負載平衡服務所提供的網址安全連線至虛擬機器中所架設的網站進行瀏覽,至於安全連線所需的安全憑證,預設會由 Google 自行產生簽署的安全憑證。但是這樣還是不足夠應付大量使用者,或者對於後端執行個體自動擴展所需的資源成本費用太高,則建議透過 Cloud CDN 內容傳遞網路針對靜態內容設定快取,以利縮短網路延遲時間、減輕負擔,並且降低傳送的成本費用。

再來對於企業來說非常關注資安議題,當如果考慮要防止外部連線至雲端內部的虛擬機器,但又需要讓該虛擬機器存取網際網路資源時,則我們能夠建立單獨的虛擬私有網路,並且在該虛擬私有網路中建立取消外部 IP 位址的虛擬機器,此時外部使用者就無法外部 IP 位址連線至虛擬機器,但是我們能夠設定 Cloud NAT 網路轉址閘道讓該虛擬機器能夠存取網際網路。此外我們更能夠透過 Cloud VPN 虛擬私有網路安全通道將雲端平台中的虛擬私有網路與企業本地端的網路建立安全通道,以利雲端資源和本地端資源進行互連。至於有關 DDoS 的阻斷式網路攻擊,則建議使用 Cloud Armor 網路應用程式防火牆,請注意 Cloud Armor 無法搭配 Cloud CDN 一起使用,而是建議搭配 Cloud Load Balancing 一起使用,以利達到最完善的資安防護的解決方案,請注意目前 Cloud Armor 網路應用程式防火牆僅能夠針對網路第七層應用層設定 IP 白名單以及黑名單,以利避免遭受 DDoS 的阻斷式網路攻擊。

最後許多導致高延遲或間歇封包遺失狀況的問題,就會需要進行路徑分析及或封包擷取診斷。所謂路徑分析主會列出封包所有傳送的關鍵點,通常會使用 traceroute 或 MTR 等工具。所謂封包擷取,又稱「pcap」,名稱取自「libpcap」程式庫,其主要用於觀察即時的網路流量,請務必同時對兩個端點皆進行封包擷取,通常會使用 tcpdump 或 Wireshark 等工具,請注意由於這些工具的診斷網路的功能,因此需要熟悉這些工具的使用方式,特別是 MTR 和 Wireshark 這兩個工具。

相關資源