[solved] BUG: pfsense 2.4.4 update_breaks http/https from LAN - workaround
-
In the previous setup where it was working prior to upgrading to 2.4.4;
- default gateway was WAN interface
- all incoming/outgoing blocked
- allow rules had the GW set for vpn pool (2x ExpressVPN)
- all 80/443/POP/etc goes via vpn
- voip goes over WAN because i had problems with calling dropping when via the VPN
Under 2.4.4 if the above settings are used, the following problems are exhibited
- access to 80/443 pages timeout and get stuck
- POP/SMTP work
- SIP registration works (with rules pointing to WAN)
to fix the 80/443 access, i have to change the settings to;
- default gateway is VPN pool (2x ExpressVPN)
- all incoming/outgoing blocked
- allow rules point to * and not specific gateway
- voip sip fails to register when pointing to WAN gateway
- voip sip registers when pointing to * - but then i am back to calls dropping over the VPN
In summary,
- prior to 2.4.4 the possible use cases for the default vs specified gateways all worked
- under 2.4.4 the possible use cases for the default vs specific gateways do not work
-
The big difference that would apply here between 2.4.3 and 2.4.4 was the additional default gateway handling code.
If it wasn't specifically defined in 2.4.3 it could be set ti the wrong gateway or no gateway in 2.4.4. That was fixed in 2.4.4p1.
Changing the default gateway to the VPN group will mean Unbound uses it for DNS. That should remove any DNS issues with traffic using different routes.
You will have to see what's actually failing when you send that traffic in a packet capture.
Steve
-
I have done some testing, and it seems, whenever i set a gateway other than the default gateway,
i get bad udp checksum on the pfsense to client path.When i set the default gateway to the WAN, the VOIP box works ok because it uses the default gateway,
however, browsing 80/443 uses the VPN Pool gateway and i get the below.192.168.20.x.53 > 192.168.20.x.35918: [bad udp cksum 0xa9ef -> 0x21fd!] 22042 q: AAAA? star.c10r.facebook.com. 1/0/1
When I set the default gateway to the VPN Pool, browsing works because it is using the vpn as default gateway.The voip box returns the same bad udp checksum errors as above, as it is using the WAN as a specified gateway.
In both cases, the client to the pfsense box, has udp checksum ok. It is only the pfsense to client where the persistent udp checksum errors occur. and it is only the DNS that has this problem.
recap. client is pointed to pfsense DNS (53), pfsense (853) point to DNSSEC servers. -
That checksum error could just be hardware offloading on the NIC. You can try disabling all the off loading in System > Advanced > Networking. You usually have to reboot for that to apply or at least re-save the interfaces.
Steve
-
That doesn't really make sense Steve. If it was the case, the problem would not be restricted to a specific port and/or direction. This problem is very clearly only on port 53 from the pfsense to the client direction. This to me seems more like an issue with DNS Resolver and/or queries coming in on 53 and forwarding on 853
-
If you have 'Hardware Checksum Offloading' enabled that's exactly how it can appear in a packet capture for transmitted packets.
https://www.wireshark.org/docs/wsug_html_chunked/ChAdvChecksums.html
I would not normally expect that to be for just the DNS traffic but you should disable it anyway to be sure it's not just a quirk of the capture.
Steve
-
@stephenw10 Thanks Steve, I stand corrected. That actually appears to have solved the problem.
-
The entire problem or just removed the errors from the packet capture?
Usually those checksum errors are just false positives, annoying but ultimately harmless.
Steve
-
removing the checksum, allowed browsing to return to normal.
the only problem i am having now is linux and debian services upgrading via the vpn. Seems a name resolution problem, but most likely unrealted (although it id work in the previous version as well) -
Mmm, interesting. I wonder if a driver update enabled that on your NICs on FreeBSD 11.2. Or indeed broke it.
Steve
-
fyi my system has 4*Intel WG82583 10/100M/1000M Lan
-
Hmm, curious. There almost certainly were updates to igb in FreeBSD 11.2. I run that in almost everything though.
Are those part of an SoC? It looks like they are not. There's a lot of fake Intel chips about unfortunately. Speculation at this point. I'd just leave it disabled and move on.
Steve
-
My box is a J1900 N10 with two LAN segments and one WAN.
Unfortunately, i still think there is an issue with the Gateway Pool Routing. As although disabling the h/w checksum enables browsing, i am having problems with POP/SMTP and the linuxmint being able to find package update servers. they all come up with 0kb/s speed. if i switch the gateway from the VPN to default it works. so back to the original problem - none of which existing in 2.4.3.What i can say, i am using 2x ExpressVPN access points as a failover, and if i set the specific gateways to the individual access interface, it works ok. it is only a problem when selecting a pool, per my original problem description. so for me 2.4.4 definitely breaks a setup that was previously working under 2.4.2 and 2.4.3
-
Steve, I still have issues with linuxmint and debian clients accessing the package updates via the vpn and google mail struggles. these all previously worked. One thing i notice under the Diag - Interfaces.
DNS servers all show below the WAN interface.
127.0.0.1
1.1.1.1
9.9.9.9
1.0.0.1
9.9.9.10
81.3.27.54
46.182.19.48
In actual fact, they are assigned via the general settings per
1.1.1.1, 9.9.9.9 = vpn1
1.0.0.1, 9.9.9.10 = vpn2
81.3.27.54, 46.182.19.48 = wan -
I'm pretty sure that's just a display artifact. Check the routing table. DNS servers set to a specific WAN should show a static route via that gateway.
Steve
-
Steve, i got to the bottom of the problem i am having. Sorted and confirmed DNS redirecting to the box, and then out over 853. Confirmed with android devices that ignore dhcp and try and connect to google.
I have a IP4/6 blocking rule for everything on all interfaces and only allow selected ports within the LAN and separately selected ports via the WAN
I have 2 ExpressVPNs as Tier 1 and 2. Routing correctly shows 1x Quad9 + 1xCloudfare DNS per connection.
When both connections are up browsing is working but things like android updates, linux updates, etc don't work. This is true, whether i use the pool gateway or the individual gateways.
When i force one of the VPNs down, then everything is working.
So, it seems i miss something..from a route blocking / etc? Do you have some idea? -
Hmm, if the VPNs are in a gateway group just one of them going down would not normally do anything.
The fact that changes anything implies perhaps you are allowing the VPN connection to add new routes to the system still, or a new default route even.
Or potentially you have rules that not applied when the gateway is down. Check in System > Advanced > Misc. Do you have 'Skip rules when gateway is down' enabled?
Steve
-
I had it checked, and now unchecked. Doesn't make any difference. As soon as i enable the 2nd VPN the android clients are unable to update (as practical example). In the gateway group VPN1 = Tier 1 and VPN2 = Tier 2 based on member down. So in theory, VPN2 shouldn't even be touched, but seems like some kind of routing problem. although strange browsing still works
-
Hmm. Probably need to dig into the ruleset and states here to see what rules are passing the traffic and where.
-
something much more fundamental Steve.
I turned all rules off. and only open DNS and HTTP/HTTPS from LAN to Gateway Pool.
With 2x OpenVPN Client active; i can browse the net, but android updates time out.
Shutdown one of the OpenVPN clients, and android updates takes off.