Соединение нескольких зон 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

Изучение 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. Прочтите эту статью, чтобы узнать больше