Объединение сетей двух офисов с помощью vtun

()

В предыдущей статье было показано как можно быстро и легко объединить сети двух офисов через GRE-туннель, однако протокол GRE не поддерживает шифрование и если это является критичным то нужно использовать другие решения. В частности можно использовать vtun, который поддерживает шифрование и настраивается ненамного сложнее GRE-туннеля. Далее будет показано как можно организовать vtun-туннель.

По своему функционалу vtun практически не уступает OpenVPN и имеет ряд уникальных возможностей, в частности возможность "проброса" UNIX-пайпов (pipes) через сеть. Мы же используем только возможность организации соединения точка-точка для замены GRE-туннеля из предыдущей статьи. Все начальные условия у нас будут точно такие же.

Приступаем к установке. Выполним на шлюзах обоих офисов команду:

apt-get install vtun

Сгенерируем пароль. Для этого можно использовать вот такую команду:

head -c 4000 /dev/urandom | sha256sum | awk '{print $1;}'

В результате будет получена строка, которую мы и будем использовать в качестве пароля. Выглядеть она будет примерно вот так:

806f568b6dfec3633b4cc2d50aed240b988f897d0863082ad4c58c57477710e7

На сервере центрального офиса создадим файл /etc/vtund.conf следующего содержания:

# Основные настройки
default {
    # Режим соединения
    type tun;
    # Используемый протокол
    proto tcp;
    # Будем использовать сжатие
    compress lzo:9;
    # Будем использовать устойчивые соединения
    keepalive yes;
}

# Сессия
office0 {
    # Будем создавать устройство tun0
    device tun0;
    # Используем шифрование
    encrypt yes;
    # Пароль для подключения
    passwd 806f568b6dfec3633b4cc2d50aed240b988f897d0863082ad4c58c57477710e7;
    up {
        # Настройки сетевого интерфейса
        ifconfig "%% 172.17.254.1 pointopoint 172.17.254.2 mtu 1450"
        # Маршрут на сеть филиала
        route "add -net 192.168.102.0/24 dev %%";
    };
}

Приведём файл "/etc/default/vtun" к виду:

# Разрешам запуск сервера
RUN_SERVER=yes
# Дополнительные опции. Указываем порт, на котором будет слушать сервер
SERVER_ARGS="-P 5000"

И запустим сервер:

invoke-rc.d vtun start

Остаётся только разрешить обращение к порту 5000/tcp в файрволле и можно переходить к настройке vtun-клиента на сервере филиала.

Файл "/etc/vtund.conf" на сервере филиала будет выглядеть вот так:

# Основные настройки
default {
    # Режим соединения
    type tun;
    # Используемый протокол
    proto tcp;
    # Используем сжатие
    compress lzo:9;
    # Используем устойчивые соедения
    keepalive yes;
}

# Сессия
office0 {
    # Создаваемое устройство
    device tun0;
    # Шифрование
    encrypt yes;
    # Пароль
    passwd 806f568b6dfec3633b4cc2d50aed240b988f897d0863082ad4c58c57477710e7;
    up {
        # Настройки сетевого интерфейса
        ifconfig "%% 172.17.254.2 pointopoint 172.17.254.1 mtu 1450";
        # Маршрут на сеть филиала
	route "add -net 192.168.101.0/24 dev %%";
    };
}

Файл "/etc/default/vtun" на сервере филиала имеет вид:

# Имя сессии
CLIENT0_NAME=office0
# Адрес сервере головного офиса
CLIENT0_HOST=1.1.1.1
# Дополнительные опции. Указываем порт, на котором будет слушать сервер
CLIENT0_ARGS="-P 5000"

Запускаем vtun:

invoke-rc.d vtun start

На этом настройка заканчивается. Для проверки успешности соединения можно пропинговать адрес интерфейса tun0 в соседнем офисе.

Приятной работы!

Ключевые слова: vtun, vtun-туннель, vpn.

Подписаться на обновления: RSS-лента Канал в TamTam Telegram канал Канал в ICQ

Комментарии:

Anonymous 2010-12-30 12:49:59 (#)

Спасибо большое за Ваши статьи!

Такой вопрос -- вы не проводили сравнение производительности разных туннелей (vtun/openvpn/ipsec/xl2tp)?
У меня сейчас два оффиса соеденины посредством openvpn через линк 100мбит/сек. Но скорость внутри самого туннеля -- 50 мбит/сек максимум, обычно ~30. Загрузка процессоров небольшая (подозревал, что шифрация съедает CPU)...
Вот и думаю, на какой тип туннеля перейти...

MooSE 2010-12-30 17:57:17 (#)

Спасибо большое за Ваши статьи!

Такой вопрос -- вы не проводили сравнение производительности разных туннелей (vtun/openvpn/ipsec/xl2tp)?
У меня сейчас два оффиса соеденины посредством openvpn через линк 100мбит/сек. Но скорость внутри самого туннеля -- 50 мбит/сек максимум, обычно ~30. Загрузка процессоров небольшая (подозревал, что шифрация съедает CPU)...
Вот и думаю, на какой тип туннеля перейти...


К сожалению нет возможности провести такой тест в реальных условиях, а собирать макет в локальной сети - не уверен что получу адекватный результат потому что между точками не будет ни одного промежуточного узла. То есть практически не будет задержек, а есть ситуации когда канал может и 100мбит/с, но на нём такие задержки что ответные пакеты с подтверждением доставки будут приходить с большим опозданием что будет вызывать пересинхронизацию tcp-сессии и фактически к снижению скорости.

Вот как-то так...

Anonymous 2011-02-09 08:35:59 (#)

> организовать организовать vtun-туннель
Поправь

MooSE 2011-02-09 10:49:39 (#)

> организовать организовать vtun-туннель
Поправь


Поправил. Спасибо.

Anonymous 2015-09-23 14:51:20 (#)

А что лучше для реализации сеть в сеть, OpenVPN ?

MooSE 2015-09-29 16:36:23 (#)

Что именно имеется ввиду под "сеть в сеть"?
Новый комментарий

Жирный текстКурсивный текстПодчёркнутый текстЗачёркнутый текстПрограммный кодСсылкаИзображение




© 2006-2024 Вадим Калинников aka MooSE
Политика конфиденциальности