Introduction à qmail
PrécédentChapitre 3. Mise en place de SMTP, POP3, UCSPI et QMTPSuivant

UCSPI-TCP et TCPcontrol

UCSPI signifie Unix Client-Server Program Interface. Un outil UCSPI est un programme qui sait communiquer avec un certain medium de communication (par exple TCP). Il fournit de plus deux descripteurs de fichiers, l'un pour lire et l'autre pour écrire sur le medium. On peut alors lui associer un programme qui lira et écrira sur ces descripteurs sans se soucier du medium. Celà permet de créer à partir d'un programme UNIX quelconque une application client/serveur sur le medium en question. L'avantage est que le programme ainsi enveloppé ne se soucie plus du medium qu'il utilise, c'est désormais le problème de l'enveloppe UCSPI.

Les outils UCSPI sont de deux types : les clients et les serveurs

Je vous conseille fortement la lecture du texte http://pobox.com/~djb/proto/ucspi.txt de Dan Bernstein dont je me suis largement inspiré.

Un exemple est UCSPI-TCP écrit par Dan Bernstein qui est constitué de tcpclient et tcpserver. En gros, on peut dire qu'ils permettent de faire pour un port et un programme particulier ce que fait inetd à la différence qu'ils sont très performants et paramétrables. Voici l'URL de UCSPI-TCP : http://pobox.com/~djb/ucspi-tcp.html.

UCSPI-TCP va se révéler très pratique dans le système qmail. Il permétra de transformer les programmes qmail-smtpd, qmail-qmtpd et qmail-pop3d qui ne connaissent rien à TCP en de véritables serveurs sur certains ports TCP indépendament d'inetd. On gagnera ainsi en configurabilité et surtout en performances pures.

TCPcontrol quand à lui est un contrôleur d'accès écrit par Dan Bernstein destiné à être utilisé avec UCSPI-TCP. C'est ce que l'on appelle un «TCP wrapper». Voir http://pobox.com/~djb/tcpcontrol.html. Il est à tcpserver ce que tcpd est à inetd. Consultez sa documentation pour en savoir plus. Je n'ai pas utilisé TCPcontrol dans la suite. Vous pouvez lire avec profit la FAQ de qmail qui explique comment s'en servir pour le port SMTP.


PrécédentPage principaleSuivant
POP3 par qmail-pop3d via inetdNiveau précédentSMTP par qmail-smtpd via UCSPI-TCP