Мне сложно решить эту проблему - я пытаюсь написать программу, которая будет взаимодействовать с драйвером туннеля Linux. На самом базовом уровне я просто хочу создать приложение, которое может передавать данные через сетевой туннель. Однако я совершенно не понимаю, как правильно настроить драйвер туннеля, чтобы выполнить это.
Я разрабатываю Ubuntu 9.04, и у меня загружен модуль ядра туннельного драйвера.
Существует устройство /dev/net/tun
, однако нет устройств /dev/tunX
. Я не могу создать эти устройства с помощью ifconfig
- всякий раз, когда я запускаю /sbin/ifconfig tun0 up
, например, я получаю следующую ошибку:
tun0: ОШИБКА при получении флажков интерфейса: Нет такого устройства.
Если я попытаюсь посмотреть на устройство /dev/net/tun
, появится следующая ошибка:
cat:/dev/net/tun: дескриптор файла в плохом состоянии.
Попытка открыть /dev/tunX
через небольшую программу, в основном, простой
tun_fd = open( "/dev/tun0", O_RDWR )
возвращает -1: приложение работает от имени root и до сих пор не может открыть это туннельное устройство. Можно открыть /dev/net/tun
, однако это не означает, что вместо него будет создано новое устройство /dev/tunX
.
Итак, вкратце - как нужно писать приложение, которое хочет использовать драйвер туннеля Linux? Любые идеи были бы оценены.
Спасибо; ~ Роберт