SmartOS, Postfix and IPv6

As part of completing our shut-down of 2007-vintage Xserves at the hosting center, we're moving a lot of servers to SmartOS (or at least SmartOS-hosted VMs). We've been really happy with the system so far. Here's a quick story of the power of this environment.

As part of the transition, I decided to take care of a long-standing intention to allow IPv6 mail delivery. The latest releases make IPv6 much easier to deal with in SmartOS and so I figured I'd turn it on and see how it went. Early tests looked good, but there was little IPv6 traffic initially. However, once google/gmail started throwing data our way, it became clear there was a problem. IPv6 reverse lookups were failing in Postfix and that was causing mail not to be delivered. Thankfully, it was a 450 error, so the mail would get queued on the server and be tried again later, but it wasn't a good place to be, so we turned off IPv6 and went in search of the root cause.

A quick look at the postfix source code made it clear that the OS (and not postfix's internal DNS code) was being used to look this up. I decided to play with it a little longer, grab source code so that I could do some experiments, and then I went to bed.

In the morning, I did what you do when you have standard configurations and SmartOS: I stood up a new server and ran some tests on it. The new server was configured with the latest (15.3.0) build of SmartOS and the 2015Q3 packages, resulting in an upgrade to the 3.0.2 version of Postfix. Once set up, I ran some email through it and was able to confirm whether this resolved the problem, and it did.

The moral of the story (which I wish I'd realized a few hours earlier yesterday): here in the future, it's easier to stand up another machine to check whether a bug has been fixed than to read the release notes and source code.

From a discovery/knowledge perspective, I'm not sure I like this new world. From an efficiency perspective, disposable virtual hardware is a luxury and a huge time saver.