<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Routing and Multi WAN]]></title><description><![CDATA[Discussions about routing and Multiple WAN uplinks (WAN Failover, WAN Load Balancing, etc.)]]></description><link>https://forum.netgate.com/category/21</link><generator>RSS for Node</generator><lastBuildDate>Fri, 15 May 2026 21:08:00 GMT</lastBuildDate><atom:link href="https://forum.netgate.com/category/21.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 06 May 2026 14:27:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Using a public IP on a DMZ interface while PPPoE is configured on the WAN]]></title><description><![CDATA[We found an undocumented solution by doing our own investigation.
It works by creating an interface that has the same IP address (.30) as the one assigned to you by PPPoE on your WAN.
Note: configure this before PPPoE becomes active; otherwise, you won’t be able to set the address.
Next, disable NAT for traffic originating from this interface and create a firewall rule for incoming traffic on the interface with the public IP you are using as the destination.
You can now use a public IP address on the host behind the DMZ you just created.
As the gateway, use the WAN address that is also configured on your DMZ port.
]]></description><link>https://forum.netgate.com/topic/200640/using-a-public-ip-on-a-dmz-interface-while-pppoe-is-configured-on-the-wan</link><guid isPermaLink="true">https://forum.netgate.com/topic/200640/using-a-public-ip-on-a-dmz-interface-while-pppoe-is-configured-on-the-wan</guid><dc:creator><![CDATA[itnl]]></dc:creator><pubDate>Wed, 06 May 2026 14:27:10 GMT</pubDate></item><item><title><![CDATA[BTNet Dual Wan with virtual gateway]]></title><description><![CDATA[@Gazza77 said in BTNet Dual Wan with virtual gateway:

70.x.x.195/28

You cannot use the same GW on both WAN's   You need to ask BT if they can split the /28 into two /29 or /30 subnets for you.
]]></description><link>https://forum.netgate.com/topic/200634/btnet-dual-wan-with-virtual-gateway</link><guid isPermaLink="true">https://forum.netgate.com/topic/200634/btnet-dual-wan-with-virtual-gateway</guid><dc:creator><![CDATA[pwood999]]></dc:creator><pubDate>Tue, 05 May 2026 16:16:39 GMT</pubDate></item><item><title><![CDATA[Dual WAN on 2100 using Wired and 5G connections]]></title><description><![CDATA[@chpalmer unfortunately I am going to be away for a week, so will have to pick this up next week, thanks for the help so far.
]]></description><link>https://forum.netgate.com/topic/200633/dual-wan-on-2100-using-wired-and-5g-connections</link><guid isPermaLink="true">https://forum.netgate.com/topic/200633/dual-wan-on-2100-using-wired-and-5g-connections</guid><dc:creator><![CDATA[MartynK]]></dc:creator><pubDate>Tue, 05 May 2026 14:29:54 GMT</pubDate></item><item><title><![CDATA[Periodic packet loss at multiples of 15 minutes]]></title><description><![CDATA[@nazar-pc said in Periodic packet loss at multiples of 15 minuts:

It doesn't sound like a great idea to disable monitoring completely. How would pfSense know to stop using the connection and switch to other ISPs when the connection is down?

And you're totally right.
'Something' is always better as 'nothing'.
I just wanted to highlight that monitoring - sending and receiving the pings to one specific device, an upstream gateway is just a (small) part the story.
Btw : pfSense, and you, will know that the upstream link stopped 'flowing'.
TCP traffic is a constant stream of 'data send' going upstream, and 'acknowledge' coming back. When these 'ack's' stop to come back, the upstream network stack will fill up, and when the local buffers are full, the entire system will stall. The end user starts to see "turning icons" on his browser screen. Other communicating software will just stall, and after a time out, show an error.
pfSense might pull the plug : take the WAN interface down for a moment, and put it back on, as this will regenerate a DHCP sequence, or restart a pppoe negotiation upstream. If the uplink was 'broken' like ruptured, pfSense won't be able to do anything.
]]></description><link>https://forum.netgate.com/topic/200598/periodic-packet-loss-at-multiples-of-15-minutes</link><guid isPermaLink="true">https://forum.netgate.com/topic/200598/periodic-packet-loss-at-multiples-of-15-minutes</guid><dc:creator><![CDATA[Gertjan]]></dc:creator><pubDate>Sun, 26 Apr 2026 20:30:35 GMT</pubDate></item><item><title><![CDATA[Is it better to have satellite internet like starlink as failover to existing fiber internet?]]></title><description><![CDATA[@netblues said in Is it better to have satellite internet like starlink as failover to existing fiber internet?:

But if there is an outage and everybody switches to 5g on their mobiles then it might be an issue

We ran into this issue for years here..  Verizon finally got fiber close enough to the tower that serves us to replace the microwave backhaul so the speeds are better but still sub 50mbps when something as simple as a wreck on the nearby highway backs up traffic in the area..  Speeds with the microwave backhaul sometimes went lower than 1mbps when some event happened.
Luckily our local tower has generator backup as well..  not all do.  We have no other Verizon towers that reach us.   We have an original from 2017 unlimited data account that we don't want to give up. Another carrier might work better but not for the price point in our case..  And no "home internet" available for this location..  Some things to investigate for anyone thinking about cell as a back up.
]]></description><link>https://forum.netgate.com/topic/200580/is-it-better-to-have-satellite-internet-like-starlink-as-failover-to-existing-fiber-internet</link><guid isPermaLink="true">https://forum.netgate.com/topic/200580/is-it-better-to-have-satellite-internet-like-starlink-as-failover-to-existing-fiber-internet</guid><dc:creator><![CDATA[chpalmer]]></dc:creator><pubDate>Fri, 24 Apr 2026 05:32:27 GMT</pubDate></item><item><title><![CDATA[Port Forwarding through VirtualBox &#x2F; OpenVPN]]></title><description><![CDATA[<p dir="auto">Hi there,</p>
<p dir="auto">Due to personal circumstances, I'm on a network that I don't manage myself... it blocks things like VPNs if they'd be actually configured in the built-in VPN settings at the OS/router level. OpenVPN Connect on Windows, however, works perfectly fine! (much like those DNS relay applications for when the normal use of custom DNS is blocked, firewall at this place thinks that my PC-shaped router is constantly talking to a bank or something and just lets it happen when using OpenVPN Connect)</p>
<p dir="auto">This is what the physical topology looks like currently:</p>
<p dir="auto">WISP router connected to their network through WiFi on its WAN side --Ethernet from LAN port--&gt; Old PC with Windows that connects to my VPN (OpenVPN Access Server on a DigitalOcean Droplet), with a VirtualBox VM sporting pfSense 2.8.1: WAN = VirtualBox NAT that I created, LAN = direct to USB-Ethernet adapter ----&gt; 5-port unmanaged switch for wired clients and an ASUS router set to AP mode ----&gt; clients</p>
<p dir="auto">I'm trying to figure out the route that goes from the VPN's subnet to the VirtualBox NAT, so I can get port forwarding working.</p>
<p dir="auto">Subnets:<br />
WISP router: 192.168.72.0/24<br />
VPN: 192.168.192.0/24<br />
VirtualBox NAT: 192.168.85.0/24<br />
pfSense VM's LAN: 192.168.44.0/24</p>
<p dir="auto">I just took a look at the "route print" of the bare machine, no mention of the VirtualBox NAT subnet at all... would it be wise to add a route from the VPN one to that VirtualBox NAT one?</p>
<p dir="auto">It does work when I run a Minecraft server for example, (I always set one up locally, just to test the ability of port forwarding through VPNs/multi-subnet setups) on the bare metal, but not when running it on one of the clients in the pfSense subnet.</p>
<p dir="auto">Thanks in advance!</p>
<p dir="auto">\\ Wesley, from the Netherlands</p>
]]></description><link>https://forum.netgate.com/topic/200550/port-forwarding-through-virtualbox-openvpn</link><guid isPermaLink="true">https://forum.netgate.com/topic/200550/port-forwarding-through-virtualbox-openvpn</guid><dc:creator><![CDATA[wesley9946]]></dc:creator><pubDate>Fri, 17 Apr 2026 18:54:41 GMT</pubDate></item><item><title><![CDATA[Strange Multi-WAN behaviour after upgrading to v26.03 from v25.11.1]]></title><description><![CDATA[@NetTechBrad fwiw I think I had the same situation after switching from 25.11 to 26.03RC ... ended up picking through my XML config with a fine tooth comb to uncover some bad firewall rules that referenced invalid interfaces or gateways. Once I surgically removed those everything was fine. Guess 26.03 is just stricter about the way it parses the rules.
]]></description><link>https://forum.netgate.com/topic/200513/strange-multi-wan-behaviour-after-upgrading-to-v26.03-from-v25.11.1</link><guid isPermaLink="true">https://forum.netgate.com/topic/200513/strange-multi-wan-behaviour-after-upgrading-to-v26.03-from-v25.11.1</guid><dc:creator><![CDATA[luckman212]]></dc:creator><pubDate>Sat, 11 Apr 2026 03:22:52 GMT</pubDate></item><item><title><![CDATA[WAN dhcp new ip daily old routes]]></title><description><![CDATA[<p dir="auto">Hi,</p>
<p dir="auto">I have a backup 4G WAN connection which gets a new ip every 24 hours.<br />
But I've noticed that in the FRR routing table all the old entries are still present.<br />
I see <strong>322 entries</strong> like this (1 for each 24 hours). Every time a different subnet:</p>
<pre><code>C&gt;* 178.225.15.0/24 [0/1] is directly connected, ix3, 00:03:20
</code></pre>
<p dir="auto">They seem to remain there until I reboot the device.</p>
<p dir="auto">Is there any way these can get cleanup automatically after the interface gets a new ip via DHCP ?</p>
]]></description><link>https://forum.netgate.com/topic/200507/wan-dhcp-new-ip-daily-old-routes</link><guid isPermaLink="true">https://forum.netgate.com/topic/200507/wan-dhcp-new-ip-daily-old-routes</guid><dc:creator><![CDATA[baakie]]></dc:creator><pubDate>Fri, 10 Apr 2026 10:25:53 GMT</pubDate></item><item><title><![CDATA[Starlink Routing problem, Bug 12922, not resolved after 4 years]]></title><description><![CDATA[<p dir="auto">There is a Starlink routing problem, noted in <a href="https://redmine.pfsense.org/issues/12922" target="_blank" rel="noopener noreferrer nofollow ugc">Bug #12922</a>, that is 4 years old and appears to not have been resolved in v26.03.</p>
<p dir="auto">We opened a support case last year, #34394088536, and configured rules with specific Gateway Groups as a solution, after a second tech pointed out this bug.</p>
<p dir="auto">This morning, our client's 6100 did not failover to Starlink.  I lost the logs when a tech rebooted the firewall so I don't have specifics from today.  The client is not at all excited about the situation, especially when I opened a support case last year and told the client it was resolved.</p>
<p dir="auto">It appears that this bug, or Starlink problem that all firewall makers need to work around, has not received any attention other than the initial acknowledgement.</p>
<p dir="auto">Starlink is selling a lot of kit and is a relatively inexpensive option for a rarely used 2ndary circuit vs a 2nd fiber circuit.   It would be  helpful if this very long known issue received some attention.</p>
<p dir="auto">It appears that other firewall vendors have dealt with the same problem related to DHCP option 121 on the WAN.  It is unclear why pfSense has not solved this, particularly when the original submission provides at least one option for resolution.</p>
<p dir="auto"><a href="https://www.reddit.com/r/Starlink/comments/msfy4k/dhcp_option_121_no_more_need_to_add_a_static/" target="_blank" rel="noopener noreferrer nofollow ugc">Starlink: DHCP option 121? No more need to add a static route to 192.168.100.1?</a><br />
<a href="https://community.ui.com/questions/Gateway-target-0-0-0-0-and-not-routing-packets/8576234c-5d61-4ef7-81e0-27ac5b07d7e1" target="_blank" rel="noopener noreferrer nofollow ugc">Unifi: Gateway target 0.0.0.0 and not routing packets</a><br />
<a href="https://documentation.meraki.com/SASE_and_SD-WAN/MX/Design_and_Configure/Deployment_Guides/Meraki_and_Starlink_Deployment_Guide" target="_blank" rel="noopener noreferrer nofollow ugc">Meraki and Starlink Deployment Guide (See Additional Considerations)</a></p>
<p dir="auto">I would much prefer a vetted and supported resolution from Netgate vs DIY code in production firewalls.</p>
<p dir="auto">Thank you.</p>
]]></description><link>https://forum.netgate.com/topic/200459/starlink-routing-problem-bug-12922-not-resolved-after-4-years</link><guid isPermaLink="true">https://forum.netgate.com/topic/200459/starlink-routing-problem-bug-12922-not-resolved-after-4-years</guid><dc:creator><![CDATA[pfnewb2016]]></dc:creator><pubDate>Thu, 02 Apr 2026 17:34:00 GMT</pubDate></item><item><title><![CDATA[Multi WAN OpenVPN no LAN Traffic]]></title><description><![CDATA[The same subnet on WAN and LAN is the root cause here, as the previous reply mentioned. To explain why this specifically breaks your VPN and LAN traffic:
pfSense uses the routing table to decide which interface to send packets through. When both WAN and LAN share 192.168.178.0/24, the router has two directly connected routes for the same network. It cannot distinguish "this packet should go out WAN to the Fritzbox" from "this packet should go to a LAN client" because both destinations are in the same subnet. The result is traffic either goes out the wrong interface or gets dropped.
The fix: change your LAN to a different subnet. Something like 10.0.0.0/24 or 172.16.1.0/24. Then set up pfSense like this:

WAN interface: 192.168.178.24/24 (DHCP from Fritzbox, gateway 192.168.178.1)
LAN interface: 10.0.0.1/24 (your new LAN subnet)
OpenVPN: assign the tunnel network to something like 10.8.0.0/24

For your second ISP (the one for general client traffic), add it as a second WAN interface (OPT1) and create a gateway group if you want failover or policy routing. Then use firewall rules on the LAN to direct specific traffic through each WAN gateway.
After changing the LAN subnet you will need to update DHCP scope and reconnect your clients. Any static IPs on servers or devices will also need updating to the new range.
]]></description><link>https://forum.netgate.com/topic/200424/multi-wan-openvpn-no-lan-traffic</link><guid isPermaLink="true">https://forum.netgate.com/topic/200424/multi-wan-openvpn-no-lan-traffic</guid><dc:creator><![CDATA[RianKellyIT]]></dc:creator><pubDate>Fri, 27 Mar 2026 16:27:59 GMT</pubDate></item><item><title><![CDATA[LAN stopped accessing internet]]></title><description><![CDATA[Turns out that the routing table somehow got corrupted.
netstat -r identified a previously disabled OpenVPN client as the first gateway. Removing the interface appears to have fixed this.
]]></description><link>https://forum.netgate.com/topic/200420/lan-stopped-accessing-internet</link><guid isPermaLink="true">https://forum.netgate.com/topic/200420/lan-stopped-accessing-internet</guid><dc:creator><![CDATA[awair]]></dc:creator><pubDate>Fri, 27 Mar 2026 12:14:00 GMT</pubDate></item><item><title><![CDATA[Routing problem to Subnet behind Wireguard]]></title><description><![CDATA[<p dir="auto">Hello,</p>
<p dir="auto">I need to get a route from my proxmox-server via pfsense to a nas in subnet behind fritzbox Wireguard VPN.</p>
<p dir="auto">Proxmox bridge 192.168,175,69/24 to pfsense 192.168.175.68/24<br />
IP route is added direction nas (192.168.1,50/24) via pfsense (192.168.175.68)<br />
This way between proxmox and pfsense is pingable in both directions.</p>
<p dir="auto">Now I need to go on with my packets from pfsense through a site-to-side with wireguard.<br />
<strong>The wireguard interface has no gateway. it is routet by static routes.</strong><br />
Tunnel is working in both directions and to subnet behind fritzbox.</p>
<p dir="auto">Means I dont get the routing inbound OPT1 (Proxmox&lt;-&gt;Pfsense) through the wireguard tunnel to nas with ip 192.168.1.50/24.<br />
The ping from interface OPT1 to final ip behind wiregard ist 100% loss.</p>
<p dir="auto">I really tried everything, but I am stuck after 4 hrs of testing...</p>
<p dir="auto">Thanks in advance for your help.</p>
]]></description><link>https://forum.netgate.com/topic/200416/routing-problem-to-subnet-behind-wireguard</link><guid isPermaLink="true">https://forum.netgate.com/topic/200416/routing-problem-to-subnet-behind-wireguard</guid><dc:creator><![CDATA[Comprex1975]]></dc:creator><pubDate>Thu, 26 Mar 2026 15:55:48 GMT</pubDate></item><item><title><![CDATA[PPPoE connection not connecting]]></title><description><![CDATA[@Keffa That's very odd.
I'm not seeing a lot of differences in those captures. Basically the only thing I still see is that the mpd5 version includes the rejected protocol section and the if_pppoe version doesn't. I'll see if I can teach if_pppoe to do that, but if that doesn't work I'm out of ideas.
(I suspect the ISP side system may log why it's terminating the connection, but it doesn't show that in the capture, of course. So right now all I can do is guess.)
]]></description><link>https://forum.netgate.com/topic/200311/pppoe-connection-not-connecting</link><guid isPermaLink="true">https://forum.netgate.com/topic/200311/pppoe-connection-not-connecting</guid><dc:creator><![CDATA[kprovost]]></dc:creator><pubDate>Sun, 08 Mar 2026 20:16:53 GMT</pubDate></item><item><title><![CDATA[Gateway Weighting]]></title><description><![CDATA[@wenko in the 'Advanced Gateway Settings' documentation there is an example of multiple WANs with different bandwidths. That should give you an idea what to tweak.
In general the Multi-WAN guide from Netgate is a good read: https://docs.netgate.com/pfsense/en/latest/multiwan/index.html
]]></description><link>https://forum.netgate.com/topic/200236/gateway-weighting</link><guid isPermaLink="true">https://forum.netgate.com/topic/200236/gateway-weighting</guid><dc:creator><![CDATA[patient0]]></dc:creator><pubDate>Wed, 25 Feb 2026 04:58:34 GMT</pubDate></item><item><title><![CDATA[Tunnel IPs not inserted into routing table when phase 2 is up]]></title><description><![CDATA[I found the solution, posting here for anyone else interested.
I needed to check "Gateway Duplicates" on the phase 1 configuration of the hub-side firewall.  The setup is two different remote endpoints NATed behind the same public IP address, not two remote phase 1 configurations on the same endpoint, but checking this box made it work.
In case anyone at Netgate is listening, I would make a few suggestions:

The description of this option in the GUI is: "Enable this to allow multiple phase 1 configurations with the same endpoint. When enabled, Netgate pfSense Plus does not manage routing to the remote gateway and traffic will follow the default route without regard for the chosen interface. Static routes can override this behavior."  When this option is enabled, PfSense does appear to manage routing, because it then does inject a route into the local table for the phase 2 interface.  Unchecking is what sends that traffic to the default route.  This is also misleading, as it appears to pertain to the same remote outside tunnel IP address, rather than the same endpoint.  Having different resolvable FQDNs from different physical endpoints is not enough, since the system seems to be going by resolved IP address.  I would request changing the wording to correct and clarify this.
It's a bit confusing to have this option, which clearly impacts routing behavior at the end of the phase 2 establishment, in the phase 1 configuration.  Phase 1 comes up just fine to both endpoints without this checked, it is Phase 2 that misbehaves by failing to inject a route into the local routing table for the Phase 2 remote IP.
If there's a fully authenticated tunnel up and running using a distinct Phase 2 VTI IP, why would the route to the remote not be injected into the local routing table?  I don't even know what is accomplished by the default (unchecked) behavior.  I can see why you would not want multiple phase 1 or phase 2 tunnels from the same endpoint to come up at the same time, but this doesn't appear to actually prevent that.  If this option is doing something else to prevent phase 1 establishment when the remote endpoints are actually the same, then please consider un-bundling this behavior from the phase 2 route injection behavior.
If a VTI tunnel comes up in phase 2 that doesn't get a route injected into the local routing table, there should at least be a notice, preferably a warning in the log that a condition that was clearly not intended has taken place.  There did not appear to be any evidence in the logs when this happened.

I come to this from a perspective of trying to help improve the product.  PfSense is overall an incredibly versatile and useful set of tools.  I pay for the "plus" to support the project, not because it comes with any real support (which it doesn't.)  I'd like to be able to use it more on the professional side, too, but there are still a few issues like this that make it a harder sell in a production environment.
(Edited the solution for clarity.)
]]></description><link>https://forum.netgate.com/topic/200228/tunnel-ips-not-inserted-into-routing-table-when-phase-2-is-up</link><guid isPermaLink="true">https://forum.netgate.com/topic/200228/tunnel-ips-not-inserted-into-routing-table-when-phase-2-is-up</guid><dc:creator><![CDATA[jbfoley]]></dc:creator><pubDate>Tue, 24 Feb 2026 17:17:36 GMT</pubDate></item><item><title><![CDATA[Netgate 2100 using as router and place the Odido router on a separate network]]></title><description><![CDATA[@ability
Off the top of my head, do you have the patch cord plugged into the LAN or WAN on the Odido router, it needs to be plugged into the WAN.
Another possibility is this router will not accept a VLAN on the WAN.
You  would have to plug it into a different port without a VLAN on the 2100 to see if it gets addressing.
Have you tried the Odido forums?
]]></description><link>https://forum.netgate.com/topic/200226/netgate-2100-using-as-router-and-place-the-odido-router-on-a-separate-network</link><guid isPermaLink="true">https://forum.netgate.com/topic/200226/netgate-2100-using-as-router-and-place-the-odido-router-on-a-separate-network</guid><dc:creator><![CDATA[Uglybrian]]></dc:creator><pubDate>Tue, 24 Feb 2026 13:43:07 GMT</pubDate></item><item><title><![CDATA[Question on port forward]]></title><description><![CDATA[@kdmiller61 said in Question on port forward:

that NAT rule does not work

Show the rule it created on the WAN interface.
[image: 1771942202408-979af70a-d705-4f5e-916d-c10e827223bd-image.png]
The order of these rules is important.
If you have a block rule above your firewall (part of a NAT rule) then you've found the issue.
Also :  look at the green marked stuff :
[image: 1771942269057-92427b8d-37a7-4410-aea8-8615f62b60c1-image.png]
if a rule matches, the counters start to increment.
If they stay at zero : this means the rule did not mach any traffic.
This most probably means that the traffic didn't reach the pfSense WAN interface =&gt; you can solve the issue upstream (ISP router, other equipment).
Your ISP (so you) uses CGNAT : stop looking, that's a game over.
]]></description><link>https://forum.netgate.com/topic/200219/question-on-port-forward</link><guid isPermaLink="true">https://forum.netgate.com/topic/200219/question-on-port-forward</guid><dc:creator><![CDATA[Gertjan]]></dc:creator><pubDate>Sun, 22 Feb 2026 23:08:56 GMT</pubDate></item><item><title><![CDATA[Suspected bug: DHCPv6 Fails on igc Driver Interfaces After Upgrade to pfSense 25.11.1 &#x2F; FreeBSD 16 — IPv6 Multicast UDP sendto Returns EPERM]]></title><description><![CDATA[<p dir="auto"><em><span style="color:#ff4013">Looking for confirmation before posting the below to Redmine.</span></em></p>
<h2><a class="anchor-offset" name="summary"></a>Summary</h2>
<p dir="auto">Following an upgrade from pfSense 25.07.1 (FreeBSD 15) to pfSense 25.11.1 (FreeBSD 16-CURRENT), DHCPv6 client (<code>dhcp6c</code>) fails to obtain IPv6 addresses on WAN interfaces using the Intel I225-V (<code>igc</code>) NIC driver. Interfaces using the Intel X553 (<code>ix</code>) driver on the same system obtain DHCPv6 assignments without issue using the identical dhcp6c binary, configuration file, and socket operations. IPv6 via DHCPv6 was fully functional on all interfaces under pfSense 25.07.1/FreeBSD 15.</p>
<p dir="auto">System call tracing confirms that IPv6 multicast UDP <code>sendto</code> to <code>ff02::1:2</code> (All_DHCP_Relay_Agents_and_Servers, port 547) returns <code>EPERM (Permission denied)</code> exclusively on <code>igc</code> driver interfaces. Identical <code>sendto</code> calls on <code>ix</code> driver interfaces on the same system succeed. This is a regression in the <code>igc</code> driver's IPv6 multicast send path between FreeBSD 15 and FreeBSD 16.</p>
<hr />
<h2><a class="anchor-offset" name="environment"></a>Environment</h2>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Field</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>pfSense version</td>
<td>25.11.1-RELEASE</td>
</tr>
<tr>
<td>FreeBSD version</td>
<td>16.0-CURRENT</td>
</tr>
<tr>
<td>Previous working version</td>
<td>pfSense 25.07.1 / FreeBSD 15</td>
</tr>
<tr>
<td>dhcp6c package</td>
<td>dhcp6-20080615.2_4</td>
</tr>
<tr>
<td>Affected NIC driver</td>
<td>igc (Intel I225-V, PCI device 0x8086:0x15f3)</td>
</tr>
<tr>
<td>Working NIC driver</td>
<td>ix (Intel X553, PCI device 0x8086:0x15c4 / 0x15e5)</td>
</tr>
<tr>
<td>Hardware</td>
<td>Official Netgate 6100 appliance</td>
</tr>
<tr>
<td>Issue onset</td>
<td>Immediately following upgrade to 25.11.1</td>
</tr>
<tr>
<td>ISP on affected interface</td>
<td>Comcast/DOCSIS cable (igc3); 3 physical WAN connections, 2 of the 3 (ix2 and ix3 obtain an an assignment from their ISPs via dhcp6 without issue</td>
</tr>
</tbody>
</table>
<hr />
<h2><a class="anchor-offset" name="hardware-inventory"></a>Hardware Inventory</h2>
<p dir="auto"><strong>Failing interfaces — igc driver (Intel I225-V):</strong></p>
<pre><code>igc0@pci0:4:0:0  vendor=0x8086 device=0x15f3  Intel Ethernet Controller I225-V
igc1@pci0:5:0:0  vendor=0x8086 device=0x15f3  Intel Ethernet Controller I225-V
igc2@pci0:6:0:0  vendor=0x8086 device=0x15f3  Intel Ethernet Controller I225-V
igc3@pci0:7:0:0  vendor=0x8086 device=0x15f3  Intel Ethernet Controller I225-V
</code></pre>
<p dir="auto"><strong>Working interfaces — ix driver (Intel X553):</strong></p>
<pre><code>ix0@pci0:3:0:0   vendor=0x8086 device=0x15c4  Intel Ethernet Connection X553 10GbE SFP+
ix1@pci0:3:0:1   vendor=0x8086 device=0x15c4  Intel Ethernet Connection X553 10GbE SFP+
ix2@pci0:2:0:0   vendor=0x8086 device=0x15e5  Intel Ethernet Connection X553 1GbE
ix3@pci0:2:0:1   vendor=0x8086 device=0x15e5  Intel Ethernet Connection X553 1GbE
</code></pre>
<hr />
<h2><a class="anchor-offset" name="symptoms"></a>Symptoms</h2>
<ul>
<li>COMCAST_DHCP6 gateway shows <strong>Pending</strong> indefinitely in Status → Gateways</li>
<li><code>ifconfig igc3 inet6</code> shows only link-local <code>fe80::</code> address — no global unicast address assigned</li>
<li>DHCPv6 was fully functional on the same hardware and ISP under pfSense 25.07.1/FreeBSD 15</li>
<li>Other WAN interfaces on <code>ix</code> driver obtain DHCPv6 assignments normally</li>
</ul>
<hr />
<h2><a class="anchor-offset" name="troubleshooting-steps-and-evidence"></a>Troubleshooting Steps and Evidence</h2>
<h3><a class="anchor-offset" name="step-1-confirmed-link-local-address-and-isp-dhcpv6-support"></a>Step 1: Confirmed Link-Local Address and ISP DHCPv6 Support</h3>
<p dir="auto">Link-local address confirmed present on the affected interface — DHCPv6 prerequisite satisfied:</p>
<pre><code>$ ifconfig igc3 inet6
igc3:
    inet6 fe80::xxxx:xxxx:xxxx:xxxx%igc3 prefixlen 64 scopeid 0x4
    nd6 options=23&lt;PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL&gt;
</code></pre>
<p dir="auto">Router Solicitation confirmed ISP is sending RAs with M and O flags set, requiring stateful DHCPv6. SLAAC is not available (all RA prefix info options carry <code>Flags [none]</code>):</p>
<pre><code>$ rtsol -D igc3
rtsol: received RA from fe80::xxxx:xxxx:xxxx:xxxx on igc3
rtsol: ManagedConfigFlag on igc3 is turned on
rtsol: OtherConfigFlag on igc3 is turned on
</code></pre>
<p dir="auto">RA prefix advertisements from ISP confirmed flowing correctly:</p>
<pre><code>$ tcpdump -r /tmp/dhcp6_comcast.pcap -n -v
xx:xx:xx IP6 fe80::xxxx:xxxx:xxxx:xxxx &gt; ff02::1: ICMP6 router advertisement
    prefix info: 2001:xxx:xxxx::/64, Flags [none], valid 604800s
    prefix info: 2001:xxx:xxxx::/64, Flags [none], valid 604800s
    prefix info: 2001:xxx:xxxx::/64, Flags [none], valid 604800s
    prefix info: 2001:xxx:xxxx::/64, Flags [none], valid 604800s
</code></pre>
<h3><a class="anchor-offset" name="step-2-confirmed-firewall-rules-are-correct"></a>Step 2: Confirmed Firewall Rules Are Correct</h3>
<p dir="auto">All required DHCPv6 pass rules are present and correctly configured for the affected interface:</p>
<pre><code>$ pfctl -s rules | grep igc3 | grep -i "dhcp\|546\|547"
pass in quick on igc3 inet6 proto udp from fe80::/10 port = dhcpv6-client \
    to fe80::/10 port = dhcpv6-client keep state (if-bound) \
    label "descr=allow dhcpv6 client in COMCAST"
pass in quick on igc3 proto udp from any port = dhcpv6-server \
    to any port = dhcpv6-client keep state (if-bound) \
    label "descr=allow dhcpv6 client in COMCAST"
pass out quick on igc3 proto udp from any port = dhcpv6-client \
    to any port = dhcpv6-server keep state (if-bound) \
    label "descr=allow dhcpv6 client out COMCAST"
</code></pre>
<h3><a class="anchor-offset" name="step-3-confirmed-dhcp6c-builds-solicit-correctly-but-fails-to-transmit"></a>Step 3: Confirmed dhcp6c Builds Solicit Correctly But Fails to Transmit</h3>
<p dir="auto">Running dhcp6c in foreground debug mode shows the Solicit packet is correctly constructed but every transmission fails:</p>
<pre><code>$ /usr/local/sbin/dhcp6c -d -D -f -c /var/etc/dhcp6c.conf igc3

xx:xx:xx: reset a timer on igc3, state=INIT, timeo=0, retrans=891
xx:xx:xx: Sending Solicit
xx:xx:xx: a new XID (xxxxxx) is generated
xx:xx:xx: set client ID (len 14)
xx:xx:xx: set identity association
xx:xx:xx: set elapsed time (len 2)
xx:xx:xx: set option request (len 4)
xx:xx:xx: set IA_PD prefix
xx:xx:xx: set IA_PD
xx:xx:xx: transmit failed: Permission denied
xx:xx:xx: reset a timer on igc3, state=SOLICIT, timeo=0, retrans=1091
xx:xx:xx: Sending Solicit
xx:xx:xx: transmit failed: Permission denied
</code></pre>
<p dir="auto">This repeats indefinitely with exponential backoff. No DHCPv6 Advertise is ever received.</p>
<h3><a class="anchor-offset" name="step-4-confirmed-packet-never-reaches-pf-block-is-at-kernel-level"></a>Step 4: Confirmed Packet Never Reaches pf — Block Is at Kernel Level</h3>
<p dir="auto">An explicit logging pass rule was added to the pf ruleset permitting DHCPv6 multicast output on the affected interface:</p>
<pre><code>$ printf 'pass out log quick on igc3 inet6 proto udp from any to ff02::1:2 port 547 no state\n' \
    &gt; /tmp/dhcp6_fix.anchor
$ pfctl -a "dhcp6_igc3" -f /tmp/dhcp6_fix.anchor
$ pfctl -a "dhcp6_igc3" -s rules
pass out log quick on igc3 inet6 proto udp from any to ff02::1:2 port = dhcpv6-server no state
</code></pre>
<p dir="auto">Monitoring pflog while dhcp6c was actively attempting to send Solicits showed <strong>zero DHCPv6 packets from igc3 in the pf log</strong>. Traffic from other interfaces appeared normally. The packet never reaches pf for evaluation — the kernel rejects it before the firewall layer.</p>
<h3><a class="anchor-offset" name="step-5-smoking-gun-system-call-trace-comparing-igc-vs-ix-interfaces"></a>Step 5: Smoking Gun — System Call Trace Comparing igc vs ix Interfaces</h3>
<p dir="auto">Running all three WAN interfaces simultaneously under truss reveals the definitive cause:</p>
<pre><code>$ truss /usr/local/sbin/dhcp6c -d -f -c /var/etc/dhcp6c.conf igc3 ix2 ix3 \
    |&amp; grep -E "setsockopt|sendto\(3"

setsockopt(3,SOL_SOCKET,SO_REUSEPORT,...)        = 0
setsockopt(3,IPPROTO_IPV6,IPV6_RECVPKTINFO,...)  = 0
setsockopt(3,IPPROTO_IPV6,IPV6_MULTICAST_LOOP,...) = 0
setsockopt(3,IPPROTO_IPV6,IPV6_V6ONLY,...)       = 0

sendto(3,...,{ AF_INET6 [ff02::1:2]:547 }) ERR#13 'Permission denied'  ← igc3 FAILS
sendto(3,...,{ AF_INET6 [ff02::1:2]:547 }) = 68                        ← ix2  SUCCEEDS
sendto(3,...,{ AF_INET6 [ff02::1:2]:547 }) = 68                        ← ix2  SUCCEEDS
sendto(3,...,{ AF_INET6 [ff02::1:2]:547 }) = 126                       ← ix3  SUCCEEDS
sendto(3,...,{ AF_INET6 [ff02::1:2]:547 }) ERR#13 'Permission denied'  ← igc3 FAILS
sendto(3,...,{ AF_INET6 [ff02::1:2]:547 }) = 95                        ← ix3  SUCCEEDS
sendto(3,...,{ AF_INET6 [ff02::1:2]:547 }) ERR#13 'Permission denied'  ← igc3 FAILS
sendto(3,...,{ AF_INET6 [ff02::1:2]:547 }) = 52                        ← ix2  SUCCEEDS
sendto(3,...,{ AF_INET6 [ff02::1:2]:547 }) ERR#13 'Permission denied'  ← igc3 FAILS
sendto(3,...,{ AF_INET6 [ff02::1:2]:547 }) = 52                        ← ix2  SUCCEEDS
</code></pre>
<p dir="auto"><strong>Key observations:</strong></p>
<ul>
<li>All interfaces share a single socket (FD 3) with identical socket options</li>
<li>Identical <code>sendto</code> destination <code>ff02::1:2</code> port 547</li>
<li><code>igc3</code> (Intel I225-V, <code>igc</code> driver) returns <code>ERR#13 EPERM</code> on every attempt</li>
<li><code>ix2</code> and <code>ix3</code> (Intel X553, <code>ix</code> driver) succeed on every attempt</li>
<li>The failure is 100% correlated with the <code>igc</code> driver — not dhcp6c configuration, not firewall rules, not ISP behavior</li>
</ul>
<hr />
<h2><a class="anchor-offset" name="driver-capability-comparison"></a>Driver Capability Comparison</h2>
<pre><code>$ ifconfig -v igc3 | grep options
options=4e020bb&lt;RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,
        VLAN_HWCSUM,WOL_MAGIC,RXCSUM_IPV6,TXCSUM_IPV6,HWSTATS,MEXTPG&gt;

$ ifconfig -v ix3 | grep options
options=4e138bb&lt;RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,
        VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC,VLAN_HWFILTER,
        RXCSUM_IPV6,TXCSUM_IPV6,HWSTATS,MEXTPG&gt;
</code></pre>
<p dir="auto">Note <code>igc3</code> is missing <code>WOL_MCAST</code> and <code>VLAN_HWFILTER</code> compared to <code>ix3</code>, which may be symptomatic of incomplete multicast support in the <code>igc</code> driver under FreeBSD 16, though the relationship to the <code>sendto</code> failure requires further investigation by the driver maintainers.</p>
<hr />
<h2><a class="anchor-offset" name="root-cause-assessment"></a>Root Cause Assessment</h2>
<p dir="auto">IPv6 multicast UDP <code>sendto</code> to <code>ff02::1:2:547</code> returns <code>EPERM</code> on interfaces driven by the <code>igc</code> driver (Intel I225-V, PCI 0x8086:0x15f3) under FreeBSD 16-CURRENT. Identical operations succeed on <code>ix</code> driver interfaces (Intel X553, PCI 0x8086:0x15c4 / 0x15e5) on the same system. This is a regression introduced between FreeBSD 15 (pfSense 25.07.1) and FreeBSD 16 (pfSense 25.11.1), likely in the <code>igc</code> driver's IPv6 multicast transmit path or in a FreeBSD 16 kernel change affecting how <code>igc</code> handles multicast socket sends.</p>
<hr />
<h2><a class="anchor-offset" name="impact-summary"></a>Impact Summary</h2>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Interface</th>
<th>Driver</th>
<th>PCI Device</th>
<th>DHCPv6 Result</th>
<th>sendto Result</th>
</tr>
</thead>
<tbody>
<tr>
<td>igc3</td>
<td>igc</td>
<td>0x8086:0x15f3</td>
<td><strong>Fails</strong></td>
<td>ERR#13 EPERM</td>
</tr>
<tr>
<td>ix2</td>
<td>ix</td>
<td>0x8086:0x15e5</td>
<td>Succeeds</td>
<td>68 bytes</td>
</tr>
<tr>
<td>ix3</td>
<td>ix</td>
<td>0x8086:0x15e5</td>
<td>Succeeds</td>
<td>95 bytes</td>
</tr>
</tbody>
</table>
<hr />
<h2><a class="anchor-offset" name="expected-behavior"></a>Expected Behavior</h2>
<p dir="auto">DHCPv6 Solicit packets should be successfully transmitted on <code>igc</code> driver interfaces, as they were under pfSense 25.07.1/FreeBSD 15, allowing IPv6 address and prefix delegation assignment from the ISP.</p>
<h2><a class="anchor-offset" name="actual-behavior"></a>Actual Behavior</h2>
<p dir="auto">Every DHCPv6 Solicit transmission on <code>igc</code> driver interfaces returns <code>EPERM</code> at the kernel level. No IPv6 global unicast address is obtained. The gateway remains in <strong>Pending</strong> state indefinitely.</p>
<h2><a class="anchor-offset" name="workaround"></a>Workaround</h2>
<p dir="auto">None currently identified without kernel or driver-level intervention.</p>
<h2><a class="anchor-offset" name="suggested-investigation-path"></a>Suggested Investigation Path</h2>
<ol>
<li>Review changes to the <code>igc</code> driver's multicast transmit path between FreeBSD 15 and FreeBSD 16</li>
<li>Review any FreeBSD 16 kernel changes affecting <code>IPPROTO_IPV6</code> socket multicast send permissions on a per-driver basis</li>
<li>Compare <code>igc</code> and <code>ix</code> driver handling of outbound IPv6 multicast UDP under FreeBSD 16</li>
</ol>
]]></description><link>https://forum.netgate.com/topic/200214/suspected-bug-dhcpv6-fails-on-igc-driver-interfaces-after-upgrade-to-pfsense-25.11.1-freebsd-16-ipv6-multicast-udp-sendto-returns-eperm</link><guid isPermaLink="true">https://forum.netgate.com/topic/200214/suspected-bug-dhcpv6-fails-on-igc-driver-interfaces-after-upgrade-to-pfsense-25.11.1-freebsd-16-ipv6-multicast-udp-sendto-returns-eperm</guid><dc:creator><![CDATA[akghetto]]></dc:creator><pubDate>Sun, 22 Feb 2026 05:45:15 GMT</pubDate></item><item><title><![CDATA[VLAN for Security Cameras and Guest Network on OPT1]]></title><description><![CDATA[@jg2003
I have always wanted to try/ do something with open wrt.
https://forum.openwrt.org/t/how-to-configure-vlans/131362
]]></description><link>https://forum.netgate.com/topic/200205/vlan-for-security-cameras-and-guest-network-on-opt1</link><guid isPermaLink="true">https://forum.netgate.com/topic/200205/vlan-for-security-cameras-and-guest-network-on-opt1</guid><dc:creator><![CDATA[Uglybrian]]></dc:creator><pubDate>Fri, 20 Feb 2026 15:00:12 GMT</pubDate></item><item><title><![CDATA[Second WAN Config on Netgate 2100]]></title><description><![CDATA[I am having the same issue currently. Not Starlink as the ISP but it should get a DHCP address but it isn't. VLAN is set untagged and I set switch port 1 as the source for port state changes on the interface. I also manually added a gateway bound to that interface but this seems to have no effect.
EDIT: Maybe OP did the same thing I did. Read Instruction 15-26 very carefully. I have followed it exactly and now I am getting an IP as well as a working 2nd WAN connection. My mistake was not setting the untagged on the "WAN2" port, I only set the pvid.
]]></description><link>https://forum.netgate.com/topic/200184/second-wan-config-on-netgate-2100</link><guid isPermaLink="true">https://forum.netgate.com/topic/200184/second-wan-config-on-netgate-2100</guid><dc:creator><![CDATA[celeron]]></dc:creator><pubDate>Wed, 18 Feb 2026 08:58:01 GMT</pubDate></item><item><title><![CDATA[Routing issue with IPSEC VPN]]></title><description><![CDATA[@keyser and @mcury
I really appreciate you taking the time to discuss these topics in depth.
It helps to understand all the pitfalls that I might encounter if our company grows in the future or if I might get involved in more complex customer projects.
But for now we are talking 3 sites plus 1 (datacenter)
That is 5 PFSense instances in total (2 operate in HA)
And there are like probably not even 10 subnets we are talking about
maybe 15 if I count the subnets that are going to be dual-stack soon as two
I think the longest distance I could go in our network might be 2 hops
On my old jobs we used Sonicwall, Sophos and Securepoint, sometimes Forti stuff.
Sure I never did a setup for an environment larger than like 200-300 employees/seats.
But I don't recall ever having to put in a bogus route to be able to monitor the firewall using SNMP throug an IPSEC VPN 
But I guess that's the way things go these days.
Modern software gets more and more overcomplicated by the second, it is really a nightmare.
At least I can work around it now.
And again thank you :)
It was educating as well as refreshing following your argument :)
]]></description><link>https://forum.netgate.com/topic/200168/routing-issue-with-ipsec-vpn</link><guid isPermaLink="true">https://forum.netgate.com/topic/200168/routing-issue-with-ipsec-vpn</guid><dc:creator><![CDATA[beconijoe]]></dc:creator><pubDate>Mon, 16 Feb 2026 12:18:22 GMT</pubDate></item><item><title><![CDATA[Outbound NAT for Wireguard Interface]]></title><description><![CDATA[
It should however use its LAN ip address to query DNS/Radius/whatever at site A.

Depending on what you mean by 'it,' I don't agree.
If the traffic is from a LAN host, then a state should be created on the LAN interface, and then a second state created on the WireGuard interface—to preserve stateful filtering.
Are you talking about LAN host pings/queries? Or pfSense localhost pings/queries? Are those ping tests you ran from a LAN host? Or from a pfSense shell?
Do you have any NAT rules affecting (or, alternatively, failing to take into account) 127.0.0.1?
Are you accounting for the loopback/lo0 interface?
]]></description><link>https://forum.netgate.com/topic/200148/outbound-nat-for-wireguard-interface</link><guid isPermaLink="true">https://forum.netgate.com/topic/200148/outbound-nat-for-wireguard-interface</guid><dc:creator><![CDATA[tinfoilmatt]]></dc:creator><pubDate>Thu, 12 Feb 2026 10:56:34 GMT</pubDate></item><item><title><![CDATA[hughesnet with pfsense]]></title><description><![CDATA[@jmstanley   I have not but I still have a JPS NXU-2 audio unit that was on a Hughesnet static IP and worked fine.
I have to guess any device would work the same.
]]></description><link>https://forum.netgate.com/topic/200145/hughesnet-with-pfsense</link><guid isPermaLink="true">https://forum.netgate.com/topic/200145/hughesnet-with-pfsense</guid><dc:creator><![CDATA[chpalmer]]></dc:creator><pubDate>Wed, 11 Feb 2026 23:42:54 GMT</pubDate></item><item><title><![CDATA[brightspeed with cbras]]></title><description><![CDATA[<p dir="auto">Is their any way still use pfsense behind this using all the pfsense functions except the routing? Like dhcp etc.?</p>
]]></description><link>https://forum.netgate.com/topic/200144/brightspeed-with-cbras</link><guid isPermaLink="true">https://forum.netgate.com/topic/200144/brightspeed-with-cbras</guid><dc:creator><![CDATA[[[global:former-user]]]]></dc:creator><pubDate>Wed, 11 Feb 2026 23:22:57 GMT</pubDate></item><item><title><![CDATA[Changing from interface from default gateway breaks OSPF routing]]></title><description><![CDATA[<p dir="auto">I have an interface that needs to utilize WAN2, which is the backup internet connection. I created a gateway group that has WAN2 as the tier 1 and WAN1 as tier 2. I set the interface to use this new gateway group and it works as expected.</p>
<p dir="auto">Now traffic, that orginates from this interface, that is suppose to use OSPF to a remote location does not route.</p>
<p dir="auto">How can I put the OSPF routes first and keep the gateway group with WAN2 as primary?</p>
]]></description><link>https://forum.netgate.com/topic/200142/changing-from-interface-from-default-gateway-breaks-ospf-routing</link><guid isPermaLink="true">https://forum.netgate.com/topic/200142/changing-from-interface-from-default-gateway-breaks-ospf-routing</guid><dc:creator><![CDATA[jake]]></dc:creator><pubDate>Wed, 11 Feb 2026 19:29:22 GMT</pubDate></item></channel></rss>