建立並驗證巨型封包 MTU 網路

本頁將逐步說明如何建立虛擬私有雲 (VPC) 網路和一對用於測試的 VM。假設您已熟悉網路 MTU

建立自動模式 VPC 網路

主控台

  1. 在 Google Cloud 控制台中,前往「VPC Networks」(虛擬私有雲網路) 頁面。

    前往「VPC networks」(虛擬私有雲網路)

  2. 在專案下拉式選單中選取專案。

  3. 按一下「建立虛擬私有雲網路」

  4. 輸入網路的 [Name] (名稱)

  5. 在「Subnet creation mode」(建立子網路模式) 選擇 [Aotomatic] (自動)

  6. 設定最大傳輸單位 (MTU)

    如要讓 VM 傳送及接收巨型資料流,VM 的虛擬 NIC 必須連線至 MTU 值等於或大於機器 MTU 的 VPC 網路。將 MTU 設為 VM 的最大值,例如 8896。如果您使用的是 GPU 機器,請參閱「超大畫面和 GPU 機器」。

  7. 按一下 [建立]。

建立防火牆規則

主控台

  1. 在 Google Cloud 控制台中,前往「Firewall policies」(防火牆政策) 頁面。

    前往「防火牆政策」

  2. 點按「建立防火牆規則」

  3. 輸入防火牆規則的「Name」(名稱)
    此名稱在專案中不得重複。

  4. 在「Network」下拉式選單中,指定您建立的網路名稱。

  5. 在「目標」下拉式選單中,選取「網路中的所有執行個體」

  6. 從「Source filter」(來源篩選器) 下拉式選單中,選取「IPv4 ranges」

  7. 在欄位中輸入 10.128.0.0/16

  8. 在「Protocols and ports」(通訊協定和通訊埠) 中,選取「Specified protocols and ports」(指定的通訊協定和通訊埠)

  9. 勾選「tcp」核取方塊,然後在欄位中輸入「22」

  10. 勾選「其他通訊協定」核取方塊,然後在欄位中輸入「icmp」

  11. 按一下 [建立]。

建立 VM

本節說明如何建立兩個 VM 執行個體以供測試。

主控台

重複執行這些步驟兩次,即可取得位於同一區域的兩個 VM。

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. 點選「建立執行個體」

  3. 為第一個 VM 指定「名稱」

  4. 點選「網路、磁碟、安全性、管理、單一用戶群」

  5. 點選「網路」

  6. 在「網路介面」中,按一下「預設預設 (10.128.0.0/20)」

  7. 在「Network」下拉式選單中,選取您建立的網路。

使用 SSH 連線至 VM 執行個體

主控台

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. 在第一個執行個體的「連線」欄中,按一下「SSH」

  3. 在第二個執行個體的「連線」欄中,按一下「SSH」

驗證 MTU

  1. 第一個 VM 的終端機中執行下列指令:

    /sbin/ifconfig | grep mtu
    

    回報的 MTU 應為 8896

    ens4: flags=4163  mtu 8896
    lo: flags=73  mtu 65536
    

  2. 第二個 VM 的終端機中,安裝 tcpdump

    sudo apt-get install tcpdump --yes
    

  3. 第二個 VM 的終端機中啟動 tcpdump。將 FIRST_VM_NAME 替換為第一個 VM 的名稱。

    sudo tcpdump host FIRST_VM_NAME -v
    

  4. 第一個 VM 的終端機中,對第二個 VM 執行 ping 作業。ping 指令必須指定封包大小,且必須比網路 MTU 小 28 個位元組。將 SECOND_VM_NAME 替換為第二個 VM 的名稱。

    ping SECOND_VM_NAME -c 10 -M do -s 8868
    

  5. 檢查第二個 VM。畫面上應會顯示類似以下內容:

    tcpdump: listening on ens4, link-type EN10MB (Ethernet), snapshot length 262144 bytes
    19:43:57.116005 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 8896)
    FIRST_VM_NAME.c.PROJECT_ID.internal > SECOND_VM_NAME.c.PROJECT_ID.internal: ICMP echo request, id 5253, seq 1, length 8876
    19:43:57.116053 IP (tos 0x0, ttl 64, id 23961, offset 0, flags [none], proto ICMP (1), length 8896)
    SECOND_VM_NAME.c.PROJECT_ID.internal > FIRST_VM_NAME.c.PROJECT_ID.internal: ICMP echo reply, id 5253, seq 1, length 8876
    

    這些變數的意思如下:

    • FIRST_VM_NAME 是第一個 VM 的名稱。
    • SECOND_VM_NAME 是第二個 VM 的名稱。
    • PROJECT_ID 是包含 VM 的專案 ID。
  6. 在第二個 VM 上按下 Ctrl-c 即可停止 tcpdump

  7. 完成測試後,請按照以下順序刪除資源:

    1. 防火牆規則和 VM 執行個體
    2. 虛擬私有雲網路

後續步驟