/ip firewall mangle
add action=change-mss chain=forward new-mss=clamp-to-pmtu out-interface=ether1 passthrough=yes \
protocol=tcp tcp-flags=syn
info
成自己用 RouterOS 拨号之后,经常发现有的图片加载不出来,网上一顿冲浪之后发现可能是在 RouterOS 中没有正确配置 MTU 及 MSS,导致部分包被丢弃,也就是传说中的 PMTU 黑洞。
为什么用光猫或者硬路由拨号就没有这个问题
这是因为,多数家用路由器默认开启了一个叫 MSS Clamping
的功能。这是针对 PMTU 黑洞的一个 workaround,简单来说就是在 TCP 握手时,服务器会通过一个字段告知客户端它愿意接收的 TCP 包的最大尺寸,这样客户端就可以限制自己发送的包的大小,保证不会超出服务端要求的尺寸。
在 RouterOS 中配置 MSS Clamping
配置非常简单,分别对 IPv4 和 IPv6 的防火墙 Mangle 表添加如下配置即可。
/ip/firewall/mangle
add action=change-mss chain=forward comment="IPv4 MSS clamp to PMTU" \
new-mss=clamp-to-pmtu out-interface="China Telecom" passthrough=yes \
protocol=tcp tcp-flags=syn
/ipv6/firewall/mangle
add action=change-mss chain=forward comment="IPv6 MSS clamp to PMTU" \
new-mss=clamp-to-pmtu out-interface="China Telecom" passthrough=yes \
protocol=tcp tcp-flags=syn
ps: 中國叫光貓,臺灣叫光纖。但是如果是電轉光,或是非routeros ,為 routeros x86
又是另一種解釋
臺灣全光纖進, mtu 可以設定 8196 or 9000 初始效能比較快
https://www.boris1993.com/routeros-mss-clamping.html