簡介
本文檔介紹在ESXi 6.7 update 2及更高版本中強制實施的虛擬vmxnet3網路介面卡(vNIC)上的最大傳輸單元(MTU)檢查。
必要條件
需求
思科建議您瞭解以下主題:
- ESXi中的VMWare虛擬機器網路配置
- 思科會議伺服器(CMS)命令列介面(CLI)
採用元件
本文檔中的資訊基於作為虛擬機器運行的CMS。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
具體來說,本檔案會引用CMS,但會影響符合以下要求的任何虛擬機器:
- ESXi版本6.7 update 2或更高版本
- vmxnet3介面卡正在使用
- 虛擬機器的vNIC級別的MTU更改
背景資訊
在ESXi版本6.7 Update 2和更新版本中,將強制實施平台的預設行為以對接收路徑執行MTU檢查,並且不允許大於vNIC的MTU大小的資料包。
在此版本之前,此檢查並未實施,當使用vmxnet3 vNIC的虛擬機器(VM)上的MTU大小發生更改時,這會增加資料包丟棄的可能性。
例如,如果將vSwitch設定為接收1500位元組的MTU,但VM的vNIC MTU降低到1300位元組,且收到大於1300位元組的封包,則會捨棄或捨棄此封包。
問題:MTU大小降低時可能丟失資料包
在ESXi版本6.7 update 2及更高版本中運行Cisco Meeting Server(或其他在vNIC級別修改MTU並使用vmxnet3 adapter的應用程式)VM的環境,在由於此預設行為更改而降低MTU時,可能會遇到資料包丟失問題。
在CMS Mainboard Management Processor(MMP)設定上使用interface <interface> mtu <value> 指令,會降低MTU,然後此指令在vNIC設定值,以降低網路中封包的延遲。
有關這些更改的更多詳細資訊,請參閱此VMware文章。
解決方案
以下是有助於解決此問題的選項。
註意:選項1和2要求ESXi環境已安裝ESXi670-201912001的修補程式版本,以便該選項可用於修改vmxnet3配置以進行MTU檢查。有關此問題的詳細資訊,請參閱修補程式版本的發行說明。以下文本提及的內容。
"PR 2409342:您不能選擇在vmxnet3後端禁用最大傳輸單元(MTU)檢查,以使資料包長度不超過vNIC MTU
使用ESXi670-201912001,您可以選擇在vmxnet3後端禁用最大傳輸單元(MTU)檢查,以使資料包長度不超過vNIC MTU。預設行為是執行MTU檢查。但是,如果使用vmxnet3,則此檢查的結果可能會是丟棄的資料包增加。有關詳細資訊,請參閱VMware知識庫文章75213。
此版本中已解決此問題。」
選項1:主機範圍的配置
如前所述,此選項要求安裝修補程式版本(ESXi670-201912001)。以下詳細資訊直接取自VMware文檔頁面的解決方案部75213。
esxcli system settings advanced set -o "/Net/vmxnet3NonTsoPacketGtMtuAllowed" -i 1
附註:此組態適用於所有vmxnet3 vNIc(主機範圍)。 然後,此設定將應用到進行此更改後已開啟電源的每個虛擬機器。
選項2:vNIC特定配置
如前所述,此選項要求安裝修補程式版本(ESXi670-201912001)。以下詳細資訊直接取自VMware文檔頁面的解決方案部75213。
在vmx檔案中使用ethernet0.rxAllowPktGtMtu = "1":
其中「ethernet0」應替換為要應用配置的特定vNic。
請使用VMware KB文章按照以下步驟操作:
正在使用vSphere客戶端(1016098)KB修改高級虛擬機器設定。
選項3: 因應措施
對於解決方法選項,您可以選擇恢復應用程式/VM上的MTU配置,使其設定為接收網路中接受的內容。
例如,如果將vSwitch設定為接收MTU大小1500,則必須將虛擬機器vNIC設定為與此匹配。如果環境運行CMS,則必須將介面MTU設定為預期值。
例如:在CMS MMP上配置的mtu 1500。
另一種方法是確保網路配置正確,使到達vNIC的資料包不會超過vNIC的設定MTU值。這需要在整個網路中完成,以確保正確設定分段。
相關資訊