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

本頁面將逐步說明如何建立虛擬私有雲 (VPC) 網路和一對 VM,以進行測試。本文假設您大致熟悉網路 MTU

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

控制台

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

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

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

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

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

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

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

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

    如要讓 VM 傳送及接收巨型封包,VM 的虛擬 NIC 必須連線至 MTU 值大於或等於機器 MTU 的虛擬私有雲網路。將 VM 的 MTU 設為最大可能值,例如 8896。如果您使用 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. 點選「建立」

建立 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. first 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. 虛擬私有雲網路

後續步驟