OPNSense setzt AdvLinkMTU nicht auf dem LAN-Interface

CoMo

Commodore
Registriert
Dez. 2015
Beiträge
4.197
Hallo,

in meinem Netzwerk läuft mittlerweile fast alles auf MTU 9000, nun habe ich gesehen, dass OPNSense in den Router Advertisements auch eine MTU setzen kann über AdvLinkMTU. Das funktioniert aber nicht:

/services_router_advertisements.php: Skipping AdvLinkMTU configuration since it cannot be applied on lan

Kann mir jemand sagen, was das bedeutet und warum ich die MTU nicht auf dem LAN-Interface setzen kann?

Aktuell liefern die RA-Messages eine MTU von 1492:


Code:
Soliciting ff02::2 (ff02::2) on eth0...

Hop limit                 :           64 (      0x40)
Stateful address conf.    :           No
Stateful other conf.      :          Yes
Mobile home agent         :           No
Router preference         :         high
Neighbor discovery proxy  :           No
Router lifetime           :         1800 (0x00000708) seconds
Reachable time            :  unspecified (0x00000000)
Retransmit time           :  unspecified (0x00000000)
 Prefix                   : 2003:XXXX:XXXX:XXXX::/64
  On-link                 :          Yes
  Autonomous address conf.:          Yes
  Valid time              :        86400 (0x00015180) seconds
  Pref. time              :        14400 (0x00003840) seconds
 Prefix                   : fda6::/64
  On-link                 :          Yes
  Autonomous address conf.:          Yes
  Valid time              :        86400 (0x00015180) seconds
  Pref. time              :        14400 (0x00003840) seconds
 Recursive DNS server     : fda6::e04a:XXXX:XXXX:XXXX
  DNS server lifetime     :         1800 (0x00000708) seconds
 DNS search list          : home.arpa
  DNS search list lifetime:         1800 (0x00000708) seconds
 MTU                      :         1492 bytes (valid)
 Source link-layer address: 20:7C:XX:XX:XX:XX
 from fe80::227c:XXXX:XXXX:XXXX
 
Unterstützt die Netzwerkhardware der opnsense Jumboframes? Muss das ggf. bei dem Treiber gesondert aktiviert werden? Hast du es mal manuell probiert?
 
Jumbo Frames funktionieren einwandfrei über IPv4.


Code:
root@pve2:~# ping -4 -M do -s 8972 opnsense
PING  (192.168.100.1) 8972(9000) bytes of data.
8980 bytes from OPNSense.home.arpa (192.168.100.1): icmp_seq=1 ttl=64 time=0.410 ms
8980 bytes from OPNSense.home.arpa (192.168.100.1): icmp_seq=2 ttl=64 time=0.402 ms
8980 bytes from OPNSense.home.arpa (192.168.100.1): icmp_seq=3 ttl=64 time=0.440 ms
8980 bytes from OPNSense.home.arpa (192.168.100.1): icmp_seq=4 ttl=64 time=0.437 ms

Über IPv6 nicht.


Code:
root@pve2:~# ping -6 -M do -s 8972 opnsense
PING opnsense(OPNSense.home.arpa (fda6::1)) 8972 data bytes
ping: local error: message too long, mtu: 1492
ping: local error: message too long, mtu: 1492
ping: local error: message too long, mtu: 1492

Auf der OPNSense sehe ich, dass die Pakete fragmentiert werden:


Code:
root@pve2:~# ping -6  -s 8972 opnsense
PING opnsense(OPNSense.home.arpa (fda6::1)) 8972 data bytes
8980 bytes from OPNSense.home.arpa (fda6::1): icmp_seq=1 ttl=64 time=0.497 ms
8980 bytes from OPNSense.home.arpa (fda6::1): icmp_seq=2 ttl=64 time=0.425 ms
8980 bytes from OPNSense.home.arpa (fda6::1): icmp_seq=3 ttl=64 time=0.367 ms


Code:
13:18:57.018405 IP6 (hlim 64, next-header Fragment (44) payload length: 1448) OPNSense.home.arpa > pve2.home.arpa: frag (0x22c18045:0|1440) ICMP6, echo reply, id 44340, seq 1
13:18:57.018414 IP6 (hlim 64, next-header Fragment (44) payload length: 1448) OPNSense.home.arpa > pve2.home.arpa: frag (0x22c18045:1440|1440)
13:18:57.018444 IP6 (hlim 64, next-header Fragment (44) payload length: 1448) OPNSense.home.arpa > pve2.home.arpa: frag (0x22c18045:2880|1440)
13:18:57.018452 IP6 (hlim 64, next-header Fragment (44) payload length: 1448) OPNSense.home.arpa > pve2.home.arpa: frag (0x22c18045:4320|1440)
13:18:57.018457 IP6 (hlim 64, next-header Fragment (44) payload length: 1448) OPNSense.home.arpa > pve2.home.arpa: frag (0x22c18045:5760|1440)
13:18:57.018486 IP6 (hlim 64, next-header Fragment (44) payload length: 1448) OPNSense.home.arpa > pve2.home.arpa: frag (0x22c18045:7200|1440)
13:18:57.018492 IP6 (hlim 64, next-header Fragment (44) payload length: 348) OPNSense.home.arpa > pve2.home.arpa: frag (0x22c18045:8640|340)
13:18:57.446376 IP6 (flowlabel 0x0e4a8, hlim 1, next-header ICMPv6 (58) payload length: 48) 2003:a:327:1a00:be24:11ff:fe6d:a246 > 2800:860:72f7::1: [icmp6 sum ok] ICMP6, echo request, id 324, seq 1
13:18:57.446571 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 96) OPNsense > 2003:a:327:1a00:be24:11ff:fe6d:a246: [icmp6 sum ok] ICMP6, time exceeded in-transit for 2800:860:72f7::1
13:18:57.456831 IP6 (flowlabel 0x0e4a8, hlim 1, next-header ICMPv6 (58) payload length: 48) 2003:a:327:1a00:be24:11ff:fe6d:a246 > 2800:860:72f7::1: [icmp6 sum ok] ICMP6, echo request, id 324, seq 2
13:18:57.456899 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 96) OPNsense > 2003:a:327:1a00:be24:11ff:fe6d:a246: [icmp6 sum ok] ICMP6, time exceeded in-transit for 2800:860:72f7::1
13:18:57.469246 IP6 (flowlabel 0x0e4a8, hlim 1, next-header ICMPv6 (58) payload length: 48) 2003:a:327:1a00:be24:11ff:fe6d:a246 > 2800:860:72f7::1: [icmp6 sum ok] ICMP6, echo request, id 324, seq 3
13:18:57.469290 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 96) OPNsense > 2003:a:327:1a00:be24:11ff:fe6d:a246: [icmp6 sum ok] ICMP6, time exceeded in-transit for 2800:860:72f7::1
13:18:57.479515 IP6 (flowlabel 0x0e4a8, hlim 2, next-header ICMPv6 (58) payload length: 48) 2003:a:327:1a00:be24:11ff:fe6d:a246 > 2800:860:72f7::1: [icmp6 sum ok] ICMP6, echo request, id 324, seq 4
13:18:57.485100 IP6 (hlim 63, next-header ICMPv6 (58) payload length: 96) 2003:0:1001:6418::1 > 2003:a:327:1a00:be24:11ff:fe6d:a246: [icmp6 sum ok] ICMP6, time exceeded in-transit for 2800:860:72f7::1
13:18:57.496414 IP6 (flowlabel 0x0e4a8, hlim 2, next-header ICMPv6 (58) payload length: 48) 2003:a:327:1a00:be24:11ff:fe6d:a246 > 2800:860:72f7::1: [icmp6 sum ok] ICMP6, echo request, id 324, seq 5
13:18:57.501574 IP6 (hlim 63, next-header ICMPv6 (58) payload length: 96) 2003:0:1001:6418::1 > 2003:a:327:1a00:be24:11ff:fe6d:a246: [icmp6 sum ok] ICMP6, time exceeded in-transit for 2800:860:72f7::1
13:18:57.511874 IP6 (flowlabel 0x0e4a8, hlim 2, next-header ICMPv6 (58) payload length: 48) 2003:a:327:1a00:be24:11ff:fe6d:a246 > 2800:860:72f7::1: [icmp6 sum ok] ICMP6, echo request, id 324, seq 6
13:18:57.517324 IP6 (hlim 63, next-header ICMPv6 (58) payload length: 96) 2003:0:1001:6418::1 > 2003:a:327:1a00:be24:11ff:fe6d:a246: [icmp6 sum ok] ICMP6, time exceeded in-transit for 2800:860:72f7::1
13:18:57.528711 IP6 (flowlabel 0x0e4a8, hlim 3, next-header ICMPv6 (58) payload length: 48) 2003:a:327:1a00:be24:11ff:fe6d:a246 > 2800:860:72f7::1: [icmp6 sum ok] ICMP6, echo request, id 324, seq 7
13:18:57.535347 IP6 (hlim 62, next-header ICMPv6 (58) payload length: 96) 2003:0:1001:6410::2 > 2003:a:327:1a00:be24:11ff:fe6d:a246: [icmp6 sum ok] ICMP6, time exceeded in-transit for 2800:860:72f7::1
13:18:57.545622 IP6 (flowlabel 0x0e4a8, hlim 3, next-header ICMPv6 (58) payload length: 48) 2003:a:327:1a00:be24:11ff:fe6d:a246 > 2800:860:72f7::1: [icmp6 sum ok] ICMP6, echo request, id 324, seq 8
13:18:57.551831 IP6 (hlim 62, next-header ICMPv6 (58) payload length: 96) 2003:0:1001:6410::2 > 2003:a:327:1a00:be24:11ff:fe6d:a246: [icmp6 sum ok] ICMP6, time exceeded in-transit for 2800:860:72f7::1
13:18:57.563261 IP6 (flowlabel 0x0e4a8, hlim 3, next-header ICMPv6 (58) payload length: 48) 2003:a:327:1a00:be24:11ff:fe6d:a246 > 2800:860:72f7::1: [icmp6 sum ok] ICMP6, echo request, id 324, seq 9
13:18:57.569327 IP6 (hlim 62, next-header ICMPv6 (58) payload length: 96) 2003:0:1001:6410::2 > 2003:a:327:1a00:be24:11ff:fe6d:a246: [icmp6 sum ok] ICMP6, time exceeded in-transit for 2800:860:72f7::1
13:18:57.579625 IP6 (flowlabel 0x0e4a8, hlim 4, next-header ICMPv6 (58) payload length: 48) 2003:a:327:1a00:be24:11ff:fe6d:a246 > 2800:860:72f7::1: [icmp6 sum ok] ICMP6, echo request, id 324, seq 10
13:18:58.019357 IP6 (flowlabel 0x5d3f9, hlim 64, next-header Fragment (44) payload length: 1448) pve2.home.arpa > OPNSense.home.arpa: frag (0xc7d88256:0|1440) ICMP6, echo request, id 44340, seq 2
13:18:58.019388 IP6 (flowlabel 0x5d3f9, hlim 64, next-header Fragment (44) payload length: 1448) pve2.home.arpa > OPNSense.home.arpa: frag (0xc7d88256:1440|1440)
13:18:58.019392 IP6 (flowlabel 0x5d3f9, hlim 64, next-header Fragment (44) payload length: 1448) pve2.home.arpa > OPNSense.home.arpa: frag (0xc7d88256:2880|1440)
13:18:58.019400 IP6 (flowlabel 0x5d3f9, hlim 64, next-header Fragment (44) payload length: 1448) pve2.home.arpa > OPNSense.home.arpa: frag (0xc7d88256:4320|1440)
13:18:58.019405 IP6 (flowlabel 0x5d3f9, hlim 64, next-header Fragment (44) payload length: 1448) pve2.home.arpa > OPNSense.home.arpa: frag (0xc7d88256:5760|1440)
13:18:58.019430 IP6 (flowlabel 0x5d3f9, hlim 64, next-header Fragment (44) payload length: 1448) pve2.home.arpa > OPNSense.home.arpa: frag (0xc7d88256:7200|1440)
13:18:58.019434 IP6 (flowlabel 0x5d3f9, hlim 64, next-header Fragment (44) payload length: 348) pve2.home.arpa > OPNSense.home.arpa: frag (0xc7d88256:8640|340)
13:18:58.019575 IP6 (hlim 64, next-header Fragment (44) payload length: 1448) OPNSense.home.arpa > pve2.home.arpa: frag (0xc7d88256:0|1440) ICMP6, echo reply, id 44340, seq 2
13:18:58.019586 IP6 (hlim 64, next-header Fragment (44) payload length: 1448) OPNSense.home.arpa > pve2.home.arpa: frag (0xc7d88256:1440|1440)
13:18:58.019623 IP6 (hlim 64, next-header Fragment (44) payload length: 1448) OPNSense.home.arpa > pve2.home.arpa: frag (0xc7d88256:2880|1440)
13:18:58.019651 IP6 (hlim 64, next-header Fragment (44) payload length: 1448) OPNSense.home.arpa > pve2.home.arpa: frag (0xc7d88256:4320|1440)
13:18:58.019658 IP6 (hlim 64, next-header Fragment (44) payload length: 1448) OPNSense.home.arpa > pve2.home.arpa: frag (0xc7d88256:5760|1440)
13:18:58.019664 IP6 (hlim 64, next-header Fragment (44) payload length: 1448) OPNSense.home.arpa > pve2.home.arpa: frag (0xc7d88256:7200|1440)
13:18:58.019669 IP6 (hlim 64, next-header Fragment (44) payload length: 348) OPNSense.home.arpa > pve2.home.arpa: frag (0xc7d88256:8640|340)
 
Ich vermute mal die MTU wird vom WAN-Interface geeerbt wenn am LAN "Track Interface" eingestellt ist.

In meiner Erfahrung funktioniert MTU > 1492 i. V. m. einer PPPoE-Verbindung am WAN-Port mehr schlecht als recht. Ich hab es noch nie hinbekommen, dass IPv6 Path MTU Discovery 100% funktioniert, sodass es immer wieder sproadische Verbindungsprobleme ins Internet via IPv6 gibt.
AVM nutzt wahrscheinlich genau deshalb auch 1492 statt 1500 im Router Advertisement.
 
  • Gefällt mir
Reaktionen: CoMo und Bob.Dig
Problem gefunden.

Aus dem Quelltext:


Code:
        if (!empty($dhcpv6ifconf['AdvLinkMTU']) && !empty($mtu)) {
            if ($dhcpv6ifconf['AdvLinkMTU'] < $mtu) {
                $mtu = $dhcpv6ifconf['AdvLinkMTU'];
            } else {
                log_msg("Skipping AdvLinkMTU configuration since it cannot be applied on {$dhcpv6if}", LOG_WARNING);
            }
        }

Warum ist 9000 größer als die Interface MTU? Weil die IPv6 Konfiguration das PPPoE-Interface getrackt und dadurch auch dessen MTU von 1492 übernommen hat.

Jetzt habe ich dem Interface manuell eine IP-Adresse aus dem ersten /64 gegeben und so funktioniert nun auch MTU 9000 :)
 
Will man das? Ich denke, nein. Ich sehe aber auch keine großen Vorteile von Jumboframes.
Ergänzung ()

TheCadillacMan schrieb:
AVM nutzt wahrscheinlich genau deshalb auch 1492 statt 1500 im Router Advertisement.
Möglicherweise nutzt AVM aber auch grundsätzlich 1492 im LAN an einem DSL-Anschluss.
 
Bob.Dig schrieb:
Ich sehe aber auch keine großen Vorteile von Jumboframes.

Ohne Jumbo Frames schafft mein Router im LAN ausgehend 3Gbit/s, mit Jumbo Frames 8Gbit/s.

Bob.Dig schrieb:
Will man das? Ich denke, nein.

Ich denke schon. Nur weil etwas in deinem Setup keinen Sinn macht, bedeutet das nicht, dass es überall anders auch so ist.
 
Zurück
Oben