PfSense 2.3 on Hyper-V 2012 (R1) - only 3 network adapters are working



  • Hello, I just tested pfSense 2.3 on Windows 2012 R1 Hyper-V machine and there is a problem that pfSense are showing only 3 network adapters.
    Adapters hn0, hn1 and hn2 are ok and working well, during boot there is message:

    hn3: <synthetic network="" interface="">on vmbus0
    device_attach: hn3 attach returned 12</synthetic>

    and network adapter hn3 is not showing in pfSense 2.3.
    pfSense 2.2.6 is working well with 4 network adapters on same Hyper-V machine.

    In Windows 2012 R2 Hyper-V everything is ok an pfSense 2.3 is working with 4 network adapters.

    Edit: I found, that it is problem of FreeBSD 10.2(3) http://translate.google.com/translate?hl=en&sl=auto&tl=en&u=http%3A%2F%2Fforum.lissyara.su%2Fviewtopic.php%3Ft%3D43518



  • Any word on how to fix this?

    This is a problem with Hyper-V on 2008 as well, so I'd assume this affects everyone running this under Hyper-V.



  • So I found a hack to get it to work. I loaded the old kernel from 2.2.6 (FreeBSD 10.1-Release-p25) onto a 2.3 machine and everything seems to function fine now. (Load PFSense 2.2.6 onto another VM. Then mount its hard disk onto 2.3 and copy the /boot folder over the 2.3 /boot folder)

    I would not recommend this for a production machine, but it does seem to work for the time being.

    I also found in my testing that Hyper-V on Windows 8.1 Pro does not have an issue seeing all the network adapters.



  • There is a patch https://lists.freebsd.org/pipermail/svn-src-stable-10/2016-March/008308.html but I don't know when it will be included in pfSense FreeBSD version.



  • I have a perhaps related issue.  Server 2012 r2 running 2.2.6 with 2 adaptors works perfectly.  Upgraded to 2.3 and now it only sees hn0 (hn1 is missing).  Tried to add another adaptor to see what would happen and now it has an hn0 and hn1 (hn2 missing) but hn0 is my first virtual adaptor and hn1 is my third virtual adaptor.  Additionally, it always seems to show the connections as down.

    Very odd…

    The notes on r296248 seem to indicate it would help... any way to check when/if this is included in pfsense?  2.3 is pretty much useless until this is added :<



  • I was installing 2.3 from scratch under Hyper-V, with 4 network adapters (normal adapters, non-legacy), and i found that it recognized 3 of them. Adding a 5th adapter didn't seem to do anything.

    Adding 4 legacy network adapters seems to work ok (and that's maximum number of legacy network adapters per VM in 2008 R2).



  • Hmmm… That isn't good. I'll have to test.

    I have a Hyper-V install coming up that we were planning on using 5 vNICs for... A plan B would be to do the VLAN config in pfSense instead of at the NIC/vSwitch level, but I think it is cleaner to not do it like that...



  • Just FYI, I built a Gen 1 VM on Hyper-V 2016 TP5 with 5 NICs and all 5 NICs worked fine in pfSense.

    I'll double check on Hyper-V 2012 R2 tomorrow….



  • Last update… I went back and made a 5 NIC pfSense VM in Hyper-V 2012 R2 (GEN1 VM) and all 5 NICs showed up just fine there too....

    So I don't see an issue at this point.

    Jason



  • You got pfsense 2.3 to work with 5 NICs on 2012r2?

    Hmm.  You just ran the regular installer without changing anything?



  • Yes.  In fact I moved a production physical server with 6 nics to a HYPERV 2012 R2 gen 1 VM with 6 nics this afternoon via a clean install of 2.3 and then restoring backup and reassign the interfaces. Everything working perfectly.

    I used the CD installer ISO, and took all defaults during the pfsense install.

    I used regular nics (not legacy) in the vm, and they showed up as hn0-5 (6 nics), each nic set to a different vlan.



  • The FreeBSD patch linked above changes a wait from 500 (who knows the units?) to 5 * hz (5 seconds).  I wonder if my physical host is just too slow to initialize everything in 500 and yours is not?

    Can I ask what cpu you have in your host?  Mine has an Opteron 4170 HE (getting a little long in the tooth…)



  • FWIW, i have the same problem with pfSense 2.3 and Window Server 2012, not R2.



  • @mmarino:

    FWIW, i have the same problem with pfSense 2.3 and Window Server 2012, not R2.

    Had exact same problem (only 3 NICs detected, error above for the 4th) on Windows Server 2012 Hyper-V. Upgraded my server to Windows Server 2012 R2 and the problem was resolved.



  • @mwastart:

    The FreeBSD patch linked above changes a wait from 500 (who knows the units?) to 5 * hz (5 seconds).  I wonder if my physical host is just too slow to initialize everything in 500 and yours is not?

    Can I ask what cpu you have in your host?  Mine has an Opteron 4170 HE (getting a little long in the tooth…)

    I doubt it is timing related. It works fine for me even doing hyperv nested in VMware Workstation on a dual-core i5 processor. That has to have more latency/timing issues than your opteron….

    To answer the actual question, my hyperv hosts are E3-1240v3 processors.

    In relation to the other post, I have never tried it on 2012 R1 - I upgraded all those years ago, so don't have any left.



  • I have the exact problem. Windows Server 2012 (not R2).

    The fourth NIC does not appear on pfSense.

    Does anyone know how to patch/fix the kernel as per DD post (https://lists.freebsd.org/pipermail/svn-src-stable-10/2016-March/008308.html  ) ????
    I cannot upgrade my server to R2, since I don´t have license



  • I am wondering what is the value of kern.hz on the affected installations.

    This patch (https://lists.freebsd.org/pipermail/svn-src-stable-10/2016-March/008308.html) deals with the problem by making the time dynamic depending on kern.hz value instead of the, believed, default 100 kern.hz for VMs.



  • did you tried the patch?

    can you provide instructions do apply it?



  • Have the similar problem on 2012 R2 after installing 2.3.2.
    It seems that problem with NIC drivers and not enough cpu performance.
    I have gigabyte brix which through hyper-v VLAN runs pfsense.

    After updating to latest realtek drivers and adding 1 core to VM, problem disappeared.
    Just now tried to remove 1 core and VM did not detect any hn0, hn1, hn2 at all.

    on 2.2.6 everything was ok even with 1 core and old realtec drivers.



  • It seems like patch1 for 2.3.2 solved the problem.
    Right now pfsense successfully started with 1 core, all NICs were detected.



  • I have tried upgrading to 2.3. And I find that PFSense will not detect all NICS. I have now tried upgrading to 2.4 with the same outcome. I have also tried applying the above patch to 2.4 via the System Patches Package that I installed. However, when I test the packages, it states there is no file to  patch

    I cut and pasted the code from https://lists.freebsd.org/pipermail/svn-src-stable-10/2016-March/008308.html
    and created three patches based on the 3 sections of code.

    Can anyone please advise how to apply this patch to 2.3 and or 2.4.

    e.g.

    /usr/bin/patch –directory=/ -t -p1 -i /var/patches/59f7b6a679008.patch --check --forward --ignore-whitespace

    Hmm...  Looks like a unified diff to me...
    The text leading up to this was:

    -- stable/10/sys/dev/hyperv/netvsc/hv_rndis_filter.c Tue Mar  1 01:04:53 2016 (r296247)

    +++ stable/10/sys/dev/hyperv/netvsc/hv_rndis_filter.c Tue Mar  1 02:07:14 2016 (r296248)

    No file to patch.  Skipping...
    Hunk #1 ignored at 30.
    Hunk #2 ignored at 359.
    Hunk #3 ignored at 626.
    3 out of 3 hunks ignored while patching 10/sys/dev/hyperv/netvsc/hv_rndis_filter.c
    done



  • RESOLVED*****

    Upgraded MS-Server 2012 to MS-Server2012R2 and everything now works as expected.

    I have attempted to update a few MS-Server2012 Hyper-V PFSense firewalls and all have failed.

    I will now update all HOST OS to 2012 R2.


Log in to reply