tplink 、h3c 和(我用的) openwrt 都没有 ipv6 MTU 的选项,只有一个 WAN 口的 MTU ,那是 v4 和 v6 公用一个 MTU 值吗?
1
yyzh 2023-10-28 11:54:51 +08:00 via Android
是
|
2
erfesq 2023-10-28 12:15:48 +08:00 via Android
ipv6 的 mtu 设置为 1280 最好,ipv4 的 mtu 一般设置为 1492 或者 1480
|
5
letmefly 2023-10-28 14:44:20 +08:00
openwrt 原版是肯定有 ipv6 mtu 选项的,就在 ipv6 RA 设置 ,RA mtu 那里。
|
6
v2tudnew 2023-10-28 14:46:37 +08:00
其实不用设置,IPv6 会通过 ICMP 自动协商 MTU ,好像叫 Path MTU
|
7
mantouboji 2023-10-28 14:59:41 +08:00
/ipv6 firewall mangle
add action=change-mss chain=forward new-mss=clamp-to-pmtu passthrough=yes protocol=tcp tcp-flags=syn |
8
xqzr 2023-10-28 15:08:17 +08:00 1
@v2tudnew 当初 我和你的想法一样 直到我遇到了 https://res.wx.qq.com 没有处理 PMTU 导致黑洞
|
9
yin1999 2023-10-28 15:12:07 +08:00
看这个帖子:/t/800024
|
10
xqzr 2023-10-28 15:12:28 +08:00
PPPoE 1492
IPoE/固定 IP 1500 |
13
ciichen 2023-10-28 16:16:36 +08:00 via iPhone
ipv6 协议自动探测链路最小 mtu
|
14
a90405 2023-10-28 17:28:33 +08:00
流量过滤链 "mangle_forward"
钩子:forward(捕获发送到其他主机的传入数据包),优先级:-150 策略:accept (继续处理不匹配的数据包) 规则匹配 规则操作 #规则评论:Zone wan IPv4/IPv6 ingress MTU fixing 入口设备名 于集合 { eth1, pppoe-wan }eth1 pppoe-wan 中 TCP 标记 是 syn 将标头字段 TCP 最大报文段长度设为有效的路由 MTU #规则评论:Zone wan IPv4/IPv6 egress MTU fixing 出口设备的名称 于集合 { eth1, pppoe-wan }eth1 pppoe-wan 中 TCP 标记 是 syn 将标头字段 TCP 最大报文段长度设为有效的路由 MTU openwrt 23.05 有 mss 钳制啊 |
15
znsb OP 完全看不懂😅
|
16
RecursiveG 2023-10-28 21:47:37 +08:00 2
MTU 和 IPv4 还是 IPv6 没有关系,要按 IP 协议分别设置的那个叫 MSS 。建议重新阅读 MTU 的定义。
> 最大传输单元(缩写 MTU )是指 **数据链路层** 上面所能通过的最大数据包大小,这个参数通常与通信接口有关。 |
17
znsb OP @RecursiveG 那为什么这么多人说 ipv4 mtu ,ipv6 mtu ,都是错的吗
|
19
RecursiveG 2023-10-28 23:45:00 +08:00
|
20
realpg 2023-10-29 01:55:55 +08:00
看着一堆 mss 和 mtu 都分不出的指点江山……
|
22
erfesq 2023-10-29 02:07:56 +08:00 via Android
ipv6 用最小的 1280 进行传输这个是最优解,因为 ipv6 会自动协商,比如设置成 1492 如果中间有 1280 的会丢弃然后再次用 1280 的发包
|
25
ysc3839 2023-10-29 04:08:26 +08:00 via Android
@erfesq 不会先丢一遍,TCP 会通过 MSS Clamping 来确定链路中最小 MTU ,确定后就不会改了,丢了就丢了。一般来说运营商的设备要不然 MTU 是 1500 或更大,如果 MTU 较小的话,是会支持 MSS Clamping 的,因为如果不支持的话会对经过的流量造成影响。个人认为如果没实际遇到问题,没必要调低 MTU 。
|
27
me1onsoda 2023-10-29 07:38:20 +08:00
ipv6 不是不允许分片吗?还有 mtu 这个概念吗
|
30
erfesq 2023-10-29 22:31:10 +08:00 via Android
@znsb 华为光猫在华为界面下有 ipv6 mtu 设置,路由器我还没见过有这个设置的,我设置过 ipv6 的 mtu 为 1280 ,比设置成其它的产生的问题少
|
31
lxll 2023-10-29 23:17:08 +08:00 via Android
h3c 支持的,cli 接口视图: ipv6 mtu xxx ,其实 v4v6 mtu 保持一致即可,tcp mss v6 需要比 v4 小 20
|
32
znsb OP @ysc3839 一头雾水😵💫,所以就是只改 tcp-mss 就 OK 了吗?那 mss 大小是多少?
下面我这个防火墙规则有问题吗: iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -o pppoe-wan -j TCPMSS --set-mss 1200 ip6tables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -o pppoe-wan -j TCPMSS --set-mss 1280 iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -i pppoe-wan -j TCPMSS --set-mss 1200 ip6tables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -i pppoe-wan -j TCPMSS --set-mss 1280 。 还有就是 FORWARD POSTROUTING PREROUTING 这三规折表哪个表里设置 mss 才是正确的(我看网上说法五花八门) |
33
ysc3839 2023-10-31 22:19:56 +08:00 via Android 1
@znsb 大多数情况下是的。
我不懂 iptables ,我自己用的是 OpenWrt ,是直接在防火墙设置里开启 MSS Clamping 就行了。 |
34
beyondstars 2023-11-20 20:31:05 +08:00
@me1onsoda 对于 IPv6 ,路由器遇到大于 MTU 的包会返回 ICMPv6 type 2 报文,发送方根据这个消息把 packets 拆小再发送。 参见 https://en.wikipedia.org/wiki/Path_MTU_Discovery
|