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

本頁將逐步說明如何建立虛擬私有雲 (VPC) 網路和兩個 Compute Engine 執行個體,以進行測試。本指南假設您大致瞭解網路 MTU

建立自動模式虛擬私有雲網路

控制台

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

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

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

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

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

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

  6. 取消勾選「自動設定 MTU」核取方塊。

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

    如要讓運算執行個體傳送及接收巨型封包,執行個體的虛擬 NIC 必須連線至 MTU 值大於或等於機器 MTU 的虛擬私有雲網路。請將執行個體的 MTU 設為盡可能大的值,例如

    1. 如果您使用 GPU 機器,請參閱巨型封包和 GPU 機器
  8. 點選「建立」

建立防火牆規則

控制台

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

    前往「Firewall policies」(防火牆政策)

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

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

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

  5. 在「Targets」(目標) 下拉式選單中,選取「All instances in the network」(網路中的所有執行個體)

  6. 從「來源篩選器」下拉式選單中,選取「IPv4 範圍」

  7. 在欄位中輸入 10.128.0.0/16

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

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

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

  11. 點選「建立」

建立運算執行個體

本節說明如何建立兩個運算執行個體以進行測試。

控制台

重複執行這些步驟兩次,在相同區域中建立兩個運算執行個體。

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

    前往 VM 執行個體

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

  3. 為您的執行個體指定名稱

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

  5. 點選「網路」

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

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

使用 SSH 連線至運算執行個體

控制台

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

    前往 VM 執行個體

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

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

驗證 MTU

  1. 第一個運算執行個體的終端機中,執行下列指令:

    /sbin/ifconfig | grep mtu
    

    輸出結果大致如下。MTU 回報為 8896

    ens4: flags=4163  mtu 8896
    lo: flags=73  mtu 65536
    
  2. 第二個運算執行個體的終端機中,安裝 tcpdump

    sudo apt-get install tcpdump --yes
    
  3. 第二個運算執行個體的終端機中,啟動 tcpdump。將 FIRST_INSTANCE 換成第一個執行個體的名稱。

    sudo tcpdump host FIRST_INSTANCE -v
    
  4. 第一個運算執行個體的終端機中,對第二個執行個體執行 Ping 作業。在 ping 指令中,指定比網路 MTU 小 28 個位元組的封包大小。將 SECOND_INSTANCE 替換為第二個執行個體的名稱。

    ping SECOND_INSTANCE -c 10 -M do -s 8868
    
  5. 第二個運算執行個體的終端機中,查看 tcpdump 指令的輸出內容。輸出結果會與下列內容相似:

    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_INSTANCE.c.PROJECT_ID.internal > SECOND_INSTANCE.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_INSTANCE.c.PROJECT_ID.internal > FIRST_INSTANCE.c.PROJECT_ID.internal: ICMP echo reply, id 5253, seq 1, length 8876
    

    變數的意義如下:

    • FIRST_INSTANCE:第一個執行個體的名稱。
    • SECOND_INSTANCE:第二個執行個體的名稱。
    • PROJECT_ID:包含執行個體的專案 ID。
  6. 在第二個執行個體中,按下 Ctrl-c 停止 tcpdump

  7. 測試完成後,請依下列順序刪除資源:

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

後續步驟