FreeBSD 的 pf route-to 與 TSO (TCP Segmentation Offload)

之前一直有遇到在 pf 裡面用 route-to 之後網路連線緩慢的問題(大概只有 10kb/s),不過一直沒時間去追。最近花了點時間去追這個問題,發現在使用 route-to 並且開啟 TSO 之後,重送以及 out-of-order 的 packet 變得異常多:

wireshark.png

拿掉 TSO 或是 route-to 其中一個設定,狀況就會變好。在 core team 修正這個 bug 之前,只好先暫時 disable TSO 了。