Сетевое железо - статьи

       

"Виртуальный туннель" VTun


Другое дело - "виртуальный туннель" VTun. Буквально через 10минут после того, как в строке браузера был набран этого проекта, я уже знал, что он подходит на все сто. VTun предоставляет самый простой из всех известных мне способов создания виртуального туннеля в сетях TCP/IP.

Главными достоинствами VTun являются отличная документация, простота установки и конфигурирования, гибкость настройки. VTun поддерживает различные типы туннелей: IP, ppp, SLIP, Ethernet, TTY и pipe. Потоки кодируются 128-битным ключом при помощи OpenSSL по алгоритму BlowFish. Для генерации ключа используется алгоритм MD5.

В качестве базового (транспортного) протокола может использоваться не только более надежный TCP, но и - для близких подсетей - более быстрый UDP. Для ускорения передачи данных возможна (но не обязательна) компрессия потока при помощи библиотек zlib и lzo. Библиотека zlib обеспечивает эффективную компрессию для TCP. Более быстрая (и рекомендуемая разработчиками) lzo поддерживает оба протокола (UDP и TCP).

Кроме того, VTun позволяет ограничить входную и выходную скорость туннелей во избежание перегрузки сервера при наличии большого количества клиентов.

Официально проект поддерживает все Unix-подобные операционные системы: Linux (RedHat, Debian, Corel и пр.), FreeBSD и другие аналоги BSD (FreeBSD 3.x, 4.x, OpenBSD, Apple OS/X и пр.), а также Solaris 2.6, 7.0, 8.0.

Система работает через универсальные драйверы tun и tap. Tun применяется при туннелировании IP-пакетов, а tap (он же ethertap) - при туннелировании фреймов Ethernet. Драйвер TUN/TAP позволяет пользовательским программам самостоятельно обрабатывать соответствующие пакеты. Его можно рассматривать как виртуальное устройство PPP или Ethernet, которое принимает пакеты не от физических носителей, а от пользовательской программы, и не отправляет пакеты через физические носители, а записывает их в программу пользователя. Более подробная информация о работе этого устройства есть в файлах документации исходников ядра /usr/src/linux/Documentation/networking/tuntap.txt и ethertap.txt. Там же находятся примеры применения этих устройств.



Содержание раздела