建立及驗證巨型封包 MTU 網路
本頁將逐步說明如何建立虛擬私有雲 (VPC) 網路和兩個 Compute Engine 執行個體,以進行測試。本指南假設您大致瞭解網路 MTU。
建立自動模式虛擬私有雲網路
控制台
前往 Google Cloud 控制台的「VPC Networks」(虛擬私有雲網路) 頁面。
在專案下拉式選單中選取專案。
按一下「建立虛擬私有雲網路」。
輸入網路的 [Name] (名稱)。
在「Subnet creation mode」(建立子網路模式) 選擇 [Aotomatic] (自動)。
取消勾選「自動設定 MTU」核取方塊。
設定最大傳輸單位 (MTU)。
如要讓運算執行個體傳送及接收巨型封包,執行個體的虛擬 NIC 必須連線至 MTU 值大於或等於機器 MTU 的虛擬私有雲網路。請將執行個體的 MTU 設為盡可能大的值,例如
- 如果您使用 GPU 機器,請參閱巨型封包和 GPU 機器。
點選「建立」。
建立防火牆規則
控制台
前往 Google Cloud 控制台的「Firewall policies」(防火牆政策) 頁面。
點按「建立防火牆規則」。
輸入防火牆規則的「Name」(名稱)。
此名稱在專案中不得重複。在「Network」(網路) 下拉式選單中,指定您建立的網路名稱。
在「Targets」(目標) 下拉式選單中,選取「All instances in the network」(網路中的所有執行個體)。
從「來源篩選器」下拉式選單中,選取「IPv4 範圍」。
在欄位中輸入 10.128.0.0/16。
在「Protocols and ports」(通訊協定和通訊埠) 中,選取「Specified protocols and ports」(指定的通訊協定和通訊埠)。
勾選「tcp」核取方塊,並在欄位中輸入「22」。
勾選「其他通訊協定」核取方塊,然後在欄位中輸入「icmp」。
點選「建立」。
建立運算執行個體
本節說明如何建立兩個運算執行個體以進行測試。
控制台
重複執行這些步驟兩次,在相同區域中建立兩個運算執行個體。
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
點選「建立執行個體」。
為您的執行個體指定名稱。
點選「網路、磁碟、安全性、管理、單一用戶群」。
點選「網路」。
在「網路介面」中,按一下「預設 default (10.128.0.0/20)」。
在「Network」(網路) 下拉式選單中,選取您建立的網路。
使用 SSH 連線至運算執行個體
控制台
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
在第一個執行個體的「連線」欄中,按一下「SSH」。
在第二個執行個體的「連線」欄中,按一下「SSH」。
驗證 MTU
在第一個運算執行個體的終端機中,執行下列指令:
/sbin/ifconfig | grep mtu
輸出結果大致如下。MTU 回報為
8896。ens4: flags=4163
mtu 8896 lo: flags=73 mtu 65536 在第二個運算執行個體的終端機中,安裝
tcpdump:sudo apt-get install tcpdump --yes
在第二個運算執行個體的終端機中,啟動
tcpdump。將 FIRST_INSTANCE 換成第一個執行個體的名稱。sudo tcpdump host FIRST_INSTANCE -v
在第一個運算執行個體的終端機中,對第二個執行個體執行 Ping 作業。在
ping指令中,指定比網路 MTU 小 28 個位元組的封包大小。將 SECOND_INSTANCE 替換為第二個執行個體的名稱。ping SECOND_INSTANCE -c 10 -M do -s 8868
在第二個運算執行個體的終端機中,查看
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。
在第二個執行個體中,按下
Ctrl-c停止tcpdump。測試完成後,請依下列順序刪除資源:
- 防火牆規則和運算執行個體
- 虛擬私有雲網路
後續步驟
- 進一步瞭解 MTU。
- 建立具有指定 MTU 的虛擬私有雲網路。