Соединение нескольких зон Vultr с N2N

N2N - это VPN-приложение уровня 2/3 с открытым исходным кодом. В отличие от многих других программ VPN, N2N может подключать компьютеры, расположенные за NAT-маршрутизатором. Это дает огромное преимущество для подключения к облачной среде без необходимости полагаться на специальные протоколы, такие как протокол ESP (используемый ipsec). Для достижения этого соединения N2N использует суперузел, который может маршрутизировать информацию между узлами NAT. Это VPN-соединение может использоваться для соединения нескольких экземпляров Vultr между регионами.

Предпосылки

  • Три экземпляра сервера Ubuntu 16.04 LTS x64. (Любой размер будет работать)
  • Пользователь sudo (или root) .

В этом примере мы будем использовать три узла в нескольких зонах:

  • Париж
  • Майами
  • Сидней

Установка программного обеспечения

Следующие команды будут выполняться в каждом случае.

Начните с установки build-essentialиз репозитория, а также libssl-dev, как мы будем строить из новейшего исходного кода.

apt-get install -y build-essential libssl-dev

Затем загрузите исходный код с github.

cd /tmp
git clone https://github.com/ntop/n2n.git

Скомпилируйте все двоичные файлы.

cd n2n 
make
make install

make installКоманда будет создана supernodeи edgeдвоичные файлы в /usr/sbinкаталоге. Готово, очистив файлы.

rm -rf /tmp/n2n

Установка - Узел Париж

Первый узел будет нашим так называемым суперузлом. Это supernode запустит сервис supernode , который будет прослушивать порт UDP 1200. По умолчанию приложение N2N не создает служебный файл. Таким образом, мы должны будем предоставить свои собственные.

Создайте файл службы 'n2n_supernode':

nano /etc/systemd/system/n2n_supernode.service

Добавьте следующий контент:

[Unit]
Description=n2n supernode
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/sbin/supernode -l 1200

[Install]
WantedBy=multi-user.target

Директива -l определяет порт UDP 1200. Это порт, на котором будет слушать суперузел. Чтобы убедиться, что все работает, запустите службу supernode:

systemctl start n2n_supernode

Проверьте статус супер узла.

systemctl status n2n_supernode

Это покажет статус, подобный следующему.

● n2n_supernode.service - n2n supernode
   Loaded: loaded (/etc/systemd/system/n2n_supernode.service; disabled; vendor prese
   Active: active (running) since Wed 2018-08-15 17:07:46 UTC; 5s ago
 Main PID: 4711 (supernode)
    Tasks: 1
   Memory: 80.0K
      CPU: 1ms
   CGroup: /system.slice/n2n_supernode.service
           └─4711 /usr/sbin/supernode -l 1200

Далее мы создадим пограничный сервис. Эта пограничная служба будет запрашивать частный IP-адрес для связи между другими границами в других зонах Vultr.

Как и в случае службы суперузлов, для этого также потребуется собственный файл службы.

nano /etc/systemd/system/n2n_edge.service

Добавьте следующий контент:

[Unit]
Description=n2n edge
Wants=network-online.target
After=network-online.target n2n_supernode.service

[Service]
ExecStart=/usr/sbin/edge -l localhost:1200 -c Vultr -a 192.168.1.1 -k mypassword -f

[Install]
WantedBy=multi-user.target

В этом служебном файле мы определили следующие параметры командной строки:

  • -l localhost:1200: Это подключится к локальному хосту через порт UDP 1200.
  • -c Vultr: Это сообщество, к которому присоединится край. Все ребра в пределах одного сообщества появляются в одной локальной сети (сегмент сети уровня 2). Края, которые не находятся в одном сообществе, не будут общаться друг с другом.
  • -a 192.168.1.1: IP, назначенный этому интерфейсу. Это IP-адрес виртуальной локальной сети N2N.
  • -k mypassword: Пароль, используемый для каждого ребра. Все взаимодействующие ребра должны использовать один и тот же ключ и имя сообщества.
  • -f: Отключает режим демона и заставляет ребро работать на переднем плане. Это необходимо для служебного файла, иначе systemctlслужба не запустится.

Чтобы убедиться, что все работает, запустите сервис.

systemctl start n2n_edge

Затем запросите статус сервиса.

systemctl status n2n_edge   

Вывод будет аналогичен следующему.

● n2n_edge.service - n2n edge
   Loaded: loaded (/etc/systemd/system/n2n_edge.service; disabled; vendor preset: en
   Active: active (running) since Wed 2018-08-15 17:10:46 UTC; 3s ago
 Main PID: 4776 (edge)
    Tasks: 1
   Memory: 396.0K
      CPU: 8ms
   CGroup: /system.slice/n2n_edge.service
           └─4776 /usr/sbin/edge -l localhost:1200 -c Vultr -a 192.168.1.1 -k mypass

Если мы проверим ifconfig, вы увидите, что edge0интерфейс использует виртуальный IP-адрес N2N .

ifconfig

Вывод будет аналогичен следующему.

edge0     Link encap:Ethernet  HWaddr 42:14:55:64:7d:21
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::4014:55ff:fe64:7d21/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1400  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:648 (648.0 B)

После этого включите и создайте правила брандмауэра. Обязательно замените текст node_miami_ipи node_sydney_ipтекст на общедоступный IP-адрес экземпляра в Сиднее и Майами. (Мы будем использовать их позже).

ufw allow 22/tcp
ufw allow from node_miami_ip to any port 1200
ufw allow from node_sydney_ip to any port 1200
ufw enable

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

systemctl enable n2n_supernode.service
systemctl enable n2n_edge.service

Установка - Узел Майами

Узел Майами соединится с суперузлом, который в настоящее время работает в зоне Парижа. Для этого нам нужно только создать служебный файл для edgeприложения.

Начните с создания файла пограничного сервиса.

nano /etc/systemd/system/n2n_edge.service

Добавьте следующий контент.

[Unit]
Description=n2n edge
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/sbin/edge -l node_paris_ip:1200 -c Vultr -a 192.168.1.2 -k mypassword -f

[Install]
WantedBy=multi-user.target

Примечание . Замените node_paris_ipпубличный IP-адрес экземпляра, запущенного в Париже.

Это позволит подключиться к узлу в Париже через порт UDP 1200, присоединиться к сообществу ' Vultr', запросить IP 192.168.1.2и выполнить аутентификацию с помощью ' mypassword'.

Далее запустите сервис.

systemctl start n2n_edge

Проверьте состояние на наличие признаков того, что служба запущена правильно и работает.

systemctl status n2n_edge   

Затем убедитесь, что edge0IP-адрес востребован.

ifconfig

Это покажет 192.168.1.2IP-адрес.

edge0     Link encap:Ethernet  HWaddr 42:14:55:64:7d:21
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::4014:55ff:fe64:7d21/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1400  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:648 (648.0 B)

Следующее, что нужно сделать, это включить службу при загрузке.

systemctl enable n2n_edge.service

При желании включите брандмауэр и добавьте правила SSH.

ufw allow 22/tcp
ufw enable

Теперь мы сможем пропинговать оба ребра в наших экземплярах.

В Париже, пинг Vultr экземпляр в Майами

ping 192.168.1.2

В Майами, пинг край в Париже

ping 192.168.1.1

Установка - Узел Сидней

Наконец, мы добавим наш последний континент к соединению: Австралия. Начните заново с создания пограничного сервиса, этот пограничный сервис также подключится к предыдущему настроенному суперузлу в Париже.

nano /etc/systemd/system/n2n_edge.service

Добавьте следующий контент.

[Unit]
Description=n2n edge
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/sbin/edge -l node_paris_ip:1200 -c Vultr -a 192.168.1.3 -k mypassword -f

[Install]
WantedBy=multi-user.target

Примечание . Замените node_paris_ipпубличный IP-адрес экземпляра, запущенного в Париже.

Это позволит подключиться к узлу в Париже через порт UDP 1200, присоединиться к сообществу ' Vultr', запросить IP 192.168.1.3и выполнить аутентификацию с помощью ' mypassword'.

systemctl start n2n_edge

Проверьте статус, чтобы убедиться, что служба запущена.

systemctl status n2n_edge   

Убедитесь, что edge0IP-адрес востребован.

edge0     Link encap:Ethernet  HWaddr 46:56:b0:e9:8f:8a
          inet addr:192.168.1.3  Bcast:192.168.1.255  Mask:255.255.255.0
        inet6 addr: fe80::4456:b0ff:fee9:8f8a/64 Scope:Link
        UP BROADCAST RUNNING MULTICAST  MTU:1400  Metric:1
        RX packets:0 errors:0 dropped:0 overruns:0 frame:0
        TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:1000
        RX bytes:0 (0.0 B)  TX bytes:648 (648.0 B)

Снова включите этот сервис при загрузке.

systemctl enable n2n_edge.service

При желании включите брандмауэр и добавьте правила SSH.

ufw allow 22/tcp
ufw enable

Теперь мы сможем пропинговать каждый экземпляр Vultr с каждого узла.

ping 192.168.1.1
ping 192.168.1.2
ping 192.168.1.3

Если вы хотите проверить соединение между каждым краем узла, включите правила брандмауэра в экземплярах Майами и Парижа. Это позволит общаться между краями.

В Майами добавьте следующие правила. (Обязательно замените текст node_paris_ipи node_sydney_ipтекст на общедоступные IP-адреса экземпляров в Сиднее и Париже.)

ufw allow from node_paris_ip to any port 1200
ufw allow from node_sydney_ip to any port 1200

В Сиднее добавьте следующие правила.

ufw allow from node_paris_ip to any port 1200
ufw allow from node_miami_ip to any port 1200

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

Вывод

Мы успешно настроили VPN-соединение между несколькими зонами. Это должно предложить довольно много новых возможностей для сценариев высокой доступности для нашей недавно сконфигурированной среды.



Leave a Comment

Как установить платформу интернет-магазина LiteCart в Ubuntu 16.04

Как установить платформу интернет-магазина LiteCart в Ubuntu 16.04

LiteCart является бесплатной платформой для покупок с открытым исходным кодом, написанной на PHP, jQuery и HTML 5. Это простой, легкий и простой в использовании софтвар для электронной коммерции.

Как установить Anchor CMS на CentOS 7 LAMP VPS

Как установить Anchor CMS на CentOS 7 LAMP VPS

Используете другую систему? Anchor CMS - это сверхпростая и чрезвычайно легкая бесплатная система управления контентом (CMS) с открытым исходным кодом.

Настройка NFS Share на Debian

Настройка NFS Share на Debian

NFS - это сетевая файловая система, которая позволяет компьютерам получать доступ к файлам через компьютерную сеть. Это руководство объясняет, как вы можете выставлять папки через NF

Как установить Matomo Analytics на Fedora 28

Как установить Matomo Analytics на Fedora 28

Используете другую систему? Matomo (ранее Piwik) - это аналитическая платформа с открытым исходным кодом, открытая альтернатива Google Analytics. Источник Matomo размещен o

Как установить PHP 7.3 на веб-сервере Arch Linux

Как установить PHP 7.3 на веб-сервере Arch Linux

Предварительные условия Сервер Vultr, работающий до последней версии Arch Linux (см. Эту статью). Работающий веб-сервер с доступом Apache или Nginx Sudo. Команды требуют

Настройте сервер TeamTalk в Linux

Настройте сервер TeamTalk в Linux

TeamTalk - это система конференц-связи, которая позволяет пользователям вести высококачественные аудио / видео-беседы, текстовый чат, передавать файлы и обмениваться экранами. Это я

Как установить Backdrop CMS 1.8.0 на CentOS 7 LAMP VPS

Как установить Backdrop CMS 1.8.0 на CentOS 7 LAMP VPS

Используете другую систему? Backdrop CMS 1.8.0 - это простая и гибкая, удобная для мобильных устройств, бесплатная система с открытым исходным кодом (CMS), которая позволяет нам

Как получить доступ к Vultr VPS

Как получить доступ к Vultr VPS

Vultr предоставляет несколько различных способов доступа к вашему VPS для настройки, установки и использования. Учетные данные для доступа Учетные данные для доступа к вашему VPS по умолчанию

Как установить Ranger Terminal File Manager в Linux

Как установить Ranger Terminal File Manager в Linux

Ranger - это файловый менеджер на основе командной строки с привязками клавиш VI. Он предоставляет минималистичный и приятный интерфейс curses с видом на иерархию каталогов.

Как использовать HTTPS на веб-сервере Arch Linux

Как использовать HTTPS на веб-сервере Arch Linux

Предварительные условия Сервер Vultr, работающий до последней версии Arch Linux (см. Эту статью). Работающий веб-сервер, доступ к Apache или Nginx Sudo Требуются команды t

Настройте Magento на CentOS 6

Настройте Magento на CentOS 6

Если вы хотите разместить свой инвентарь в Интернете или просто магазин технических аксессуаров, Magento - отличное решение для электронной коммерции в Интернете. Это статья

Как собрать Brotli из исходного кода на Ubuntu 18.04 LTS

Как собрать Brotli из исходного кода на Ubuntu 18.04 LTS

Используете другую систему? Brotli - это новый метод сжатия с лучшей степенью сжатия, чем GZIP. Его исходный код размещен на этом Githu

Использование MySQL Views в Debian 7

Использование MySQL Views в Debian 7

Введение В MySQL есть замечательная функция, известная как views. Представления хранятся запросы. Думайте о них как о псевдониме для длинного запроса. В этом руководстве

Как установить AirSonic на CentOS 7

Как установить AirSonic на CentOS 7

Используете другую систему? AirSonic - это бесплатный и потоковый сервер с открытым исходным кодом. В этом уроке я проведу вас через процесс развертывания

Как установить OrangeScrum на CentOS 7

Как установить OrangeScrum на CentOS 7

OrangeScrum - это бесплатный инструмент управления проектами с открытым исходным кодом, который широко используется в малом и среднем бизнесе. В этой статье я проведу вас через

Отключить или ограничить root-вход через SSH в Linux

Отключить или ограничить root-вход через SSH в Linux

Разрешение входа в систему через SSH обычно считается плохой практикой безопасности во всей индустрии технологий. Вместо этого вы можете выполнять чувствительные административные

Как установить Subrion 4.1 CMS на Ubuntu 16.04 LAMP VPS

Как установить Subrion 4.1 CMS на Ubuntu 16.04 LAMP VPS

Используете другую систему? Subrion 4.1 CMS - это мощная и гибкая система управления контентом с открытым исходным кодом (CMS), которая обеспечивает интуитивно понятный и понятный контент.

Как установить Vtiger CRM с открытым исходным кодом на CentOS 7

Как установить Vtiger CRM с открытым исходным кодом на CentOS 7

Vtiger CRM - это популярное приложение для управления взаимоотношениями с клиентами, которое может помочь предприятиям увеличить продажи, обеспечить обслуживание клиентов и увеличить прибыль. я

Как установить DokuWiki на Ubuntu 16.04 LTS

Как установить DokuWiki на Ubuntu 16.04 LTS

Используете другую систему? DokuWiki - это вики-программа с открытым исходным кодом, написанная на PHP, для которой не требуется база данных. Хранит данные в текстовых файлах. DokuWik

Создание внешнего интерфейса HTML 5 RDP / SSH с использованием гуакамоле в Ubuntu 16.04 LTS

Создание внешнего интерфейса HTML 5 RDP / SSH с использованием гуакамоле в Ubuntu 16.04 LTS

Введение Цель этого руководства - избавиться от общедоступных соединений SSH и общедоступных RDP. Поместив все это за очень удобный клиент HTML5

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

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

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

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

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше