Предуслови
Инсталација софтвера
Инсталација - Ноде Парис
Инсталација - Ноде Миами
Инсталација - Ноде Сиднеи
Закључак
Н2Н је апликација отвореног кода слоја 2/3 ВПН. За разлику од многих других ВПН програма, Н2Н може да повеже рачунаре који се налазе иза НАТ рутера. Ово нуди огромну предност за повезивање са окружењем у облаку без потребе да се ослањате на посебне протоколе као што је ЕСП протокол (који користи ипсец). Да би постигао ову везу, Н2Н користи суперчвор који може да усмери информације између НАТ чворова. Ова ВПН веза се може користити за повезивање више Вултр инстанци широм региона заједно.
Предуслови
У овом примеру користићемо три чвора у више зона:
Инсталација софтвера
Следеће команде ће се извршити на свакој инстанци.
Почните тако што ћете инсталирати build-essentialиз репо-а и такође libssl-dev, пошто ћемо градити од најновијег изворног кода.
apt-get install -y build-essential libssl-dev
Затим преузмите изворни код са гитхуб-а.
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
Инсталација - Ноде Парис
Први чвор ће бити наш такозвани суперчвор. Овај суперчвор ће покренути услугу суперчвора која ће слушати на УДП порту 1200. Н2Н апликација подразумевано не креира сервисни фајл. Тако да ћемо морати да обезбедимо своје.
Креирајте сервисну датотеку 'н2н_суперноде':
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
Директива '-л' дефинише УДП порт 1200. Ово је порт на коме ће суперчвор слушати. Да бисте били сигурни да све ради, покрените услугу суперноде:
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
Затим ћемо креирати услугу руба. Ова ивица услуга ће захтевати приватну ИП адресу за комуникацију између осталих ивица у другим Вултр зонама.
Као и за услугу суперноде, и за ово ће бити потребан сопствени сервисни фајл.
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: Ово ће се повезати са локалним хостом на УДП порту 1200.
-c Vultr: Ово је заједница којој ће се ивица придружити. Све ивице унутар исте заједнице појављују се на истом ЛАН-у (слој 2 мрежни сегмент). Ивице које нису у истој заједници неће комуницирати једна са другом.
-a 192.168.1.1: ИП додељена овом интерфејсу. Ово је Н2Н виртуелна ЛАН ИП адреса на коју се полаже право.
-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
Ако проверимо 'ифцонфиг', видећете Н2Н виртуелну ИП адресу коју захтева edge0интерфејс.
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текст јавном ИП-ом инстанце у Сиднеју и Мајамију. (Ове ћемо користити касније).
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јавним ИП-ом инстанце која ради у Паризу
Ово ће се повезати са чвором у Паризу на УДП порту 1200, придружити се заједници ' Vultr', затражити ИП 192.168.1.2и потврдити аутентичност са ' mypassword'.
Затим покрените услугу.
systemctl start n2n_edge
Проверите статус за индикацију да је услуга исправно покренута и да ради.
systemctl status n2n_edge
Затим се уверите да је edge0ИП тражен.
ifconfig
Приказаће 192.168.1.2ИП адресу.
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
Опционо, омогућите заштитни зид и додајте ССХ правила.
ufw allow 22/tcp
ufw enable
Сада ћемо моћи да пингујемо обе ивице које раде у нашим инстанцама.
У Паризу, пингујте Вултр инстанцу у Мајамију
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јавним ИП-ом инстанце која ради у Паризу.
Ово ће се повезати са чвором у Паризу на УДП порту 1200, придружити се заједници ' Vultr', затражити ИП 192.168.1.3и потврдити аутентичност са ' mypassword'.
systemctl start n2n_edge
Проверите статус да бисте били сигурни да је услуга покренута.
systemctl status n2n_edge
Уверите се да је edge0ИП тражен.
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
Опционо, омогућите заштитни зид и додајте ССХ правила.
ufw allow 22/tcp
ufw enable
Сада ћемо моћи да пингујемо сваку Вултр инстанцу са сваког чвора.
ping 192.168.1.1
ping 192.168.1.2
ping 192.168.1.3
Ако желите да тестирате везу између сваке ивице чвора, омогућите правила заштитног зида на инстанцама Мајамија и Париза. Ово ће омогућити комуникацију између ивица.
У Мајамију додајте следећа правила. (Обавезно замените node_paris_ipи node_sydney_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
Сада можете искључити или поново покренути суперчвор. Мрежне везе ће и даље постојати. Само нове ивице ће имати проблеме са повезивањем док је услуга суперчвора неактивна.
Закључак
Успешно смо конфигурисали ВПН везу између више зона. Ово би требало да понуди доста нових могућности за сценарије високе доступности за наше ново конфигурисано окружење.