全部產品
Search
文件中心

Virtual Private Cloud:分析公網NAT Gateway中配置SNAT規則的高流量ECS執行個體

更新時間:Nov 15, 2024

當公網訪問流量突增時,公網NAT Gateway可能觸發容量和頻寬上限,從而導致服務響應變慢,影響業務流量。您可以分析公網NAT Gateway中SNAT規則ECS執行個體的流量情況,通過VPC流日誌篩選出高流量的ECS執行個體,從而最佳化網路頻寬分配,改善網路瓶頸。

功能介紹

公網NAT Gateway是一款面向企業的安全網關產品,提供SNAT和DNAT功能。通過公網NAT Gateway,您可以對大量訪問公網的機器進行精細化的營運監控和管理。同時通過公網NAT Gateway還可展示top流量,精確定位突發流量的ECS執行個體,並提供豐富多維度流量監控指標。更多公網NAT Gateway的資訊,請參見什麼是公網NAT Gateway

VPC流日誌可以捕獲指定彈性網卡(Elastic Network Interfaces,ENI)、指定VPC或者交換器中所有彈性網卡的流量。

當您需要排查公網NAT Gateway(配置SNAT或者DNAT功能)中ECS執行個體的流量情況時,您可以建立VPC流日誌,捕獲公網NAT Gateway所在交換器內的所有彈性網卡的流量。通過啟用和分析VPC流日誌,系統地排查該公網NAT Gateway中ECS執行個體的流量,對於高流量執行個體進行有效管理和最佳化,確保網路正常運行。

關鍵特性

VPC流日誌啟用後將收集和儲存流量日誌資料,您可以查看並分析ECS訪問公網的各條鏈路的流量日誌,全面瞭解各個ECS執行個體的網路流量行為。

內網與公網之間的流量需要通過公網NAT Gateway進行中轉,公網NAT Gateway綁定的彈性網卡是流量進出公網NAT Gateway的介面。您可以通過公網NAT Gateway對應的彈性網卡監控從內網到公網的出入流量,統計各鏈路的流量使用方式和頻寬消耗。

如下圖所示,以公網NAT Gateway的彈性網卡作為分界,將ECS通過公網NAT Gateway訪問公網的鏈路劃分為四段。

您可以通過Flowlog日誌中心查看並分析IN方向流量OUT方向流量或者查看統計了哪些ENI的流量等資訊。

單擊查看4條鏈路日誌樣本

登入Log Service控制台,您可以查看這4條鏈路的日誌流量情況和統計的具體欄位資訊。關於流日誌各欄位記錄資訊,請參見流日誌概述

序號

日誌樣本

鏈路①的流量方向為in,源和目的IP地址如下:

  • 源IP地址:ECS私網IP地址

  • 目的IP地址:NAT Gateway的私網IP地址

鏈路②的流量方向為out,源和目的IP地址如下:

  • 源IP地址:NAT Gateway的私網IP地址

  • 目的IP地址:特定的公網IP地址

鏈路③的流量方向為in,源和目的IP地址如下:

  • 源IP地址:特定的公網IP地址

  • 目的IP地址:NAT Gateway的私網IP地址

鏈路④的流量方向為out,源和目的IP地址如下:

  • 源IP地址:NAT Gateway的私網IP地址

  • 目的IP地址:ECS的私網IP地址

使用情境

使用流日誌排查公網NAT Gateway中高流量的ECS執行個體,主要適用於以下情境:

  • 最佳化網路效能:在高並發、高流量的業務情境中,通過使用流日誌分析公網NAT Gateway中各ECS執行個體的出站和入站流量,可以排查出高流量執行個體,同時也可以識別出哪些執行個體和源IP組合導致了頻寬瓶頸,通過併合理分配頻寬資源,以避免某些執行個體過載而導致網路瓶頸。

  • 成本控制與最佳化:高流量執行個體可能導致高昂的頻寬費用,通過分析流量日誌,識別出哪些執行個體和源IP持續產生高流量,最佳化這些執行個體的網路訪問路徑,減少不必要的流量,降低成本。

情境樣本

某企業擁有多個內部伺服器,這些伺服器通過公網NAT Gateway的SNAT功能訪問外部的互連網資源。近期,企業發現內部伺服器訪問外部互連網資源的載入時間變長,影響了使用者體驗。該企業希望排查出流量較高的伺服器,並通過合理最佳化和規劃頻寬資源等措施來緩解這些問題,提升使用者體驗。

本文以下圖情境為例。該企業在華東1(杭州)地區擁有一個VPC,其中交換器1內有三台ECS執行個體,這些執行個體通過交換器2中公網NAT Gateway的SNAT功能訪問公網。現在由於內部伺服器訪問公網流量突增,導致伺服器響應變慢,影響體驗,需要通過VPC流日誌排查並分析這三台ECS執行個體中流量佔比較高的執行個體,為重新規劃資源改善網路效能瓶頸提供指導。

前提條件

  • 您已在華東1(杭州)地區建立Virtual Private Cloud、交換器1和交換器2。具體操作,請參見建立和管理專用網路

  • 您已在交換器1內建立3台ECS執行個體,分別為ECS01、ECS02和ECS03。具體操作,請參見自訂購買執行個體

  • 您已在交換器2中建立公網NAT Gateway,並為該公網NAT Gateway建立交換器粒度的SNAT條目。該SNAT條目選擇的交換器粒度指向交換器1。具體操作,請參見使用公網NAT GatewaySNAT功能訪問互連網

    單擊查看本文執行個體的參數配置

    配置項

    具體配置

    Virtual Private Cloud

    VPC網段:172.16.0.0/12

    交換器1網段

    交換器網段:172.16.1.0/24

    交換器2網段

    交換器網段:172.16.3.0/24

    公網NAT Gateway

    公網NAT Gateway的私網IP:172.16.3.128

    Elastic IP Address

    118.XX.XX.86

    ECS執行個體

    • ECS01執行個體:172.16.1.44

    • ECS02執行個體:172.16.1.45

    • ECS03執行個體:172.16.1.46

操作步驟

步驟一:建立流日誌

建立流日誌前,請確保您已經滿足流日誌的前提條件。具體操作,請參見流日誌前提條件

  1. 登入專用網路管理主控台
  2. 在左側導覽列,選擇營運與監控 > 流日誌
  3. 在頂部功能表列處,選擇目標地區。本文選擇華東1(杭州)

  4. 流日誌頁面,單擊建立流日誌

  5. 建立流日誌對話方塊,根據以下資訊配置流日誌,然後單擊確定

    配置

    說明

    資源類型

    選擇要捕獲流量的資源類型,本文選擇交換器

    資源執行個體

    選擇要捕獲流量的資源執行個體。本文選擇交換器1的執行個體ID。

    流量類型

    選擇要捕獲流量的類型,本文選擇全部流量

    專案(Project)

    選擇儲存捕獲流量的專案(Project),本文選擇建立 Project,並輸入建立的Project名稱。

    日誌庫(Logstore)

    選擇儲存捕獲流量的日誌庫(Logstore),本文選擇建立 Logstore,並輸入建立的Logstore名稱。

    開啟流日誌分析報表功能

    本文選擇開啟該功能。

步驟二:通過wrk工具類比使用者流量

  1. 依次登入ECS01、ECS02和ECS03執行個體。

  2. 在ECS01、ECS02和ECS03執行個體中分別執行以下命令,安裝wrk工具。

    yum -y install git make gcc
    git clone https://github.com/wg/wrk.git
    yum install unzip
    cd wrk
    make
  3. 在ECS01、ECS02和ECS03執行個體中分別執行以下命令,進行使用者流量測試。

    ECS01中執行以下命令。

    ./wrk -c 1000 -d 60s -t 3  http://101.XX.XX.200:80/  # 101.XX.XX.200為特定公網IP 

    ECS02中執行以下命令。

    ./wrk -c 2000 -d 60s -t 3  http://101.XX.XX.200:80/  # 101.XX.XX.200為特定公網IP

    ECS03中執行以下命令。

    ./wrk -c 3000 -d 60s -t 3  http://101.XX.XX.200:80/  # 101.XX.XX.200為特定公網IP

    命令列中的參數介紹:

    • -c:connections,每個線程保持的並發串連數。

    • -d:duration,測試的持續時間長度,s表示單位為秒。

    • -t:threads,指定要使用的線程數,即類比的並發使用者數量。

步驟三:查看流日誌

  1. 登入專用網路管理主控台
  2. 在左側導覽列,選擇營運與監控 > 流日誌
  3. 在頂部功能表列處,選擇目標地區。本文選擇華東1(杭州)

  4. 流日誌頁面,找到目標流日誌,然後在Log Service列單擊日誌庫(Logstore)名稱的連結,前往Log Service控制台查看流量資訊。

  5. 根據下圖樣本順序,查看通過公網NAT GatewaySNAT條目訪問公網的ECS執行個體流量情況。

    通過下圖可以觀察到,私網IP為172.16.1.46的ECS03執行個體流量較高。

    高流量ECS截圖.png

    序號

    步驟描述

    本文以如下SQL語句為例,對採集到的VPC流日誌進行彙總和排列,篩選去往某一特定公網IP地址的流量較高的ECS執行個體的圖表:

    dstaddr: "101.XX.XX.200" and action: ACCEPT and srcaddr: 172.16.1.* | select date_format(from_unixtime(__time__ - __time__% 60), '%H:%i:%S') as time, srcaddr,sum(bytes*8/(case WHEN "end"-start=0 THEN 1 else "end"-start end)) as bandwidth group by time,srcaddr order by time asc limit 1000

    該SQL語句定義了時間time、頻寬bandwidth(bps)、源地址srcaddr三個參數,time和srcaddr為彙總列,並按time從小到大排序,取1000條日誌。關於欄位的更多資訊,請參見VPC流日誌的欄位詳情

    其中參數說明如下:

    • dstaddr:目的地址,即公網IP地址。本文輸入101.XX.XX.200

    • srcaddr:源地址,即ECS執行個體IP地址。本文輸入172.16.1.*

    • 其餘欄位請參照樣本值輸入。

    說明
    • 如果您想要篩選某一特定公網IP到ECS執行個體的入流量資訊,請輸入以下SQL語句查詢:

      srcaddr: "101.XX.XX.200" and action: ACCEPT and dstaddr: 172.16.1.* | select date_format(from_unixtime(__time__ - __time__% 60), '%H:%i:%S') as time, 
      dstaddr,sum(bytes*8/(case WHEN "end"-start=0 THEN 1 else "end"-start end)) as bandwidth group by time,dstaddr order by time asc limit 1000

      其中參數說明如下:

      • srcaddr:源地址,即公網IP地址。本文輸入101.XX.XX.200

      • dstaddr:目的地址,即ECS執行個體IP地址。本文輸入172.16.1.*

      • 產生流圖時,彙總列選擇dstaddr

    • 如果您想要篩選ECS執行個體去往所有公網IP的出流量資訊,請輸入以下SQL語句查詢:

      srcaddr: 172.16.1.* and action: ACCEPT | select date_format(from_unixtime(__time__ - __time__% 60), '%H:%i:%S') as time, 
      srcaddr,sum(bytes*8/(case WHEN "end"-start=0 THEN 1 else "end"-start end)) as bandwidth from log where ip_to_domain(dstaddr)!='intranet' group by time,srcaddr order by time asc limit 1000

      其中參數說明如下:

      • srcaddr:源地址,即私網地址,本文輸入172.16.1.*

      • dstaddr:目的地址,即公網地址。

      • 產生流圖時,彙總列選擇srcaddr

    選擇要查看的流日誌時間。本文選擇最近5分鐘

    單擊通用配置頁簽,然後單擊流圖選擇流圖格式。

    查詢分析配置地區,設定以下參數資訊:

    • x軸欄位:設定為time

    • y軸欄位:設定為bandwidth

    • 彙總列:設定為srcaddr

    標準配置地區,設定格式化bps, Kbps, Mbps(SI)

    其餘參數保持預設值。

    單擊添加到儀錶盤,在彈出的對話方塊中設定以下參數資訊:

    • 操作類型:本文以建立儀錶盤為例進行說明。

    • 配置模式:本文以網格布局為例進行說明。

    • 儀錶盤名稱:填寫儀錶盤的名稱,本文輸入ECS經過NAT Gateway出流量

    您可以在儀錶盤查看流日誌資訊。

    單擊查詢/分析,即可查看各個ECS執行個體出公網的流量情況,排查出高流量的ECS執行個體。

相關文檔