Поиск 0
8 499 455-06-82
с 9:00 до 18:00 по будням
info@digitalangel.ru
Teltonika VPN

OpenVPN разделение трафика

OpenVPN является программным приложением с открытым исходным кодом, которое реализует методы виртуальной частной сети (VPN) для создания безопасных соединений точка-точка или между сайтами в маршрутизируемых или мостовых конфигурациях и средствах удаленного доступа.

В этой статье приведено руководство по настройке клиента OpenVPN на маршрутизаторе RUTxxx таким образом, чтобы часть клиентов локальной сети маршрутизатора достигала Интернета через сервер OpenVPN (веб-прокси), а другая часть достигала Интернета через глобальную сеть маршрутизатора. (мобильное, проводное или WiFi соединение). Следует также отметить, что это руководство предназначено для более продвинутых пользователей и, следовательно, пропускает некоторые из более понятных шагов, чтобы сохранить общую согласованность статьи. Например, пошаговая конфигурация экземпляра клиента OpenVPN будет опущена, и будут предоставлены только комментарии по определенным соответствующим параметрам. Если вы чувствуете, что недостаток информации мешает вам настроить конфигурацию, мы рекомендуем вам ознакомиться с нашими примерами конфигурации OpenVPN для справки и нашим руководством по созданию сертификатов TLS.

Обзор конфигурации и предварительные условия
Прежде чем мы начнем, давайте рассмотрим конфигурацию, которую мы пытаемся достичь, и предварительные условия, которые делают это возможным.

Требования:

- Один маршрутизатор RUTxxx (исключая RUT850) с активным подключением к Интернету, который будет действовать как клиент OpenVPN
- Как минимум одно конечное устройство (ПК, ноутбук) для настройки маршрутизаторов и проверки настроек

Схема конфигурации:

mceclip0.png

На рисунке выше показана схема разделения трафика OpenVPN. Маршрутизатор RUTxxx действует как клиент OpenVPN (виртуальный IP: 10.0.0.6; P-t-P: 10.0.0.5), который подключен к удаленному серверу OpenVPN. IP-адреса маршрутизаторов LAN варьируются от 192.168.1.1 до 192.168.1.254.

Когда схема реализована, устройства в диапазоне IP от 192.168.1.1 до 192.168.1.127 достигают Интернета через глобальную сеть маршрутизатора, а устройства в диапазоне IP от 192.168.1.128 до 192.168.1.254 достигают Интернета через сервер OpenVPN, эффективно «принимая» Публичный IP-адрес сервера.

Конфигурация маршрутизатора
Большая часть конфигурации маршрутизатора будет выполнена через интерфейс командной строки. Подробные инструкции по всем интерфейсам командной строки, поддерживаемым маршрутизаторами RUTxxx, можно найти здесь. Выберите тот, который доступен или наиболее предпочтителен для вас, и вы все равно сможете шаг за шагом следовать руководству независимо от того, какой метод вы выбрали, так как используемые команды останутся идентичными.

OpenVPN клиент
- Во-первых, вы должны создать экземпляр клиента OpenVPN на вашем маршрутизаторе. Вы можете сделать это либо через командную строку, либо через WebUI маршрутизатора, Сервисы → VPN → OpenVPN. Мы не будем вдаваться в подробности, потому что конфигурация клиента будет зависеть от сервера OpenVPN, к которому вы подключаетесь. Вы можете найти подробные инструкции о том, как создать и настроить экземпляр клиента OpenVPN, в нашей статье с примерами конфигурации OpenVPN, которая также содержит информацию о том, как настроить сервер OpenVPN на маршрутизаторе RUTxxx, если это то, что вы используете для этой конфигурации.
- После того, как вы настроили свой клиент OpenVPN, вам, вероятно, следует проверить работоспособность соединения OpenVPN, так как это впоследствии облегчит поиск и устранение неисправностей. Самый простой способ сделать это - войти в WebUI маршрутизатора и проверить статус OpenVPN в Status → Network → OpenVPN:

mceclip2.png

Если соединение прошло успешно, мы можем запустить конфигурацию разделения трафика. Сначала нам нужно добавить дополнительную таблицу маршрутизации. Это можно сделать, введя следующую команду:

echo "5 rt" >> /etc/iproute2/rt_tables

Это добавляет новую таблицу маршрутизации с именем rt. / etc / iproute2 / rt_tables - это файл, используемый утилитами iproute2, которые переводят понятные для пользователя имена, заданные в командной строке, в целочисленные значения, используемые ядром. Таким образом, число 5 - это просто способ для iproute2 идентифицировать таблицу.

Далее нам нужно добавить несколько записей в файл конфигурации сети / etc / config / network. Вы можете редактировать файл с помощью команды vi. Введите vi / etc / config / network и нажмите кнопку «I» на клавиатуре, чтобы начать редактирование. Добавьте следующие строки:

config interface 'vpnas'
       option proto 'none'
       option ifname 'tun_c_MyClient'

config route
       option interface 'vpnas'
       option target '0.0.0.0'
       option netmask '0.0.0.0'
       option table 'rt'
       option gateway '10.0.0.5'

config rule
       option in 'lan'
       option src '192.168.1.128/25'
       option lookup 'rt'
       option priority '10'

Когда вы закончите, нажмите кнопку «Esc» и введите :wq, чтобы сохранить изменения и выйти из редактора (Control + Z, чтобы выйти без сохранения). Значения, выделенные красным, зависят от вашей конфигурации и, скорее всего, должны быть изменены:
опция ifname 'tun_c_MyClient' - имя вашего интерфейса OpenVPN. Вы можете проверить это с помощью этой команды: ifconfig | grep tun. Ответ должен выглядеть примерно так:

tun_c_MyClient Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 

ПРИМЕЧАНИЕ. Если ответ пуст, ваше соединение OpenVPN может быть разорвано.

опция gateway '10 .0.0.5 '- ваша виртуальная удаленная конечная точка (или P-t-P). Вы можете проверить это с помощью этой команды: ifconfig tun_c_MyClient. Замените часть MyClient своим собственным именем интерфейса OpenVPN. Ответ должен выглядеть примерно так:

tun_c_MyClient Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 
               inet addr:10.0.0.6  P-t-P:10.0.0.5  Mask:255.255.255.255 
               UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
               RX packets:62249 errors:0 dropped:0 overruns:0 frame:0
               TX packets:62698 errors:0 dropped:1 overruns:0 carrier:0
               collisions:0 txqueuelen:100 
               RX bytes:53341014 (50.8 MiB)  TX bytes:11974147 (11.4 MiB)

option src '192.168.1.128/25' - устройства из этого диапазона IP будут использовать сервер OpenVPN в качестве шлюза по умолчанию в Интернет.
Далее нам нужно создать короткий пользовательский скрипт /etc/openvpn/up.sh, который бы добавил маршрут, который позволит указанному диапазону локальной сети достигать Интернет через сервер OpenVPN:

echo -e '#!/bin/ash'"\n"'ip route add default via 10.0.0.5 table rt' > /etc/openvpn/up.sh

Далее нам нужно предоставить исполняемые разрешения для вновь созданного скрипта:

chmod +x /etc/openvpn/up.sh 

Наконец, нам нужно отредактировать скрипт OpenVPN роутера /etc/init.d/openvpn, чтобы он выполнял ранее созданный скрипт /etc/openvpn/up.sh каждый раз, когда устанавливается туннель OpenVPN. Введите vi /etc/init.d/openvpn и нажмите кнопку «I» на клавиатуре, чтобы начать редактирование. Прокрутите вниз, пока не найдете функцию start_instance (). Добавьте следующие строки, выделенные красным, в конце функции start_instance ():

start_instance() {
       local s="$1"

       .....
       .....
       .....
       
       config_list_foreach "$s" "_extra" append_extended_params

       openvpn_add_instance "$s" "/var/etc" "openvpn-$s.conf" "/tmp/openvpn-$s.status"

       echo 'script-security 2' >> $OPENVPN_CONFIG
       echo 'up /etc/openvpn/up.sh' >> $OPENVPN_CONFIG
}

Когда вы закончите, нажмите кнопку «Esc» и введите :wq, чтобы сохранить изменения и выйти из редактора (Control + Z, чтобы выйти без сохранения).

Когда вы закончите настройку, не забудьте перезапустить соответствующие сервисы. Вы можете сделать это, перезапустив весь маршрутизатор (команда перезагрузки) или просто перезапустив сеть и службы openvpn:

/etc/init.d/network restart
/etc/init.d/openvpn restart

ПРИМЕЧАНИЕ. Перезапуск сетевой службы приведет к кратковременной потере соединения для передачи данных.

Тестирование настройки
Если вы выполнили шаги, представленные выше, ваша настройка должна быть завершена. Но, как и в случае с любой другой конфигурацией, всегда целесообразно проверить настройку, чтобы убедиться в ее правильной работе. Чтобы протестировать эту конкретную конфигурацию, необходимо выполнить несколько шагов:

Проверьте вновь созданную таблицу маршрутизации с помощью команды ip route show table rt (где rt - имя таблицы). Если все в порядке, ответ должен содержать эту строку (значения, выделенные красным цветом, должны быть из вашей собственной конфигурации):

default via 10.0.0.5 dev tun_c_MyClient proto static 

Проверьте, было ли добавлено правильное правило IP. Вы можете сделать это с помощью правила ip. Ответ должен выглядеть примерно так (правило из нашей конфигурации выделено красным):

0: from all lookup local
10: from 192.168.1.128/25 iif br-lan lookup rt
32766: from all lookup main
32767: from all lookup default

Проверьте, подключены ли устройства с IP-адресами из разных диапазонов к Интернету через шлюз по умолчанию. Если у вас есть только одно устройство в данный момент, вы можете настроить статический IP-адрес (руководство для пользователей Linux здесь; для Windows здесь) для этого устройства в одном диапазоне, а затем в другом. Согласно нашей конфигурации, если IP-адрес устройства находится в диапазоне 192.168.1.1 - 192.168.1.127, его общедоступный IP-адрес должен соответствовать IP-адресу маршрутизатора; если IP-адрес попадает в диапазон 192.168.1.128 - 192.168.1.254, его общедоступный IP-адрес должен соответствовать IP-адресу сервера OpenVPN. Вы можете проверить публичный IP-адрес на этом сайте.


Если все вышеперечисленное в порядке, поздравляем, ваша конфигурация работает!


Сравнение товаров {{compareItems.length}}

Например termit irz модем rl21 atm21 антенна 906 sma 45791
Например termit irz модем rl21 atm21 антенна 906 sma 45791
Мы используем cookie-файлы