N2Nによる複数のVultrゾーンの接続

N2Nは、オープンソースのレイヤー2/3 VPNアプリケーションです。他の多くのVPNプログラムとは異なり、N2NはNATルーターの背後にあるコンピューターを接続できます。これにより、ESPプロトコル(ipsecで使用される)などの特別なプロトコルに依存することなく、クラウド環境に接続できるという大きなメリットがあります。この接続を実現するために、N2Nは、NATされたノード間で情報をルーティングできるスーパーノードを使用します。このVPN接続を使用して、リージョン間で複数のVultrインスタンスを接続できます。

前提条件

この例では、複数のゾーンで3つのノードを使用します。

  • パリ
  • マイアミ
  • Sydney

ソフトウェアのインストール

次のコマンドは、各インスタンスで実行されます。

最新のソースコードからビルドするので、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コマンドが作成しているだろうsupernodeedgeしてバイナリを/usr/sbinディレクトリ。ファイルをクリーンアップして終了します。

rm -rf /tmp/n2n

インストール-Node Paris

最初のノードはいわゆるスーパーノードになります。このスーパーノードは、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。これは、スーパーノードが待機するポートです。すべてが機能していることを確認するには、スーパーノードサービスを開始します。

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

次に、エッジサービスを作成します。このエッジサービスは、他のVultrゾーンの他のエッジ間の通信にプライベートIPを要求します。

スーパーノードサービスと同様に、これにも独自のサービスファイルが必要です。

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ポートでlocalhostに接続します1200
  • -c Vultr:これは、エッジが参加するコミュニティです。同じコミュニティ内のすべてのエッジは、同じLAN(レイヤー2ネットワークセグメント)に表示されます。同じコミュニティにないエッジは、相互に通信しません。
  • -a 192.168.1.1:このインターフェースに割り当てられたIP。これは、要求されているN2N仮想LAN IPアドレスです。
  • -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」をチェックすると、N2N仮想IPが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_ipnode_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

インストール-Node Miami

マイアミノードは、現在パリゾーンで実行されているスーパーノードに接続します。これを実現するには、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

をパリで実行されているインスタンスのパブリックIPに置き換えnode_paris_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

これで、インスタンスで実行されている両方のエッジにpingできるようになります。

パリで、マイアミのVultrインスタンスにpingを実行します

ping 192.168.1.2

マイアミでは、パリのエッジにpingを実行します

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

を、パリで実行されているインスタンスのパブリックIPに置き換えnode_paris_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できるようになります。

ping 192.168.1.1
ping 192.168.1.2
ping 192.168.1.3

各ノードエッジ間の接続をテストする場合は、マイアミとパリのインスタンスでファイアウォールルールを有効にします。これにより、エッジ間の通信が可能になります。

マイアミで、次のルールを追加します。(node_paris_ipnode_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

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartは、PHP、jQuery、およびHTML 5で記述された無料のオープンソースのショッピングカートプラットフォームです。シンプルで軽量、使いやすいeコマースソフトウォー

DebianでNFS共有をセットアップする

DebianでNFS共有をセットアップする

NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します

Fedora 28にMatomo Analyticsをインストールする方法

Fedora 28にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

Ubuntu 14.10へのMcMyAdminのインストール

Ubuntu 14.10へのMcMyAdminのインストール

McMyAdminは、サーバーの管理に使用されるMinecraftサーバーコントロールパネルです。McMyAdminは無料ですが、複数のエディションがあり、一部はパイです

LinuxでTeamTalk Serverをセットアップする

LinuxでTeamTalk Serverをセットアップする

TeamTalkは、ユーザーが高品質のオーディオ/ビデオ会話、テキストチャット、ファイルの転送、および画面の共有を可能にする会議システムです。それは

CentOS 7サーバーにCyber​​Panelをインストールして構成する方法

CentOS 7サーバーにCyber​​Panelをインストールして構成する方法

別のシステムを使用していますか?はじめにCyber​​Panelは、オープンソースでありOpenLiteSpeedを使用する市場で最初のコントロールパネルの1つです。なんてこった

Ubuntu 17.04でRbenv、Rails、MariaDB、Nginx、SSL、およびPassengerを使用してRubyをインストールおよび構成する方法

Ubuntu 17.04でRbenv、Rails、MariaDB、Nginx、SSL、およびPassengerを使用してRubyをインストールおよび構成する方法

Ruby on Railsは、プログラマーの生産性を向上させるために開発されたRubyの人気のあるWebフレームワークです。ただし、さまざまな宝石と依存関係を取得する

Vultr VPSにアクセスする方法

Vultr VPSにアクセスする方法

Vultrは、VPSにアクセスして構成、インストール、および使用するためのいくつかの異なる方法を提供します。アクセス認証情報VPS arのデフォルトのアクセス認証情報

CentOS 7、Ubuntu 16.04、Debian 9にGolang 1.8.3をインストールする方法

CentOS 7、Ubuntu 16.04、Debian 9にGolang 1.8.3をインストールする方法

GolangはGoogleが開発したプログラミング言語です。汎用性、シンプルさ、信頼性のおかげで、Golangは最も人気のあるものの1つになりました

Debian、CentOS、およびFreeBSDでSudoを使用する方法

Debian、CentOS、およびFreeBSDでSudoを使用する方法

LinuxおよびUnixのシステム管理者の間では、sudoユーザーを使用してサーバーにアクセスし、コマンドをルートレベルで実行することは非常に一般的です。sudの使用

Ubuntu 16.04 LTSにDokuWikiをインストールする方法

Ubuntu 16.04 LTSにDokuWikiをインストールする方法

別のシステムを使用していますか?DokuWikiは、データベースを必要としないPHPで記述されたオープンソースのWikiプログラムです。データをテキストファイルに保存します。ドクウィク

DebianでのChrootのセットアップ

DebianでのChrootのセットアップ

この記事では、Debianでchroot jailをセットアップする方法を説明します。私はあなたがDebian 7.xを使っていると思います。Debian 6または8を実行している場合、これは機能する可能性があります、bu

DebianにPiVPNをインストールする方法

DebianにPiVPNをインストールする方法

はじめにDebianでVPNサーバーを設定する簡単な方法は、PiVPNを使用することです。PiVPNは、OpenVPNのインストーラーおよびラッパーです。それはあなたのための簡単なコマンドを作成します

Ubuntu 18.04 LTSにCyber​​Panelをインストールして構成する方法

Ubuntu 18.04 LTSにCyber​​Panelをインストールして構成する方法

別のシステムを使用していますか?はじめにCyber​​Panelは、オープンソースでありOpenLiteSpeedを使用する市場で最初のコントロールパネルの1つです。なんてこった

Ubuntu 16.04 LAMP VPSにBigTree CMSをインストールする方法

Ubuntu 16.04 LAMP VPSにBigTree CMSをインストールする方法

別のシステムを使用していますか?BigTree CMS 4.2は、高速で軽量な無料のオープンソースのエンタープライズグレードのコンテンツ管理システム(CMS)であり、

Debian 9でソースからBrotliをビルドする方法

Debian 9でソースからBrotliをビルドする方法

別のシステムを使用していますか?Brotliは、Gzipよりも圧縮率が高い新しい圧縮方法です。そのソースコードはGithubで公開されています。ティ

PleskサーバーでHTTP / 2を有効にする方法

PleskサーバーでHTTP / 2を有効にする方法

PleskはネイティブのHTTP / 2サポートを備えています。PleskでのHTTP / 2のロールアウトは、他のコンポーネントに比べてはるかに簡単ですが、その導入プロセスには慎重な計画が必要です

FreeBSD 12にosTicketをインストールする方法

FreeBSD 12にosTicketをインストールする方法

別のシステムを使用していますか?osTicketは、オープンソースのカスタマーサポートチケットシステムです。osTicketのソースコードはGithubで公開されています。このチュートリアルでは

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。