FEHCom
Consulting Qmail IP networks Publications
IPv6 djbdsncurve6 ucspi-ssl ucspi-tcp6

UCSPI for IPv6

What is ucspi-tcp6?

Dan Bernstein's UNIX Client-Server Program Interface, UCSPI is a cornerstone of reliable network communication under Unix.

IPv6 capabilities have been included by Felix von Leitner's IPv6 patch.
Based on some additional research at the University of Applied Sciences in Frankfurt/Main (Germany), now a full-featured version is available supporting in addition compactified IPv6 addresses and the well-known classless prefix-notation for IPv4 and IPv6 networks.

ucspi-tcp6 has been build to confirm with Dan Bernstein's slashpackage scheme and uses a binary-compatible CDB for communication control.

Sources:

History:

ucspi-tcp6 is a fork of Dan Bernsteins's ucspi-tcp 0.88 version, including

  • rblsmtpd Greetdelay add-on and removal of the compiled-in default-RBL,
  • Felix von Leitner's's IPv6 patch ucspi-tcp-0.88-ipv6.diff19.bz2,
  • Jens Wehrenbrecht's IPv4 CIDR extension, and
  • Li Minh Bui's IPv6 support for compactified IPv6 addresses and CIDR notation support.
  • Version 0.97 of ucspi-tcp6 provides a native understanding of IPv4-mapped IPv6 addresses and supports the inverse IPv6 nibble format for rblsmtpd RBL and anti-RBL lookups.
  • Interrogation mode is working now (option changed from '-I' to '-i').
  • Greetdelay option reworked.
  • Version 0.98: RBLSMTPD interrogation information is promoted now to the client; e.g. qmail-smtpd.

How to install ucspi-tcp6:

ucspi-tcp6 uses D.J. Bernstein's /package conventions for installation. Typically, un-tar the archive under /package, change to net/ucspi-tcp6-<version> and call package/install.
ucspi-tcp6 is pre-packaged to suite the AMD64 environment and comes with additional man-pages.

Description of the main programs:

Servers:

Clients:

Creating the rules cdb:

Internals:

Main modification in ucspi-tcp6 is the enhanced format for tcpserver's rules.cdb. It supports now:

  • Compactified IPv6 host addresses in the format
    fe80::a:b:cd:1234
  • Classless IPv4/IPv6 net addresses declared in the common CIDR /prefix notation:
    127.0/8:allow
    fe80::/64:allow
    Note: You have to declare (implicitly) that many address bytes as required by the prefix. Longer addresses are automatically truncated.
  • Evaluation of the CIDR addresses considers the longest matching prefix. Thus, you can specify:
    2001:a::/48:deny
    2001:a:b:c::/64:allow

Note for BSD Users:

DNS Lookups may fail, unless an IPv6-enabled DNS Cache Server is provided by means of it's IP in $DNSCACHEIP.
ucspi-tcp6 will compile with clang.

[Impressum]

[FEHCom]

[top]