Software-Defined Networkingを始めて、ZeroTier OneでVPNを作成する

前書き

最近、ますます多くのソフトウェアプロジェクトが、メンバーが地理的に離れた場所で協力するチームによって構築されています。 このワークフローには多くの明らかな利点がありますが、そのようなチームはコンピューターをインターネット経由でリンクし、同じ部屋にいるかのように扱いたい場合があります。 たとえば、Kubernetesなどの分散システムをテストしたり、複雑なマルチサービスアプリケーションを構築したりできます。 未完成のサービスをインターネットにさらすリスクを冒す必要がないため、マシンを隣り合わせに扱うことができれば、生産性に役立つことがあります。 このパラダイムは、ソフトウェア定義ネットワーク(SDN)によって実現できます。SDNは、ソフトウェアで構成された動的ネットワークファブリックを提供する比較的新しいテクノロジーです。

ZeroTier Oneは、SDNの最新の開発を使用して、ユーザーが安全で管理可能なネットワークを作成し、接続されたデバイスを同じように扱うことができるオープンソースアプリケーションです。物理的な位置。 ZeroTierは、ネットワーク管理用のWebコンソールとクライアント用のエンドポイントソフトウェアを提供します。 これは暗号化されたピアツーピアテクノロジーです。つまり、従来のVPNソリューションとは異なり、通信は中央のサーバーまたはルーターを経由する必要はありません。メッセージはホストからホストに直接送信されます。 その結果、非常に効率的であり、遅延が最小限に抑えられます。 その他の利点には、ZeroTierのシンプルな展開および構成プロセス、簡単なメンテナンス、およびWebコンソールを介した承認されたノードの集中登録と管理が含まれます。

このチュートリアルに従うことで、クライアントとサーバーを簡単なポイントツーポイントネットワークで接続します。 Software-Defined Networkingは従来のクライアント/サーバー設計を利用しないため、インストールおよび構成する中央VPNサーバーはありません。これにより、ツールの展開と補助ノードの追加が合理化されます。 接続が確立されると、いくつかの巧妙なLinux機能を使用してZeroTierのVPN機能を利用し、トラフィックがサーバーからZeroTierネットワークを離れ、その方向にトラフィックを送信するようにクライアントに指示することができます。

前提条件

このチュートリアルを完了する前に、次のリソースが必要です。

  • Ubuntu 16.04を実行しているサーバー。 このサーバーでは、https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-を使用して設定できるsudo特権を持つ非ルートユーザーも必要です。 04 [Ubuntu 16.04の初期サーバーセットアップガイド]。

  • ZeroTier Oneのアカウント。https://my.zerotier.com/ [My ZeroTier]にアクセスして設定できます。 このチュートリアルの目的のために、無料のこのサービスのバージョンを使用できます。このバージョンには、費用やコミットメントはありません。

  • クライアントとしてSDNに参加するローカルコンピューター。 このチュートリアル全体の例では、サーバーとローカルコンピューターの両方がUbuntu Linuxを実行していますが、https://zerotier.com/download.shtml [ZeroTierダウンロードページ]にリストされているオペレーティングシステムはすべてクライアントで動作します。

これらの前提条件が整っていれば、サーバーとローカルマシンにソフトウェア定義のネットワークをセットアップする準備ができています。

手順1-ZeroTier Oneを使用してソフトウェア定義ネットワークを作成する

ZeroTierプラットフォームは、ソフトウェア定義ネットワークの中央制御点を提供します。 そこで、クライアントを認証および認証解除し、アドレス指定スキームを選択し、クライアントをセットアップするときにクライアントを誘導できるネットワークIDを作成できます。

ZeroTierアカウントにログインし、画面上部の*ネットワーク*をクリックして、*作成*をクリックします。 自動生成されたネットワーク名が表示されます。 クリックすると、ネットワークの設定画面が表示されます。 後で参照する必要があるため、黄色で表示されている*ネットワークID *をメモします。

ネットワーク名をよりわかりやすい名前に変更する場合は、画面の左側で名前を編集します。必要に応じて説明を追加することもできます。 行った変更はすべて保存され、自動的に適用されます。

次に、SDNが動作するIPv4アドレス範囲を選択します。 画面の右側の[* IPv4 Auto-Assign *]というタイトルの領域で、ノードが含まれるアドレス範囲を選択します。 このチュートリアルでは、任意の範囲を使用できますが、[範囲からの自動割り当て]ボックスをチェックしたままにすることが重要です。

左側の* Access Control Certificate(Private Network)*に設定されたままであることを確認します。 これにより、ネットワークIDを知っている人だけでなく、承認されたマシンのみがネットワークに接続できます。

終了すると、設定は次のようになります。

image:https://assets.digitalocean.com/articles/zerotier-1604/ZeroTierSettings-updated.png [ZeroTier設定の構成]

この時点で、ZeroTier Software-Defined Networkの基盤を構築できました。 次に、サーバーとクライアントマシンにZeroTierソフトウェアをインストールして、SDNに接続できるようにします。

手順2-サーバーとローカルコンピューターにZeroTier Oneクライアントをインストールする

ZeroTier Oneは比較的新しいソフトウェアであるため、Ubuntuのコアソフトウェアリポジトリにはまだ含まれていません。 このため、ZeroTierはソフトウェアのインストールに使用するインストールスクリプトを提供します。 このコマンドはGPG署名のスクリプトです。つまり、ダウンロードしたコードはZeroTierによって公開されたものとして検証されます。 このスクリプトには4つの主要な部分があり、それぞれの部分ごとの説明を次に示します。

  • + curl -s 'https://pgp.mit.edu/pks/lookup?op = get&search = 0x1657198823E52A61' +-これにより、MITからZeroTier公開鍵がインポートされます。

  • + gpg --import +-コマンドのこのセクションは、インストールしようとするパッケージを信頼するために、ZeroTier公開キーをローカルの認証局のキーチェーンに追加します。 コマンドの次の部分は、GPGインポートが正常に完了した場合にのみ実行されます

  • `+ if z = $(curl -s 'https://install.zerotier.com/' | gpg); echo "$ z" + `-このセクションではいくつかのことが発生しますが、本質的には次のように変換されます。その情報を画面に貼り付けます。」

  • `+ sudo bash; fi + `-このセクションは、新しく検証されたインストーラースクリプトを取得し、ルーチンを終了する前に実際に実行します。

SSHコンソールを使用して、新しく作成したサーバーに接続し、通常のユーザーとして次のコマンドを実行します(コマンドの説明は以下に記載されています)。 スクリプトは特権レベルを上げるためにパスワードを自動的に要求するため、rootとして実行しないでください。必要に応じて対話できるように、ブラウザでZeroTierコンソールを開いたままにしてください。

curl -s 'https://pgp.mit.edu/pks/lookup?op=get&search=0x1657198823E52A61' | gpg --import && if z=$(curl -s 'https://install.zerotier.com/' | gpg); then echo "$z" | sudo bash; fi

スクリプトが完了すると、次のような2行の出力が表示されます。 ZeroTierアドレス(角括弧なし)とそのアドレスを生成したシステムの名前を書き留めます。どちらも後で必要になります。

Output*** Waiting for identity generation...

*** Success! You are ZeroTier address [  ].

Ubuntuを使用している場合は、ローカルコンピューターでこの手順を繰り返します。または、ZeroTier Webサイトのhttps://www.zerotier.com/download.shtml [ダウンロードページ]でオペレーティングシステムに関連する手順を実行します。 繰り返しますが、ZeroTierアドレスとそのアドレスを生成したマシンに注意してください。 サーバーとクライアントを実際にネットワークに参加させるときに、このチュートリアルの次のステップでこの情報が必要になります。

ステップ3-ZeroTierネットワークに参加する

サーバーとクライアントの両方でZeroTierソフトウェアが実行されているので、ZeroTierウェブコンソールで作成したネットワークに接続する準備ができました。

次のコマンドを使用して、プラットフォームを介してZeroTierネットワークへのアクセスを要求するようにクライアントに指示します。 クライアントの最初のリクエストは拒否され、ハングしたままになりますが、すぐに修正します。 ネットワークの設定ウィンドウでメモしたネットワークIDに必ず置き換えてください。

sudo zerotier-cli join
Output200 join OK

サーバーのZeroTierサービスがコマンドを理解したことを確認する「+200参加OK +」メッセージが表示されます。 そうでない場合は、入力したZeroTierネットワークIDを再確認してください。

世界中の誰でも参加できるパブリックネットワークを作成していないため、クライアントを認証する必要があります。 ZeroTier Webコンソールに移動し、* Members *セクションがある一番下までスクロールします。 * Online *としてマークされた2つのエントリを、先ほどメモしたのと同じアドレスで見つける必要があります。

  • Auth?*とマークされた最初の列で、チェックボックスをオンにして、ネットワークへの参加を許可します。 Zerotier Controllerは、次回SDNを呼び出すときに、選択した範囲からサーバーとクライアントにIPアドレスを割り当てます。

IPアドレスの割り当てには少し時間がかかる場合があります。 待機中に、* Members セクションでノードの Short Name および Description *を指定できます。

これにより、2つのシステムがソフトウェア定義ネットワークに接続されます。

これまで、ZeroTierコントロールパネルの基本的な知識を習得し、コマンドラインインターフェイスを使用してZeroTierをダウンロードしてインストールし、サーバーとクライアントの両方をそのネットワークに接続しました。 次に、接続性テストを実行して、すべてが正しく適用されたことを確認します。

手順4-接続の確認

この段階では、2つのホストが実際に相互に通信できることを検証することが重要です。 ホストがネットワークに参加していると主張しても、通信できない可能性があります。 今すぐ接続を確認することで、後でトラブルを引き起こす可能性のある基本的な相互接続の問題を心配する必要がなくなります。

各ホストのZeroTier IPアドレスを見つける簡単な方法は、ZeroTier Webコンソールの* Members *セクションを調べることです。 サーバーとクライアントを認証した後、IPアドレスが表示される前に更新する必要がある場合があります。 または、Linuxコマンドラインを使用してこれらのアドレスを見つけることができます。 両方のマシンで次のコマンドを使用します-リストに表示される最初のIPアドレスが使用するものです。 以下に示す例では、そのアドレスは「203.0.113.0」です。

ip addr sh zt0 | grep 'inet'
Outputinet 203.0.113.0/24 brd 203.0.255.255 scope global zt0
inet6 fc63:b4a9:3507:6649:9d52::1/40 scope global
inet6 fe80::28e4:7eff:fe38:8318/64 scope link

ホスト間の接続をテストするには、1つのホストから「+ ping +」コマンドを実行し、その後に別のホストのIPアドレスを続けます。 たとえば、クライアントで:

ping

そしてサーバー上で:

ping

反対側のホストから返信が返されている場合(以下の出力に示すように)、2つのノードはSDNを介して正常に通信しています。

OutputPING 203.0.113.0 (203.0.113.0) 56(84) bytes of data.
64 bytes from 203.0.113.0: icmp_seq=1 ttl=64 time=0.054 ms
64 bytes from 203.0.113.0: icmp_seq=2 ttl=64 time=0.046 ms
64 bytes from 203.0.113.0: icmp_seq=3 ttl=64 time=0.043 ms

上記のZeroTierのインストールと参加プロセスを繰り返すことにより、この構成に好きなだけマシンを追加できます。 覚えておいて、これらのマシンは、互いに近接している必要はありません。

サーバーとクライアントが相互に通信できることを確認したら、ネットワークを調整して出口ゲートウェイを提供し、独自のVPNを構築する方法を学習してください。

ステップ5-ZeroTierのVPN機能を有効にする

概要で述べたように、ZeroTierをVPNツールとして使用することは可能です。 ZeroTierをVPNソリューションとして使用する予定がない場合は、この手順に従う必要はなく、手順6に進んでください。

VPNを使用すると、インターネット上のWebサイトとの通信のソースが隠されます。 使用しているネットワーク上に存在する可能性のあるフィルターと制限をバイパスできます。 より広いインターネットでは、サーバーのパブリックIPアドレスから参照しているように見えます。 ZeroTierをVPNツールとして使用するには、サーバーとクライアントの構成をさらに変更する必要があります。

ネットワークアドレス変換とIP転送の有効化

一般的に「NAT」と呼ばれる_Network Address Translation_は、送信者のIPアドレスでタグ付けされた1つのインターフェイスでルーターがパケットを受け入れ、そのアドレスをルーターのアドレスに交換する方法です。 このスワップの記録はルーターのメモリに保持されるため、戻りトラフィックが逆方向に戻ったときに、ルーターはIPを元のアドレスに変換して戻すことができます。 通常、NATは、複数のコンピューターが1つの公開されたIPアドレスの背後で動作できるようにするために使用されます。これは、VPNサービスに役立ちます。 実際のNATの例は、インターネットサービスプロバイダーが、家庭内のすべてのデバイスをインターネットに接続するために提供した家庭用ルーターです。 ルーターがNATを実行しているため、ラップトップ、電話、タブレット、およびその他のインターネット対応デバイスはすべて、インターネットに対して同じパブリックIPアドレスを共有しているように見えます。

通常、NATはルーターによって実行されますが、サーバーもNATを実行できます。 このステップを通して、ZeroTierサーバーのこの機能を活用して、VPN機能を有効にします。

_IPフォワーディング_は、ルーターまたはサーバーによって実行される機能で、IPアドレスが異なるゾーンにある場合、トラフィックを1つのインターフェイスから別のインターフェイスに転送します。 ルーターが2つのネットワークに接続されている場合、IP転送により、それらの間でトラフィックを転送できます。 これは単純に聞こえるかもしれませんが、うまく実装するには驚くほど複雑になる可能性があります。 ただし、このチュートリアルの場合は、いくつかの構成ファイルを編集するだけです。

IP転送を有効にすると、ZeroTierネットワーク内のクライアントからのVPNトラフィックがサーバーのZeroTierインターフェイスに到着します。 これらの構成を変更しないと、Linuxカーネルは(デフォルトで)到着するインターフェース宛でないパケットを破棄します。 これは通常、Linuxカーネルの通常の動作です。通常、別のネットワークの宛先アドレスを持つインターフェイスに到着するパケットは、ネットワークのどこかでルーティングの設定ミスが原因で発生する可能性があるためです。

IP転送は、インターフェイス間でパケットを転送することが許容されることをLinuxカーネルに通知するものと考えると便利です。 デフォルト設定は「0」で、「オフ」に相当します。 「1」に切り替えます-「オン」に相当します。

現在の構成を表示するには、次のコマンドを実行します。

sudo sysctl net.ipv4.ip_forward
Outputnet.ipv4.ip_forward = 0

IP転送を有効にするには、サーバー上の `+ / etc / sysctl.conf `ファイルを変更し、必要な行を追加します。 この構成ファイルにより、管理者はデフォルトのカーネル設定を上書きでき、再起動後に常に適用されるため、再度設定する必要はありません。 ` nano +`またはお気に入りのテキストエディターを使用して、ファイルの最後に次の行を追加します。

sudo nano /etc/sysctl.conf

/etc/sysctl.conf

. . .

ファイルを保存して閉じてから、次のコマンドを実行して、カーネルによる新しい構成の採用をトリガーします

sudo sysctl -p

サーバーはファイル内の新しい構成ディレクティブを採用し、すぐに適用します。再起動は必要ありません。 前と同じコマンドを実行すると、IP転送が有効になっていることがわかります。

sudo sysctl net.ipv4.ip_forward
Outputnet.ipv4.ip_forward = 1

IP転送が有効になったので、サーバーにいくつかの基本的なルーティングルールを提供することで、IP転送を有効に活用できます。 Linuxカーネルには既にネットワークルーティング機能が組み込まれているため、行う必要があるのは、ビルトインファイアウォールとルーターに、表示される新しいトラフィックが受け入れ可能であり、どこに送信するかを伝えるルールを追加することだけです。

コマンドラインからこれらのルールを追加するには、最初に、UbuntuがZerotierインターフェースと通常のインターネット向けイーサネットインターフェースの両方に割り当てた名前を知る必要があります。 これらは通常、それぞれ「+ zt0 」と「 eth0 +」ですが、常にそうとは限りません。

これらのインターフェースの名前を見つけるには、コマンド「+ ip link show 」を使用します。 このコマンドラインユーティリティは、デフォルトでUbuntuにインストールされるユーザー空間ユーティリティのコレクションである ` iproute2 +`の一部です。

ip link show

このコマンドの出力では、インターフェイスの名前は、リスト内の一意のインターフェイスを識別する番号のすぐ横にあります。 これらのインターフェイス名は、次の出力例で強調表示されています。 あなたの名前が例に示されている名前と異なる場合は、このガイド全体でインターフェイス名を適切に置き換えてください。

Output1: : <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: : <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
   link/ether 72:2d:7e:6f:5e:08 brd ff:ff:ff:ff:ff:ff
3: : <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2800 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000
   link/ether be:82:8f:f3:b4:cd brd ff:ff:ff:ff:ff:ff

その情報を入手したら、 `+ iptables +`を使用して、ネットワークアドレス変換とIPマスカレードを有効にします。

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

トラフィックの転送を許可し、アクティブな接続を追跡します。

sudo iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

次に、「+ zt0 」から「 eth0 +」へのトラフィック転送を許可します。 このチュートリアルでは、クライアントは常にサーバーを介して呼び出すことを前提としているため、逆のルールは必要ありません。

sudo iptables -A FORWARD -i zt0 -o eth0 -j ACCEPT

サーバーに設定したiptablesルールは、再起動間で自動的に保持されないことに注意してください。 これらのルールを保存して、サーバーが再起動された場合に確実に有効になるようにする必要があります。 サーバーで次のコマンドを実行し、画面上の簡単な指示に従って現在のIPv4ルールを保存します。IPv6は必要ありません。

sudo apt-get install iptables-persistent
sudo netfilter-persistent save

`+ sudo netfilter-persistent save `を実行した後、iptablesルールが正しく保存されたことを検証するためにサーバーを再起動する価値があるかもしれません。 チェックする簡単な方法は、 ` sudo iptables-save `を実行することです。これは、メモリにロードされた現在の設定を端末にダンプします。 マスカレード、転送、および ` zt0 +`インターフェイスに関して以下のようなルールが表示される場合、それらは正しく保存されています。

sudo iptables-save
Output# Generated by iptables-save v1.6.0 on Tue Apr 17 21:43:08 2018
. . .
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
. . .
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i zt0 -o eth0 -j ACCEPT
COMMIT
. . .

これらのルールがサーバーに適用されたので、ZeroTierネットワークとパブリックインターネット間のトラフィックを調整する準備が整いました。 ただし、ZeroTier Network自体に、サーバーをゲートウェイとして使用する準備ができていることが通知されない限り、VPNは機能しません。

サーバーがグローバルルートを管理できるようにする

サーバーが任意のクライアントからのトラフィックを処理するには、ZeroTierネットワーク内の他のクライアントがトラフィックを送信することを確認する必要があります。 これを行うには、ZeroTier Consoleでグローバルルートを設定します。 コンピュータネットワークに精通している人は、これを_Default Route_と表現することもあります。 クライアントがデフォルトトラフィックを送信する場所、つまり 他の特定の場所に行くべきではないトラフィック。

ZeroTier Networksページの右上に移動し、次のパラメーターを使用して新しいルートを追加します。 サーバーのZeroTier IPは、ZeroTierネットワーク構成ページの[メンバー]セクションで確認できます。 * network / bits フィールドに「+ 0.0.0.0 / 0 +」を入力し、(LAN)*フィールドにZeroTierサーバーのIPアドレスを入力します。

詳細を設定したら、「* + *」記号をクリックすると、既存のルールの下に新しいルールが表示されます。 それが実際にグローバルなルートであることを伝えるために、オレンジ色の地球がそこにあります:

image:https://assets.digitalocean.com/articles/zerotier-1604/zerotierGlobalRouteRule-updated.png [グローバルルートルール]

ZeroTierネットワークを使用する準備ができたら、VPNが機能する前に行う必要がある設定は、クライアントの設定だけです。

Linuxクライアントの構成

クライアントがLinuxを実行している場合、 `+ / etc / sysctl.conf +`ファイルを手動で変更する必要があります。 この設定変更は、クライアントトラフィックの許容リターンパスが何であるかのカーネルのビューを変更するために必要です。 ZeroTier VPNの構成方法により、サーバーからクライアントに戻るトラフィックは、送信先とは異なるネットワークアドレスから来ているように見える場合があります。 デフォルトでは、Linuxカーネルはこれらを無効と見なし、ドロップするため、その動作をオーバーライドする必要があります。

クライアントマシンで `+ / etc / sysctl.conf +`を開きます:

sudo nano /etc/sysctl.conf

次に、次の行を追加します。

Output. . .

ファイルを保存して閉じ、次に `+ sudo sysctl -p +`を実行して変更を適用します。

sudo sysctl -p

次に、ZeroTier Clientソフトウェアに、ネットワークがデフォルトルートトラフィックを伝送できることを伝えます。 これにより、クライアントのルーティングが修正されるため、特権機能と見なされるため、手動で有効にする必要があります。 このコマンドは、構成構造を出力に出力します。 これをチェックして、上部に「++」が表示されることを確認します。

sudo zerotier-cli set  allowDefault=1

すべてのトラフィックをルーティングするVPNとしてZeroTierの使用を停止する場合は、 `+ allowDefault `を ` 0 +`に戻します。

sudo zerotier-cli set  allowDefault=0

クライアントのZeroTierサービスが再起動されるたびに、 `+ allowDefault = 1 +`の値は0にリセットされるため、VPN機能をアクティブにするために忘れずに再実行してください。

デフォルトでは、ZeroTierサービスは、Linuxクライアントとサーバーの両方のブート時に自動的に開始するように設定されています。 このようなケースにしたくない場合は、次のコマンドで起動ルーチンを無効にすることができます。

sudo systemctl disable zerotier-one

ZeroTierネットワークで他のオペレーティングシステムを使用する場合は、次のセクションをお読みください。 それ以外の場合は、フローの管理セクションに進んでください。

非Linuxクライアントの構成

ZeroTierクライアントソフトウェアは、Linux OSだけでなく、多くのシステムで利用できます。スマートフォンもサポートされています。 クライアントは、Windows、macOS、Android、iOS、およびQNAP、Synology、WesternDigital NASシステムなどの特殊なオペレーティングシステムにも対応しています。

macOSおよびWindowsベースのクライアントをネットワークに参加させるには、ZeroTierツール(手順1でインストールした)を起動し、* Join *をクリックする前に、提供されたフィールドにNetworkIDを入力します。 ZeroTierコンソールに戻って、[許可]ボタンをオンにして、ネットワークへの新しいホストの承認を忘れないでください。

*必ずすべてのトラフィックをZeroTierにルーティングするというラベルの付いたボックスにチェックマークを付けてください。 そうしないと、クライアントはZeroTierネットワークに接続されますが、インターネットトラフィックを送信しようとすることはありません。

ICanHazIPなどのIPチェックツールを使用して、トラフィックがサーバーのIPからインターネットに表示されていることを確認します。 これを確認するには、次のURLをブラウザーのアドレスバーに貼り付けます。 このWebサイトには、そのサーバー(およびインターネットの他の部分)がサイトへのアクセスに使用しているIPアドレスが表示されます。

http://icanhazip.com

これらの手順が完了すると、VPNの利用を開始できますが、お好きなようにできます。 次のオプションセクションでは、ZeroTier SDNに組み込まれた「フロールール」と呼ばれる技術について説明しますが、VPN機能が機能するために必要なものではありません。

ステップ6-フローの管理(オプション)

Software-Defined Networkの利点の1つは、集中コントローラーです。 ZeroTierに関して、集中コントローラーは、ZeroTier SDNサービス全体の上にあるWebユーザーインターフェイスです。 このインターフェイスから、ネットワーク上のトラフィックで実行できるトラフィックまたはできないトラフィックを指定する「フロールール」と呼ばれるルールを作成できます。 たとえば、ネットワーク経由でトラフィックを伝送する特定のネットワークポートで全面禁止を指定し、相互に通信できるホストを制限し、トラフィックをリダイレクトすることもできます。

これは非常に強力な機能であり、ほとんど瞬時に有効になります。フローテーブルに加えられた変更はネットワークメンバーにプッシュされ、数分後に有効になるためです。 フロールールを編集するには、ZeroTier Webユーザーインターフェイスに戻り、* Networking タブをクリックし、 Flow Rules というタイトルのボックスが表示されるまで下にスクロールします(折りたたまれて展開する必要がある場合があります)。 これにより、テキストフィールドが開き、任意のルールを入力できます。 完全なマニュアルは、ZeroTierコンソール内の Rules Engine Help というタイトルの Flow Rules *入力ボックスのすぐ下のボックスにあります。

この機能を調べるのに役立つルールの例を次に示します。

Googleの「8.8.8.8」DNSサーバーに向かうトラフィックをブロックするには、次のルールを追加します。

drop
   ipdest 8.8.8.8/32
;

GoogleのパブリックDNSサーバーに向かうトラフィックをZeroTierノードの1つにリダイレクトするには、次のルールを追加します。 これは、DNSルックアップをオーバーライドするための優れたキャッチオールになります。

redirect
   ipdest 8.8.8.8/32
;

ネットワークに特別なセキュリティ要件がある場合、次のルールを追加することにより、FTPポート、Telnet、および暗号化されていないHTTP上のアクティビティを削除できます。

drop
   dport 80,23,21,20
;

フロールールの追加が完了したら、[変更を保存]ボタンをクリックすると、ZeroTierが変更を記録します。

結論

このチュートリアルでは、Software-Defined Networkingの世界への第一歩を踏み出しました。ZeroTierでの作業は、このテクノロジーの利点についての洞察を提供します。 VPNの例に従った場合、初期セットアップは過去に使用した他のツールとは対照的かもしれませんが、クライアントを追加するのが簡単であることは、このテクノロジーを他の場所で使用する説得力のある理由です。

まとめると、ZeroTierをSDNプロバイダーとして使用する方法と、そのネットワークにノードを構成して接続する方法を学びました。 VPN要素により、このようなネットワーク内のルーティングがどのように機能するかをより深く理解できます。このチュートリアルのいずれのパスでも、強力なフロールールテクノロジーを利用できます。

ポイントツーポイントネットワークが存在するようになったので、これをファイル共有などの別の機能と組み合わせることができます。 自宅にNASまたはファイルサーバーがある場合は、ZeroTierにリンクして、外出先でアクセスできます。 友人と共有したい場合は、ZeroTierネットワークに参加する方法を見せてください。 大きなエリアに分散している従業員は、同じ中央ストレージスペースにリンクすることさえできます。 これらの例のいずれかのファイル共有の構築を開始するには、https://www.digitalocean.com/community/tutorials/how-to-set-up-a-samba-share-for-a-をご覧くださいsmall-organization-on-ubuntu-16-04 [Ubuntu 16.04で小規模組織のSamba共有をセットアップする方法]。

Related