IPv6 in C-Kermit
C-Kermit introduced IPv6 support in version 11.0.
This support includes full IPv6 support for Kermit’s own sockets (raw, telnet, and SSL/TLS) as well as the FTP and HTTP clients. The FTP client adds support for EPRT and EPSV as necessary for IPv6.
Notes on usage
SET TCP ADDRESS-FAMILY lets you configure whether to use IPv4, IPv6, or both
(the default).
When giving a string that contains an IP address and a port number separated
by colons, an IPv6 address (which itself contains colons) must be enclosed
in [ and ] brackets. This mimics behavior in other situations (such as
URLs) where similar situations are encountered. When a port number is not
expected, neither are brackets.
A new option SET TCP ADDRESS6 exists as an analog to SET TCP ADDRESS,
letting you specify a local binding address for IPv6.
Areas where IPv6 is unsupported
Where additional libraries must be called differently for IPv6, these occur in rarely-used corners of C-Kermit. Supporting the many possible combinations of system and library IPv6 support is complex. Therefore, these areas of the code remain IPv4-only:
-
Kerberos 4 (the wire protocol is incompatible with IPv6, so it will never suport IPv6)
-
Some aspects of Kerberos 5 (such as
SET AUTHENTICATION KERBEROS5 ADDRESSES) -
GSSAPI; IPv6 support requires different GSSAPI calls
-
X11 forwarding will work across an IPv6 connection, but will always listen on an IPv4 socket locally.
-
The SSL code doesn’t yet support IPv6 literals in the SAN field. SSL in general is IPv6-capable; this is an exceptionally rare edge case that adds complexity to the code that seemed not worth it in the end.
-
rlogin has not been rigorously defined for IPv6 contexts and rlogin behavior is untested there, though may work.