VMXNET3 network adapter pfSense / FreeBSD

We have actually many reasons why we want to change the default/compatible E1000-adapter from vmware in our virtual pfSense guests. Some of them can be:
  • Outbound PPTP don’t work with ESXi and E1000
  • Performance is (slightly) better with VMXNET3
  • 10GbE-support
Hell yeah, you say – I want to do this shit! If not anything else, the 10GbE virtual interface is a nice virtual penis extender. This solution will most probably work for FreeBSD as well since pfSense builds on it.
So – how do we do this? Installing OpenVM tools? Nope, won’t work. So I searched around a bit and found this thread on the pfSense forum. So all creds goes to aluebke who gave the instructions. I’ll try to visualize it a bit.
1 ) First off – if you’ve installed OpenVM tools alredy, do what ever you want with it. It’s cleaner if uninstalled but doesn’t make any conflicts either.
2) Connect to the pfSense GUI and turn on SSH. When the notice in the right corner appears, SSH is on.

3) Connect to pfSense SSH (preferably via putty), log in and choose option 8 (Shell).

4) Now you can run the commands and install the real vmware tools, one by one and let them complete. This is more or less a copy from aluebkes post, a little remixed. So still – all creds to aluebke.
  • pkg_add -rv perl
  • pkg_add -rv compat6x-amd64 (or -i386 if you’re on 32-bit hardware)
  • Edit the /etc/rc file and change the line that says “/sbin/ldconfig -elf /usr/lib /usr/local/lib /lib” to “/sbin/ldconfig -elf /usr/lib /usr/local/lib /lib /usr/local/lib/compat”
  • To open the config, write “vi /etc/rc”. When this opened, you get a HUGE config file. The “/sbin/ldconfig -elf /usr/lib /usr/local/lib /lib” line is about in the middle.
    When you have found the row, just press “i” to edit the row. After this is done, press “esc” write “:wq” and press enter.
  • /sbin/ldconfig -elf /usr/lib /usr/local/lib /lib /usr/local/lib/compat (need to run this so we have it configured now, the /etc/rc file will set it from now on)
  • Start VMware Tools install from Guest, Install/Upgrade VMware Tools (This is the point you’ll start from if you are UPGRADING vmware tools).
  • mkdir -p /mnt/cdrom
  • mount_cd9660 /dev/acd0 /mnt/cdrom
  • cd /tmp
  • tar xvzf /mnt/cdrom/vmware-freebsd-tools.tar.gz
  • cd vmware-tools-distrib
  • ./vmware-install.pl -d –clobber-kernel-modules=vmxnet3,pvscsi,vmmemctl
  • Halt the system
5) Vmware tools is now installed and we should be able to add VMXNET3 adapters. Add one new VMXNET3 to each network that earlier was using E1000 adapter. Remember to delete the E1000 adapters.

6) Power on the pfSense guest. You’ll now be asked to wich interface is wich. The easiest way to make this right is to compare MAC/L2-addresses. Just write enough to make the interface unique. In my case “vmx3f0″ for WAN and “vmx3f1″ for LAN.

7) If everything is correct, you should now be up and running as usual. The firewall rules will be “migrated” to this new interface automaticly.

8) Happy VMXNET 3′ing 

Kommentarer