Native IPV6 on ppp0e with lan Bridge wrong MTU in RADVD
-
Just found a 'bug' with the following configuration:
WAN: PPPoe IPv4+IPv6(DHCP-PD)
LAN: Bridge interface (member interfaces igb1+igb3)
RADVD enabled on Bridge interfaceMTU size on PPPoe default 1492. RADVD seems like to inherit the MTU size of the LAN interface. Which is default 1500. So Router Advertisement are sent with MTU size: 1500.
This causes most of the IPv6 sites unreachable!
I 'fixed' this by changing /etc/inc/services.inc:
$mtu = get_interface_mtu(pppoe0); –-> pppoe0 was $realif
if (is_numeric($mtu)) {
$radvdconf .= "\tAdvLinkMTU {$mtu};\n";
} else {
$radvdconf .= "\tAdvLinkMTU 1280;\n";
}I think RADVD should use the MTU size of the WAN interface instead of LAN.
-
Well, the LAN tab says "If this field is blank, the adapter's default MTU will be used. This is typically 1500 bytes but can vary in some circumstances.
MSS", so there's no doubt what MTU is used. It's simple enough to change it. However, it shouldn't make a difference, as path MTU discovery is supposed to be used, as you have no idea what MTUs will be used along the path. Perhaps the issue is why that's not happening. -
Well, the first thing I tried is to change the MTU size of the bridge. Which seems not possible.
So I digged into radvd to do it manually.
Because PATH mtu is used with ICMP the problem arises. The IPv6 client tells the webserver: My MTU is 1500 (received from radvd). So the Webserver tries to sent packages with MTU size 1500. Which is a problem because the PPPoe(WAN) interface is only 1492.
After I changed radvd to tell the IPv6 clients to use MTU 1492, alle websites are reachable again.