RPM and IPv6

We have received several inquiries recently regarding whether RPM Remote Print Manager® ("RPM") supports IPv6. In this article, I seek to address any concerns about this.

What is IPv6?

If you've been around the Internet for a while, you've surely seen hostnames more than a few times. You've probably noticed numeric addresses such as:

  • 8.8.8.8, which is the Google Public DNS Server
  • 93.86.75.10, which is Wikipedia
  • 127.0.0.1, which is any machine's local address; for instance, the computer you are reading this on, or phone, uses that address to refer to "local" or not "over the network"

These addresses with 4 sets of digits are called "IP addresses" because they are part of the Internet protocol. Specifically, they are examples of IPv4, because they are 4-part.

Each of the 4 parts of this address can be in the range 0-255. Every device is intended to have a unique address, meaning that worldwide, using this simple scheme, you could theoretically have 2^32 or 4294967296 total. That's around 4.3 billion.

However, the way the Internet grew it was not hard to figure out that we could easily surpass that number. One estimate places 2015 as the year that likely happened.

So, IPv6 was proposed in 1998 and ratified as an Internet Standard by the Internet Engineering Task Force on July 14, 2017. IPv6 has several advantages, including

  • more addresses, around a trillion
  • better security features
  • opportunities for better routing

How does this apply to RPM?

I wrote RPM in 1995 using IPv4 for networking, because that existed at the time. I was fully aware of IPv6 when it was proposed. I waited on someone to introduce an IPv6 print client so I could add support to RPM, and test with the new client.

However, that never happened. I searched earlier today; there are no IPv6 LPR clients.

I could write my own, and maybe I should have. I figured that would be an opportunity to innovate and improve the LPR/LPD protocol, but that hasn't happened.

Bottom line

  1. networks which support IPv6 typically also support IPv4 at the same time
  2. it is no issue whatsoever for an application that uses IPv4 only to work correctly on a network which runs both IPv6 and IPv4
  3. RPM will likely include IPv6 support as soon as there are LPR clients which use IPv6

I learned in my search that HP supports IPv6 with JetDirect printers. Since RPM includes an emulation called "AppSockets" I'll likely include support for IPv6 at some point. AppSockets is not widely used yet in our customer base.

I suspect also that telnet or "raw printing" already supports IPv6 but as of this writing, I have not found the client programs that do.