Menu
A+ A A-

KVM - Enable Promiscuous Mode for Macvtap Network Interface

To use the relatively new macvtap bridge network interfaces in KVM, the host network interface must be set to promiscuous mode.

Edit /etc/network/interfaces with nano or something and add the up and down lines.
For example...

iface eth0 inet static
up ifconfig $IFACE promisc
#######
# YOUR INTERFACE CONFIG HERE
#######
down ifconfig $IFACE -promisc

Reboot and check if promiscuous mode is enabled: ifconfig and see if the PROMISC flag is set on the interface.

Virtual PfSense on KVM - VirtIO Network Issues

Virtualization of pfSense on KVM went smoothly for the most part.  PCI pass-through to a network card worked swimmingly, and I adore the new built-in virtio driver support.

Then I tried building a DMZ in pfSense so that I could run isolated guest VMs on the same host.  I created an isolated virtual network on KVM, and added a virtio network interface to the pfSense VM.  PfSense saw the new interface and automatically created the NAT rule for the DMZ, but I had to add a firewall rule allowing the DMZ traffic to flow.  Finally, I moved a guest VM's network interface over to the new DMZ.

Very strange...I could ping other hosts and even Internet hosts.  I could see the traffic flowing just fine through pfSense.  But the Internet would not work.  Finally, after trying a non-virtio network driver, I realized virtio was the problem.

In short, "Hardware Checksum Offloading" must be turned off in pfSense for virtio to work properly.  Go to the System --> Advanced --> Networking tab in pfSense and turn off hardware checksum offloading.  Reboot pfSense and PROFIT!

Warm regards go to this helpful article: https://doc.pfsense.org/index.php/VirtIO_Driver_Support

I'm not sure how much of this is still necessary as pfSense now has built-in virtio driver support, but disabling hardware checksum offloading is definitely required!

KVM - Enable Direct PCI Pass-Through

This example was done on Ubuntu server.

* Enable VM direct I/O in the BIOS.
* Open /etc/default/grub using an editor like nano or something.
* Find GRUB_CMDLINE_LINUX_DEFAULT and add intel_iommu=on as a parameter.  Make sure it's lowercase.  Save and exit.
* update-grub
* shutdown -r now
* dmesg | grep -e DMAR -e IOMMU and you should see a line in there stating that IOMMU is enabled.

Elastix PBX - Voicemail Disabled After Yum Update

I ran a yum update process on my Elastix PBX, updating all the packages.  The update process completed without error; however, voicemail was disabled on all user extensions.  Here's how I fixed it. 

* SSH into the PBX and cd to /etc/asterisk.
* Find voicemail.conf.  If you cat it, you'll notice it's basically empty.  But don't have a heart attack just yet.
* You should also see a file called something like voicemail.conf.old_DATE_TIME (e.g. voicemail.conf.old_2015Feb12_183454).  The date should match the date you performed the fateful yum update command.  If you cat this file, you should see that it contains your proper voicemail user configuration.
* Backup voicemail.conf to be safe.
* Restore the data in the backup file to voicemail.conf.  You can copy/paste, cp, etc.
* Make sure the permissions, owner, and group match.  They should be 664 with owner and group set to "asterisk."  You'll see these same settings on the other voicemail configuration files.
* Apply the configuration.  I usually just click somewhere in the Elastix web GUI to get the "Apply Config" link to appear and click it.
* Look at a few extensions in the web GUI, and you should see that voicemail is now enabled.  Disaster averted!

Joomla - YouTube Videos Too Big After Gavick Template Update

PROBLEM
After updating my Joomla Gavick template to the latest version, the embedded YouTube videos appeared massively large on desktop browsers.  Mobile browsers looked OK.

SOLUTION
The problem is caused by the fitvids library introduced in later template versions.

- Find the file fitvids.jquery.js in the template's js folder.
- Comment-out line 25 in fitvids.jquery.js.

// var css = '.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}';