OPNsense Forum

International Forums => German - Deutsch => Topic started by: chrs on December 03, 2023, 03:14:30 PM

Title: IPv6 mit SIP/UPD: MTU Probleme mit Fragmenten
Post by: chrs on December 03, 2023, 03:14:30 PM

                WAN                  WAN
                 :                                 :
                 : FTTH                            : vtnet0 (MTU 1500)
                 :                                 :
             .---+---.                        .----------.
        WAN1 | GPON  |                        | OPNsense |
             '---+---'                        |     2    |
                 |                            '----+-----' 
        PPPoE1   | (MTU 1492)                      |
                 |      .----------.        wg1    | (MTU 1412)
                 +------| OPNsense | - - - - - - - +
                        |     1    |
                        '----+-----' 
                             |
                         LAN | (MTU 1500)
                             |
                       .-----+------.
                       | LAN-Switch |
                       '-----+------'
                             |
                     ...-----+-------------+-----...
                     (Clients/Servers)     |
                                     (Freeswitch Server)



Obige Konfigruration mit der OPNsense 2 auf einem VServer, um fixe IPv6 Adressen zu bekommen. Das Problem ist, daß eingehende Telefonate meistens nicht ankommen, sondern auf der OPNsense 2 hängenbleiben. Alles per IPv6, SIP über UDP.

Packet capture auf OPNsense 2 zeigt, daß der INVITE vom SIP Provider ankommt und zwar in der Regel als fragmentiertes UPD Paket z.B. mit 1500 + 100 Bytes Länge. Dann schickt OPNsense 2 ein ICMP packet to big mit MTU 1412 an den SIP Provider was ja auch korrekt ist für den Wireguard Tunnel nach OPNsense 1. Der SIP Provider schickt dann den INVITE nochmal in 1412 + 188 Bytes Fragmenten. Soweit ok, aber OPNsense 2 antwortet wieder ICMP packet to big mit MTU 1412. Das wiederholt sich ein paar Mal bis der SIP Provider aufgibt.
Was läuft da schief?

Wenn ich als Workaraound den SIP Provider auf TCP statt UDP umstelle, funktioniert alles.

Ich hab mir dann mal die scrub Regeln auf OPNsense 2 angeguckt:
# pfctl -s rules | grep scrub
scrub on wg1 all fragment reassemble
scrub on vtnet0 all fragment reassemble

und es fällt auf, daß da nicht scrub in steht, also auch ausgehend scrub mit fragment reassemble angewendet wird.
Was soll das bezwecken?

Ich hab dann mal folgendes probiert:
# pfctl -s rules | grep scrub
no scrub out on wg1 all
scrub on wg1 all fragment reassemble
scrub on vtnet0 all fragment reassemble


und das funktioniert: nach dem ersten ICMP packet to big werden die korrekt fragmentierten UDP Pakete weitergeleitet.

Wo liegt hier eigentlich der Fehler, oder übersehe ich was wesentliches?

Grüße, chris