If All Else Fails...

In some cases you may use software that simply does not support IPv6. In some cases this software can be made to effectively operate over IPv6 using port forwarding. We use the nc6 program, available from http://www.deepspace6.net/projects/netcat6.html, and inetd to do port forwarding. The nc6 program allows you to make a connection to a network service and copies its input/output to that network service. For example, you could say nc6 mail.example.com smtp to get a connection to the SMTP server on mail.example.com.

Tip

There are other more sophisticated solutions using programs, such as ssh. Examples of clever port forwarding tricks can be found in SSH, The Secure Shell by Barrett and Silverman (O'Reilly). These tricks work over IPv4, IPv6, and a mix of both.

So let's consider the example of cvsup. This is a program used by the FreeBSD project for replicating source code trees. cvsup is written in Modula 3 and the version of Modula 3 used does not yet support IPv6. This means that the client and server parts of cvsup can neither make nor receive IPv6 connections.

However the protocol used by cvsup does not care about what it is transported over, thus on a cvsup server we can add a line to /etc/inetd.conf saying:

cvsup stream tcp6 nowait nobody /usr/local/bin/nc6 nc6 127.0.0.1 cvsup

This causes inetd to listen for TCP connections on the cvsup port, and if it gets a connection then nc6 is started and it forwards the connection to 127.0.0.1, where it can be served by ...

Get IPv6 Network Administration now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.