Dual-stack IPv4 and IPv6 DNS Servers (Linux)

It is inevitable that the change to IPv6 will need to be done in the near future. But in the meantime, it is also inevitable that you will need to run both IPv4 and IPv6 at the same time (at least in most scenarios). This leads to some caveats when it comes to DNS resolvers/clients.

Under normal circumstances, reputable public DNS servers running on IPv4 are able to resolve and respond with AAAA records, despite running on IPv4. This allows you to continue using your regular DNS settings.

However, you might be thinking: Why not use IPv6 DNS servers? I mean, that’s the whole point of switching, right? You can definitely use IPv6 DNS servers (and I encourage you to do so), but there is a catch, which is especially noticeable on Linux based systems.

Given you are generally familiar with DNS and network technologies in *nix, using IPv6 DNS servers should just be a snap: just add them to /etc/resolv.conf and voila, they’re enabled!

Wrong! Well, not exactly. If you simply append your IPv6 DNS servers to the list and your IPv6 does indeed route to the internet properly, you will notice a very large delay when doing DNS resolutions. This is because the IPv6 protocol takes precedence by default and it won’t be able to connect to your IPv4 DNS servers, which were listed first. If you have multiple IPv4 namservers defined, DNS resolution may just timeout and everything that depends on it will break.

The resolution is to make sure your IPv6 DNS servers are listed FIRST, ahead of your IPv4 DNS servers. It is also a good idea to add “options single-request-reopen” to have the same socket used for both IPv4 and IPv6 lookups, to work around cases of broken implementations. An example of a resolv.conf with both IPv4 and IPv6 Google Public DNS servers looks like this:

options single-request-reopen
nameserver 2001:4860:4860::8888
nameserver 2001:4860:4860::8844

Obviously, yours may vary. Hope this helps, and happy IPv6 surfing!

VMWare ESXi 5 Auto Start/Shutdown

VMWare recently, (and quietly) published a patch I have confirmed will resolve a guest virtual machine startup and shutdown issue that was introduced in March 2012 when they released Update 1.

The issue was that it broke the automatic startup and shutdown of the guest virtual machines when the host machine boots or shuts down. This did not affect enterprise customers who use a cluster, but vastly impacted many of us running individual nodes. Not surprisingly, this only affected the free version of the hypervisor and took 4 months before they decided to fix it due to 1.) community outrage and 2.) the issue extending to some paying enterprise customers.

The patch is ESXi500-201207001 and can be found here: http://www.vmware.com/patchmgr/download.portal. Just search for ESXi 5.0.0. Please note that if you aren’t running the latest patch before this one, you will need to update them sequentially before applying this patch.

As a note to the folks at VMWare: You guys barely averted losing your edge as a virtualization market leader due to angry users. This is not the first time either.

NetBeans 7 and Java SDK (JDK)

Recently I update to the latest NetBeans 7 installation and set it to use the Java 7 SDK (JDK). When launching the program, I get frequently got this annoying error message that says “JVM creation failed”, followed by an exit of the program.

Numerous articles and postings advise to edit the netbeans.conf file and change some memory parameters, but those did not work for me. I found the solution to be to install and use the SDK that matches your OS architecture, especially if you’re using a 64-bit environment. While you can’t use the 64-bit JDK on a 32-bit system, the opposite is possible but leads to random memory quirks like this one.

CONCLUSION: use the 64-bit Java SDK on a 64-bit machine. You might want to install the 32-bit Java Runtime (JRE) for compatibility reasons, and it will run alongside the 64-bit JDK + JRE just fine.

ALSO: I updated my NetBeans and JDK to get around the issue where NetBeans would not retrieve directory listings over FTP. I went from NetBeans 7.1.1 and JDK 7u2 to NetBeans 7.1.2 and JDK 7u4.

That’s all. Happy developing!

Integrating and Optimizing Thunderbird for Google Mail

Let’s admit it, gMail is awesome (some of you would beg to differ), especially when you use gApps like I do. But I’ve always had a few requirements:

  • being able to access my most recent e-mail offline
  • without using a browser
  • large mailboxes (4+ GB)
  • use of certificates to sign or encrypt e-mail
  • integrated calendar, tasks, contacts
  • multiple e-mail account support
  • and recently, synchronize all this with my Android phone

My former method was to use Microsoft Outlook, but that program is riddled with problems and cumbersome. It also doesn’t seem to alert you when you have new mail if you use IMAP. Synchronizing Calendar and Contacts with my phone required a 3rd party program, which would be limited to just 1 calendar in Outlook and often create duplicate Contacts. On one occasion, the program got stuck with corrupted information and about half of the ~75 contacts in my list had about 25 copies each. (I fixed this shutting off Outlook & the sync program, exporting all my contacts to a Google CSV, and removing the duplicates offline.)

So in my quest for a more seamless & less troublesome e-mail client, the only VIABLE non-browser e-mail client turns out to be Mozilla’s Thunderbird. However, integration with Google Mail isn’t seamless or without quirks.

Read more

Dell Precision M6600 (and BIOS Update A06)

Over the summer, I acquired an exchange upgrade from my Dell Precision M6400 to an M6600. I got a chance to disassemble and replace the mainboard in this new system, but didn’t get around to posting photos and comments I had about the new hardware. (Post a comment below if you want the pictures.)

My experiences with the M6600 were not without headaches. Issues ranged from a keyboard that locks up if the backlit was on during boot to drives not waking up when the computer resumed from S3 standby due to the Free Fall Sensor not waking up with the system.

Well, Dell decided it was a real problem with the BIOS and Embedded Controller and released a BIOS (uEFI firmware to be correct) update to the system on 02 OCT 2011. Here’s the official changelog:

1. Addressed some express cards fail to be detected issue.
2. Addressed Hard Drives encryption issue in ATA mode.
3. Addressed some keyboard with USB Hub not accessible during POST.
4. Fixed issue where disabling webcam stops microphone from working.
5 . Fixed issue where battery temperature sensor throttling CPU at high temperature when external power.
6. Fixed issue where Video memory size limited to 256MB in WinXp.
7. Fixed issue where Free Fall Sensor protection doesn't work after resuming from S3.
8. Fixed issue where TPM measurements were not correct when authenticating via PBA.
9. Updated Intel ME Firmware to
10. Updated to the 1.3.76 version of the Intel PXE OROM.
11. Added support for the new Nvidia graphic optimus keys.
12. Update Intle SandyBridge Client PPM Reference Code to version 1.4.0.
13. Update Intel Microcode patch to version P_12.
14. Fix Turbo Boost function abnormal.

1. Please note that if the A02 or before A02 BIOS is currently installed on your system,
you must first update to A03 BIOS and then flash to the latest A-rev BIOS.

I have updated to this latest revision from A04 and it has been buttery smooth, even fixing a SSD stuttering issue that seemed to plague my everyday usage of the laptop.

Link: ftp://ftp.us.dell.com/bios/M6600A06.exe

A few more notes about the Dell M6600 hardware:
– The graphics card is MXM
– The “BIOS” is actually uEFI with BIOS extension.
– There are about 4 unlabeled screws underneath and a flimsy plastic snap you need to remove to service the system. Improperly removing these will destroy your chassis.



M6600 A06 Firmware Package Contains the following firmware revisions:
– System BIOS: A06
– Embedded Controller: X23
– Gigabit Ethernet: 0.D.3
– Legacy Video OROM: 2089.V.11
– GT1 Legacy Video OROM: 2089.V.11
– GT2 Legacy Video OROM: 2089.V.11
– Legacy RAID OROM:
– Intel AntiTheft:
– Intel Management Engine Update:
– ACPI OS Support: