Comment s'interfacer avec le pilote de tuner Linux

Je vais avoir un moment difficile de déterminer ce problème - je suis en train d'écrire un programme qui interagit avec l'Linux tunnel pilote. À un niveau très basique, je veux simplement créer une application qui est capable de transférer des données sur un réseau de tunnel. Cependant, je suis tout à fait à une perte quant à la façon de configurer correctement le tunnel pilote afin d'accomplir cette tâche.

Je suis en train d'élaborer sur Ubuntu 9.04, et j'ai le tunnel pilote de module de noyau chargé.

Il existe le dispositif /dev/net/tuncependant il n'y a pas /dev/tunX appareils. Je suis incapable de créer ces périphériques à l'aide de ifconfig - chaque fois que j'exécute /sbin/ifconfig tun0 uppar exemple, j'obtiens l'erreur suivante:

tun0: ERREUR lors de l'obtention drapeaux de l'interface: Aucun périphérique.

Si je tente de regarder la /dev/net/tun de l'appareil, le message d'erreur suivant est présenté:

chat: /dev/net/tun: descripteur de Fichier en mauvais état.

De tenter de l'ouvrir /dev/tunX via un petit programme, en fait, un simple

tun_fd = open( "/dev/tun0", O_RDWR )

retourne -1: l'application s'exécute en tant que root et ne peut toujours pas ouvrir ce tunnel de l'appareil. Il est possible d'ouvrir /dev/net/tuncependant cela ne semble pas générer un nouveau /dev/tunX appareil à utiliser à la place.

Donc, en résumé - comment fait-on pour écrire une application qui souhaite utiliser le Linux tunnel pilote? Toutes les suggestions seraient grandement appréciés.

Grâce;
~Robert

source d'informationauteur rmrobins