iT邦幫忙

0

Wireshark看到Ethernet frame check sequence incorrect??

鵝有user反映mail server連不到後端的Exchange,連過去一看小封包是Ok的,但大封包會看到一坨Ethernet frame check sequence incorrect(L2都過不了了,那L3/L4不work也是天經地義的)....
https://ithelp.ithome.com.tw/upload/images/20180228/20004868RL4B8D8mg1.png

鵝直覺的反應是把NIC(BCM5719)的offloading關掉,關掉後狀況的確是消失了(未使用到的bge1 RXCSUM/TXCSUM/TSO4 default是on的,bge0的RXCSUM/TXCSUM/TSO4是被鵝關掉的)....
https://ithelp.ithome.com.tw/upload/images/20180228/20004868ekP828yxeV.png

可是仔細一想,現代的Ethernet MAC/switch在遇到bad frame時應該會直接drop掉才對(i.e. Wireshark理論上是看不到L2的bad frame的),那為啥鵝會看到那些Ethernet frame check sequence incorrect,而且offloading關掉之後,問題也消失了(誤打誤撞??)

後來鵝試著在lab重建現場,最方便而且還算精確的方式是在ESXi上透過DirectPath I/O讓VM直接控制Ethernet MAC,然後產生大量traffic,看能不能重現一樣的狀況,如果看到一樣的狀況就推測是OS/driver相容性之類的問題,沒有的話就是user site的問題,建了兩個Linux VM測了半天,傳了上TB的garbage,就是沒看到一樣的狀況,問題是鵝家的產品是based on BSD的,BSD VM卻無法透過DirectPath I/O直接控制NIC(VM的kernel boot起來時有看到BCM5719,但要initial PHY時失敗,所以不work),換插另一張I社的I340-T4時Linux和BSD就都可以work,不過這樣就失去重建現場的意義了,請問一下有邦友搞過類似的lab嗎/images/emoticon/emoticon06.gif....

offloading
他跑去越野了

1 個回答

0
raytracy
iT邦大神 1 級 ‧ 2018-02-28 15:05:08

只是連不到 Server, 竟然挖出 Offload 缺陷, 請受小弟一拜...
/images/emoticon/emoticon32.gif

cmwang iT邦高手 1 級 ‧ 2018-02-28 20:26:42 檢舉

好說好說,因為不想辦法排除狀況就會有接不完的電話,而且以BCM5719這麼常見的Ethernet MAC而言,不想辦法排除相容性的問題的話,接下來就等著有擦不完的屁股了/images/emoticon/emoticon16.gif....

cmwang iT邦高手 1 級 ‧ 2018-04-28 17:56:43 檢舉

剛在Mobile01有網友提供了一點看法,鵝順便轉貼一下了,那些Ethernet frame check sequence incorrect看來是本機發出的封包(48.53->48.169),不是收到的封包,而且鵝確定Wireshark中Validate Ethernet checksum if possible是enable的(不然不會顯示那些錯誤),就算driver層有bug造成TSO/TXCSUM不work,MAC層產生的Ethernet checksum通常還是對的,而不會有看到checksum error的機會(libpcap capture的點不同的話,是有可能看到checksum還是0x0的封包,但在此checksum是已經填了,只是填錯了),不過事隔這一段期間,鵝已經從那個職位畢業了,所以也看不到現場了/images/emoticon/emoticon16.gif....

我要發表回答

立即登入回答