Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    pfSense 22.05 breaks VLANS, restoring pfSense 22.01 fixes the issue

    Scheduled Pinned Locked Moved L2/Switching/VLANs
    247 Posts 7 Posters 85.6k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • N
      NRgia @stephenw10
      last edited by NRgia

      @stephenw10 said in pfSense 22.05 breaks VLANS, restoring pfSense 22.01 fixes the issue:

      That should work fine. You do have spare NICs so you could try other setups like putting VLANs 20 and 30 on ix1 and running a second link to the switch. But it should work as you have it now in 22.05.

      I think I can repurpose another mini pc that uses igb and em drivers(for a few hours). But I will need some time to save my work. Then just to understand what it will prove:

      1. If it works on another machine with other type of NICs then it's not the switch.
      2. If it doesn't it means it's the switch?
        I'm trying to double check with you on this, to make sure this will not be in vain, because what I see here https://github.com/pfsense/FreeBSD-src/commit/9c762cc125c0c2dae9fbf49cc526bb97c14b54a4 is that the fix is also for igb and em drivers.
      1 Reply Last reply Reply Quote 0
      • stephenw10S
        stephenw10 Netgate Administrator
        last edited by

        Yes if the switch is really tagging the traffic with VLAN0 it should fail using any NIC/driver in 22.05.

        Though as I understand it we also saw that when the switch was removed entirely and the AP was connected directly to pfSense. Which is hard to explain.

        N 1 Reply Last reply Reply Quote 0
        • N
          NRgia @stephenw10
          last edited by

          @stephenw10 said in pfSense 22.05 breaks VLANS, restoring pfSense 22.01 fixes the issue:

          Yes if the switch is really tagging the traffic with VLAN0 it should fail using any NIC/driver in 22.05.

          Though as I understand it we also saw that when the switch was removed entirely and the AP was connected directly to pfSense. Which is hard to explain.

          Yes, that's correct, that was one of the test you asked me to do. The AP was connected directly to pfSense. That's why I don't know what to say, if it's the switch or not. If I understood it corectly @johnpoz has almost the same switch as mine and also the same AP ( Flex HD) and he did not encounter any issues. I don't know if he had a board that used ix driver. Other then that he has 2 of my possible ofending devices.

          johnpozJ 1 Reply Last reply Reply Quote 0
          • johnpozJ
            johnpoz LAYER 8 Global Moderator @NRgia
            last edited by

            @nrgia yeah I had no issues with vlans, and a native vlan as well. Both with port qos and 802.1p.

            Only difference is yeah my switch is a bit different, baby sister to your switch. And mine is downstream of another switch that could be stripping the vlan 0??

            But if you said you plugged the AP directly into the interface on pfsense, that kind of rules out the switch.

            This is a odd one for sure.. tmrw I could plug my AP directly into a port on pfsense, its just on a ix interface its a igb interface.

            An intelligent man is sometimes forced to be drunk to spend time with his fools
            If you get confused: Listen to the Music Play
            Please don't Chat/PM me for help, unless mod related
            SG-4860 24.11 | Lab VMs 2.8, 24.11

            1 Reply Last reply Reply Quote 0
            • stephenw10S
              stephenw10 Netgate Administrator
              last edited by

              Mmm, because we also saws the vlan0 tags when we removed the access point and just used the switch.
              That implies it's either not the AP or the switch or that it's both devices doing it. Which seems unlikely!

              1 Reply Last reply Reply Quote 0
              • N
                NRgia
                last edited by NRgia

                @stephenw10 said in pfSense 22.05 breaks VLANS, restoring pfSense 22.01 fixes the issue:

                Mmm, because we also saws the vlan0 tags when we removed the access point and just used the switch.
                That implies it's either not the AP or the switch or that it's both devices doing it. Which seems unlikely!

                I got news. @stephenw10 and @johnpoz
                I installed pfSense 22.05 on the another mini PC that has 2 NICS that uses igb and em drivers.

                This is some info from ifconfig:

                [22.05-RELEASE][root@Entaro.Blueshift]/root: ifconfig
                igb0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
                        description: LAN
                        options=8100b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWFILTER>
                        ether 80:ee:73:bb:0e:55
                        inet6 fe80::82ee:73ff:febb:e55%igb0 prefixlen 64 scopeid 0x1
                        inet 172.18.0.12 netmask 0xfffe0000 broadcast 172.19.255.255
                        media: Ethernet autoselect (1000baseT <full-duplex>)
                        status: active
                        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
                em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
                        description: WAN
                        options=812098<VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,VLAN_HWFILTER>
                        ether 80:ee:73:bb:0e:54
                        inet6 fe80::82ee:73ff:febb:e54%em0 prefixlen 64 scopeid 0x2
                        inet ************* netmask 0xfffff800 broadcast ***************
                        media: Ethernet autoselect (1000baseT <full-duplex>)
                        status: active
                        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
                enc0: flags=0<> metric 0 mtu 1536
                        groups: enc
                        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
                lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
                        options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
                        inet6 ::1 prefixlen 128
                        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
                        inet 127.0.0.1 netmask 0xff000000
                        inet 10.10.10.21 netmask 0xffffffff
                        groups: lo
                        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
                pfsync0: flags=0<> metric 0 mtu 1500
                        groups: pfsync
                pflog0: flags=100<PROMISC> metric 0 mtu 33160
                        groups: pflog
                igb0.20: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
                        description: IoT
                        ether 80:ee:73:bb:0e:55
                        inet6 fe80::82ee:73ff:febb:e55%igb0.20 prefixlen 64 scopeid 0x9
                        inet 192.168.10.1 netmask 0xffffffc0 broadcast 192.168.10.63
                        groups: vlan
                        vlan: 20 vlanpcp: 0 parent interface: igb0
                        media: Ethernet autoselect (1000baseT <full-duplex>)
                        status: active
                        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
                igb0.30: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
                        description: GuestNetwork
                        ether 80:ee:73:bb:0e:55
                        inet6 fe80::82ee:73ff:febb:e55%igb0.30 prefixlen 64 scopeid 0xa
                        inet 192.168.20.1 netmask 0xffffffc0 broadcast 192.168.20.63
                        groups: vlan
                        vlan: 30 vlanpcp: 0 parent interface: igb0
                        media: Ethernet autoselect (1000baseT <full-duplex>)
                        status: active
                        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
                ovpns1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
                        options=80000<LINKSTATE>
                        inet6 fe80::82ee:73ff:febb:e55%ovpns1 prefixlen 64 scopeid 0xb
                        inet 10.0.8.1 --> 10.0.8.2 netmask 0xffffff00
                        groups: tun openvpn
                        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
                        Opened by PID 59956
                
                

                Now a tcpdump from pfSense igb0 - the new LAN interface with NATIVE, VLAN20 and VLAN30
                pfsense_lan_tcpdump_new_machine.txt

                Everything works, every WLAN, every VLAN, any host. No problem whatsoever.

                Conclusions please guys

                Tell me @stephenw10 if you need a tcpdump via the monitor port also.

                Thank you

                1 Reply Last reply Reply Quote 0
                • stephenw10S
                  stephenw10 Netgate Administrator
                  last edited by

                  Did you import the config or configure it from scatch?

                  N 2 Replies Last reply Reply Quote 0
                  • N
                    NRgia @stephenw10
                    last edited by NRgia

                    @stephenw10 said in pfSense 22.05 breaks VLANS, restoring pfSense 22.01 fixes the issue:

                    Did you import the config or configure it from scatch?

                    Imported the config during install phase, pfSense only asked to reconfigure the VLANs, the LAN and WAN interface, due to Interface mismatch.

                    Also I updated from 2.6.0->22.05. There is no update to 22.01 no more. I am afraid now to update the other box, due to the fact I cannot revert to 22.01.

                    Do you need any more tests from the new machine? I would like to revert it to it's initial use.

                    Do you think that if I reconfigure the interfaces on the previous machine will solve anything? This was the only thing I did on the new box, when asked by pfSense setup.

                    1 Reply Last reply Reply Quote 0
                    • N
                      NRgia @stephenw10
                      last edited by NRgia

                      @stephenw10 said in pfSense 22.05 breaks VLANS, restoring pfSense 22.01 fixes the issue:

                      Did you import the config or configure it from scatch?

                      Let me show you another thing.
                      I will explain first. Every time I restarted pfSense on the new box the previous VLANs remained also, even if I specified the new ones. This triggered interface mismatch on each restart.

                      On ifconfig I found this:

                      [22.05-RELEASE][root@Entaro.Blueshift]/root: ifconfig
                      igb0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
                              description: LAN
                              options=8100b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWFILTER>
                              ether 80:ee:73:bb:0e:55
                              inet6 fe80::82ee:73ff:febb:e55%igb0 prefixlen 64 scopeid 0x1
                              inet 172.18.0.12 netmask 0xfffe0000 broadcast 172.19.255.255
                              groups: DNS_Networks
                              media: Ethernet autoselect (1000baseT <full-duplex>)
                              status: active
                              nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
                      em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
                              description: WAN
                              options=812098<VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,VLAN_HWFILTER>
                              ether 80:ee:73:bb:0e:54
                              inet6 fe80::82ee:73ff:febb:e54%em0 prefixlen 64 scopeid 0x2
                              inet ************ netmask 0xfffff800 broadcast *****************
                              media: Ethernet autoselect (1000baseT <full-duplex>)
                              status: active
                              nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
                      enc0: flags=0<> metric 0 mtu 1536
                              groups: enc
                              nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
                      lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
                              options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
                              inet6 ::1 prefixlen 128
                              inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
                              inet 127.0.0.1 netmask 0xff000000
                              inet 10.10.10.21 netmask 0xffffffff
                              groups: lo
                              nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
                      pfsync0: flags=0<> metric 0 mtu 1500
                              groups: pfsync
                      pflog0: flags=100<PROMISC> metric 0 mtu 33160
                              groups: pflog
                      ix2.20: flags=8003<UP,BROADCAST,MULTICAST> metric 0 mtu 1500
                              ether 00:00:00:00:00:00
                              inet6 fe80::82ee:73ff:febb:e55%ix2.20 prefixlen 64 tentative scopeid 0x7
                              groups: vlan
                              vlan: 0 vlanpcp: 0 parent interface: <none>
                              nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
                      ix2.30: flags=8003<UP,BROADCAST,MULTICAST> metric 0 mtu 1500
                              ether 00:00:00:00:00:00
                              inet6 fe80::82ee:73ff:febb:e55%ix2.30 prefixlen 64 tentative scopeid 0x8
                              groups: vlan
                              vlan: 0 vlanpcp: 0 parent interface: <none>
                              nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
                      igb0.20: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
                              description: IoT
                              ether 80:ee:73:bb:0e:55
                              inet6 fe80::82ee:73ff:febb:e55%igb0.20 prefixlen 64 scopeid 0x9
                              inet 192.168.10.1 netmask 0xffffffc0 broadcast 192.168.10.63
                              groups: vlan DNS_Networks
                              vlan: 20 vlanpcp: 0 parent interface: igb0
                              media: Ethernet autoselect (1000baseT <full-duplex>)
                              status: active
                              nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
                      igb0.30: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
                              description: GuestNetwork
                              ether 80:ee:73:bb:0e:55
                              inet6 fe80::82ee:73ff:febb:e55%igb0.30 prefixlen 64 scopeid 0xa
                              inet 192.168.20.1 netmask 0xffffffc0 broadcast 192.168.20.63
                              groups: vlan DNS_Networks
                              vlan: 30 vlanpcp: 0 parent interface: igb0
                              media: Ethernet autoselect (1000baseT <full-duplex>)
                              status: active
                              nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
                      ovpns1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
                              options=80000<LINKSTATE>
                              inet6 fe80::82ee:73ff:febb:e55%ovpns1 prefixlen 64 scopeid 0xb
                              inet 10.0.8.1 --> 10.0.8.2 netmask 0xffffff00
                              groups: tun openvpn
                              nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
                              Opened by PID 59956
                      
                      

                      Look what vlan number is assigned to ix2.20, and ix2.30 (2 unexisting vlans).

                      After I deleted them, from the GUI->>Interfaces/VLANs there was no interface mismatch anymore.

                      1 Reply Last reply Reply Quote 0
                      • stephenw10S
                        stephenw10 Netgate Administrator
                        last edited by

                        Hmm, well either the igb driver is still stripping the tags or the ix driver is somehow adding them, but only for you... 🤔
                        We know that the igb/em driver doesn't pass vlan0 correctly because the ISPs that require it fail in 22.01 and 22.05. But it drops the packets rather than strips the tags.

                        Are you able to upload your config or status file from the Supermicro for us to review?

                        Steve

                        N 1 Reply Last reply Reply Quote 0
                        • N
                          NRgia @stephenw10
                          last edited by NRgia

                          @stephenw10 said in pfSense 22.05 breaks VLANS, restoring pfSense 22.01 fixes the issue:

                          Hmm, well either the igb driver is still stripping the tags or the ix driver is somehow adding them, but only for you... 🤔
                          We know that the igb/em driver doesn't pass vlan0 correctly because the ISPs that require it fail in 22.01 and 22.05. But it drops the packets rather than strips the tags.

                          Are you able to upload your config or status file from the Supermicro for us to review?

                          Steve

                          What is the "Status file" ?

                          I can provide the config to you guys, but only somewhere private. Can I exclude the passwords for OPENVPN and such by editing? Or it will be useless ? I will do whatever you ask, if you think we can solve this :)

                          1 Reply Last reply Reply Quote 0
                          • stephenw10S
                            stephenw10 Netgate Administrator
                            last edited by

                            The status_output file is a collection of redacted status and config data we use in support. You can get it by directly visiting the page: https://<your firewall IP>/status.php There is no link to it in the GUI.
                            The config included in that cannot be restored and tested as it's too heavily redacted so if you can include a separate config file, with whatever you need to remove removed, that will be very helpful.

                            You can upload files here: https://nc.netgate.com/nextcloud/s/QRNR6pPR2AmX6sN

                            Steve

                            N 2 Replies Last reply Reply Quote 0
                            • N
                              NRgia @stephenw10
                              last edited by NRgia

                              @stephenw10
                              Uploaded the files.
                              They're named:

                              1. "nrgia_super_micro_status_output.tar.gz"
                              2. "nrgia_supermicro_config-today-20220708193221.xml" - the config file

                              If something is missing due to editing, please let me know, and I can upload it again.

                              I hope all it's good in the config. I will wait for your conclusions.
                              Thank you

                              1 Reply Last reply Reply Quote 1
                              • N
                                NRgia @stephenw10
                                last edited by

                                @stephenw10
                                Sorry to bother you, did you had time to look over those files? Or, more time is needed? I can wait, no worries.
                                Thank you

                                1 Reply Last reply Reply Quote 0
                                • stephenw10S
                                  stephenw10 Netgate Administrator
                                  last edited by

                                  Sorry I haven't had time yet. I should be able to review that shortly....

                                  N 2 Replies Last reply Reply Quote 0
                                  • N
                                    NRgia @stephenw10
                                    last edited by

                                    @stephenw10
                                    take your time
                                    Thank you

                                    1 Reply Last reply Reply Quote 0
                                    • N
                                      NRgia @stephenw10
                                      last edited by NRgia

                                      @stephenw10
                                      Investigating the config file was indeed a good idea, and, in the end I found the culprit.
                                      It's not pfSense, it's the Driver

                                      In my config, I have done some NIC optimization a while ago, and for that I used shellcmd, to run it after boot.

                                      You can see it here:

                                      <shellcmd>ifconfig ix2 -txcsum -rxcsum -tso4 -tso6 -lro -txcsum6 -rxcsum6 -vlanhwtso -vlanhwfilter -vlanhwtag -vlanhwcsum</shellcmd>
                                      

                                      Now, to explain why I did the above.
                                      In 2.6.0 or earlier, I don't remember exactly,(at least for my driver) Suricata did not pass traffic for VLANs, enabled on the parent interface. In order to solve that I wrote the above.

                                      In 22.05 though, I had to add "vlanhwtag" again, otherwise even with Suricata uninstalled, no VLANs traffic will pass through.

                                      I played with others tags, the only one that I must leave enabled is "vlanhwtag".

                                      So the issues with the VLANs are solved, but now I cannot run Suricata in Inline mode with "vlanhwtag" enabled,(it will not pass traffic) or at least that is how it worked for me in previous versions.

                                      Many thanks to @johnpoz and @stephenw10 for investigating with me.

                                      1 Reply Last reply Reply Quote 0
                                      • stephenw10S
                                        stephenw10 Netgate Administrator
                                        last edited by

                                        Huh, that's fascinating. So as long as you do not disable hardware VLAN tagging on ix2 the VLANs work? And presumably a pcap no longer shows VLAN0 tagged traffic?

                                        That's almost the opposite of what I'd expect.... 🤔

                                        I was never able to replicate it here.

                                        N 1 Reply Last reply Reply Quote 0
                                        • N
                                          NRgia @stephenw10
                                          last edited by NRgia

                                          @stephenw10 said in pfSense 22.05 breaks VLANS, restoring pfSense 22.01 fixes the issue:

                                          Huh, that's fascinating. So as long as you do not disable hardware VLAN tagging on ix2 the VLANs work? And presumably a pcap no longer shows VLAN0 tagged traffic?

                                          That's almost the opposite of what I'd expect.... 🤔

                                          I was never able to replicate it here.

                                          The results are like this:

                                          1. Disable "vlanhwtag" - the VLAN traffic will cease almost immediately, and also the pcap shows VLAN0 again.
                                          2. Enable "vlanhwtag" - the VLAN traffic will work, and pcap will not show any VLAN0 anymore.

                                          In 22.01 this did not happen with or without "vlanhwtag" .

                                          The only inconvenient now is that I cannot run Suricata in Inline mode. I mean, I can, but the traffic for VLANS will not work. Only in legacy mode.

                                          Other than that no complaints.

                                          1 Reply Last reply Reply Quote 0
                                          • stephenw10S
                                            stephenw10 Netgate Administrator
                                            last edited by

                                            Wow. Boom!

                                            20:30:18.349238 00:51:82:11:22:02 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 68: vlan 0, p 0, ethertype 802.1Q, vlan 1001, p 0, ethertype ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.101.0.1 tell 10.101.0.12, length 46
                                            

                                            That's crazy! Time to dig deeper...

                                            johnpozJ 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.