SORACOM Developers

Getting Started

SORACOM Junctionのミラーリング機能を使用して、VPGを通過するパケットのコピーを転送する

当ガイドでは、SORACOM Junction(以下、Junction)のミラーリング機能を利用し、VPGを通過するパケットのコピーをVPC内のEC2インスタンスへ転送します。

SORACOM Junctionとは

「SORACOM Junction」(以下、Junction)とは、Virtual Private Gateway (以下、VPG)を通るパケットに対して、ミラーリング、リダイレクション、 インスペクションの3つの機能を提供するサービスです。VPG については、Virtual Private Gateway (VPG) 機能詳細も合わせてご確認ください。

Junction の提供する3つの機能

ミラーリング

ミラーリング機能では、VPGを通過するパケットのコピーを指定の宛先に送信します。 以下の図は、AirSIMを使用したデバイスがVPGを経由して、インターネットにアクセスしている例です。デバイスはインターネットにアクセスしていますが、パケットのコピーが指定の宛先(ここでは、Customer VPC/お客様のシステム)に送信されます

ミラーリング

リダイレクション

リダイレクション機能は、VPGを通過するユーザーパケットがお客様が指定したサーバを経由するように経路を変更して転送します。 以下の図は、AirSIMを使用したデバイスがVPGを経由して、インターネットにアクセスしている例です。インターネットにアクセスしようとするデバイスからのパケットは指定の宛先(ここでは、Customer VPC/お客様のシステム)に転送されます。転送後のルーティングは、Customer VPC/お客様のシステムで行います。 なお、当機能は、Gateの使用が必要となりますリダイレクションのパケット転送先は、Gate Peerとなります。

リダイレクション

インスペクション

インスペクション機能は、VPGを通過するパケットを解析し、アプリケーションの判別といったVPGを通るパケットの統計情報を提供します。 以下の図は、AirSIMを使用したデバイスがVPGを経由して、インターネットにアクセスしている例です。デバイスはインターネットにアクセスします。 VPGを通るパケットの統計情報が指定の宛先(ここでは、Customer VPC/お客様のシステム)に転送されます。VPGを通るパケットの統計情報、フォーマットの詳細は「インスペクションで送られるパケットの統計情報」を参照してください。

インスペクション

当ガイドでは、ミラーリング機能を使用して、VPGを通過するパケットを転送します。

Junctionのミラーリング機能を使用して、VPGを通過するパケットをコピーしてVPC内のEC2インスタンスへ転送する

以下のステップでミラーリング機能を使用してVPGを通過するパケットのGREでカプセル化されたコピーを、VPC内のEC2インスタンスへ転送する設定を行ない実際にGREパケットがEC2インスタンスへ転送されていることを確認します。

Canalを使用してVPC Peeringを行なう

Junctionのミラーリング機能はコピーしたパケットの転送にSORACOM Canal、SORACOM DirectまたはSORACOM Doorによって接続されたネットワークを必要とします。このGetting StartedガイドではSORACOM Canalを使用してピアリングしたVPC内のEC2インスタンスへミラーリング機能によりコピーしたパケットを転送します。

まず、「SORACOM Canal を使用して閉域網で接続する」に従ってSORACOM CanalによりVPCピアリングを行ない、作成したEC2インスタンスへの接続ができることを確認してください。ガイド中のステップ 1からステップ 4までを確認する必要があることにご注意ください。

上記ガイドで作成したVPCのアドレスレンジは 10.0.0.0/16 ですが、本ガイドでは 172.10.0.0/16 となることに注意してくだい。また、作成したEC2インスタンスの名前は「Junction-Mirroring-Test」であるとします。

設定が終ったら以下項目が正常に設定されていることを改めて確認してください。

VPCのネットワークACLがGREでの通信を許可しているか確認する

AWSマネジメントコンソールのトップバーより「サービス」を選択し、「VPC」をクリックしてVPCの管理画面へ移動します。次に「SORACOM Canal を使用して閉域網で接続する」 でピアリングしたVPCを選択し、詳細を表示します。詳細中の「ネットワーク ACL」のリンクをクリックします。

VPC-ACL

ネットワークACLはデフォルトでは以下のようにすべてのトラフィックをインバウンドで許可する設定となっています。

VPC-ACL

デフォルトの設定と異なる場合でGREのトラフィックが許可されて いない 場合、「編集」ボタンをクリックし「別のルールの追加」ボタンをクリックして以下のように 100.64.0.0/10 からのGREトラッフィクを許可するルールを追加し、「保存」ボタンをクリックしてください。

VPC-ACL

EC2インスタンスのセキュリティグループにGREでの通信を許可するルールを追加する

AWSマネジメントコンソールのトップバーより「サービス」を選択し、「EC2」をクリックしてEC2 ダッシュボードへ移動します。画面左のメニューの「セキュリティグループ」をクリックし、セキュリティグループの管理ページへ移動します。「セキュリティグループの作成」ボタンをクリックして新しいセキュリティグループを作成します。

SG

「インバウンド」タブで以下のようにVPCピアリングしたVPCのIDを指定し、「カスタムプロトコル」をタイプとして選択し 100.64.0.0/10 からのGRE(プロトコル番号 47)トラッフィクを許可するセキュリティグループを、名前をJunction-Mirroringとして作成します。「Canalを使用してVPC Peeringを行なう」でSSHを許可する設定を行なって いない 場合には、SSHを許可する設定も追加してください。

SG

セキュリティグループを作成後、画面左メニューの「インスタンス」をクリックし、EC2インスタンスの管理ページを表示します。「Canalを使用してVPC Peeringを行なう」で作成したEC2インスタンスを選択し、「アクション」プルダウンメニューより「ネットワーキング」、「セキュリティグループの変更」をクリックします。

SG

「セキュリティグループの変更」で作成したセキュリティグループのチェックボックスをクリックし、「セキュリティグループの割り当て」ボタンをクリックします。

SG

セキュリティグループを変更したインスタンスの詳細の「セキュリティグループ」にJunction-Mirroringセキュリティグループが追加されているのを確認し、「インバウンドルールの表示」をクリックしてすべてののポートで 100.64.0.0/10 からのプロトコル番号 47 、すなわちGREトラフィックが許可されていることを確認します。また、SSHも許可されていることを確認します。

SG

Junctionのミラーリング機能を使用してVPGを通過するパケットをコピーしてEC2インスタンスに転送する

次に、Junction のミラーリング機能を設定します。 以下のような流れとなります。

VPGの作成

SORACOM のユーザーコンソールにログインします。 画面左上部のプルダウンメニューから「VPG」を選択します。

VPG

「VPG を追加」をクリックします。

VPG

VPG の名前を入力し、対象サービスとして、ここでは「Canal」を選択します。 「作成」をクリックすると、「状態」が「作成中」となります。しばらく(3分程度)して、「実行中」となれば作成完了です。

グループの作成と SIM の所属グループの変更

SORACOM ユーザーコンソールの左上のプルダウンメニューより「グループ」を選択します。

Group

「追加」をクリックして、グループ名を入力し、グループを作成します。 作成したグループをクリックしグループ画面の「基本設定」から「SORACOM Air 設定」を開きます。

Group

「SORACOM Air 設定」内に、以下のように「VPG (Virtual Private Gateway) 設定」があるので、「ON」とし、先ほど作成した「VPG」を選択します。

Group

「保存」をクリックします。

VPG を指定したグループに含まれる Air SIM は VPG を利用することになります。

次に、Air SIM をグループに所属させます。「SIM 管理」メニューから、接続を行う SIM を選択し、「所属グループ変更」をクリックします。

Group

先ほど作成したグループに所属させます。

注意

ミラーリング機能を設定

作成したVPGの設定画面を開きます。 「Junction 設定」タブを開きます。

Mirroring

「SORACOM Junction: ミラーリング設定」の「ミラーリング先を追加ボタンをクリックし、「ミラーリング先を追加」を表示させます。

AWSマネジメントコンソールで「Canalを使用してVPC Peeringを行なう」で作成したEC2インスタンスのプライベートIPアドレスをコピーします。

Mirroring

「ミラーリング先を追加」中の「ミラーリング先IP アドレス」にコピーしたEC2インスタンスのプライベートIPアドレスを貼り付けます。また、「ステータス」トグルスイッチを「ON」にし、「保存」ボタンを押します。作成したVPGの設定画面へ戻るので、先程入力した項目がミラーリングのリストに追加されていることを確認してください。

Mirroring

Mirroring

以上でJunctionのミラーリング機能の設定は完了です。

Junctionのミラーリング機能を使用してコピーして転送したパケットをEC2インスタンス上で確認する

ここではSSHで「Canalを使用してVPC Peeringを行なう」で作成したEC2インスタンスへログインし、実際にJunctionのミラーリング機能でコピーされたパケットが転送されているか確認します。

AWSマネジメントコンソールで「Canalを使用してVPC Peeringを行なう」で作成したEC2インスタンスのグローバルIPアドレスをコピーします。

GlobalIP

次に「SORACOM Canal を使用して閉域網で接続する」のステップ 1、EC2 インスタンスを作成するで行なったように以下コマンドでEC2インスタンスにログインします。 <public-ip> を先程コピーしたEC2インスタンスのグローバルIPアドレスに置き換えてください。

$ ssh -X -i "xxx-dev01.pem" ec2-user@<public-ip>

tcpdumpでコピーされたGREパケットを確認する

以下のように tcpdump を使用してコピーされたパケットがGREでカプセル化されて転送されているかを確認します。以下の例ではUbuntuを使用していデフォルトでtcpdumpがインストールされていますが、お使いのEC2インスタンスのLinuxディストリビューションでtcpdumpがインストールされているか確認し、もしされていない場合にはパッケーマネージャでインストールしてください。

ec2-user@ip-172-16-1-92:~$ sudo tcpdump -vvv -i eth0 proto gre
sudo: unable to resolve host ip-172-16-1-92
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
07:47:37.040340 IP (tos 0x0, ttl 64, id 62738, offset 0, flags [DF], proto GRE (47), length 135)
    100.64.138.132 > 172.16.1.92: GREv0, Flags [none], length 115
    IP (tos 0x0, ttl 64, id 39209, offset 0, flags [DF], proto TCP (6), length 97)
...

無事表示されれば全ての手順が完了です。より詳しくGUIでパケットの中身を見たい場合には、次の 「WiresharkでコピーされたGREパケットを確認する」 へ進んでください。

(オプション) WiresharkでコピーされたGREパケットを確認する

Wireshark はtcpdumpのようにパケットをキャプチャし、その中身を分かりすくGUI上に表示するソフトウェアです。

まず、お使いのコンピュータで Wireshark がインストールされているか確認し、されていない場合にはWiresharkをインストールしてください。 公式サイトでインストーラが配布されています。また、Linuxパッケージマネージャ、macOSではHomebrewなどでもインストールすることができます。

次に以下の手順で 「Canalを使用してVPC Peeringを行なう」 で作成したミラーリング対象のEC2インスタンスでパケットをキャプチャし、その内容をSSH経由でローカルのコンピュータへ転送し、それをWiresharkで表示します。

LinuxまたはmacOSの場合

名前付きパイプを作成します。

$ mkfifo /tmp/junction_mirroring

Wiresharkを名前付きパイプに対してキャプチャを行なうようにし、バックグラウンドで起動します。

$ wireshark -k -i /tmp/junction_mirroring &

EC2インスタンスへSSHしてtcpdumpした結果を作成した名前付きパイプにリダイレクションするようにします。 <public-ip> はEC2インスタンスのグローバルIPアドレスに置き換えてください。

$ ssh -X -i "xxx-dev01.pem" ec2-user@<public-ip> "sudo /usr/sbin/tcpdump -s 0 -U -n -w - -i eth0 proto gre" > /tmp/junction_mirroring

以下のようにパケットがキャプチャできれば完了です。GREの中身を確認することができます。

Wireshark

Windowsの場合

Plink (PuTTY Link) を使用します。PuTTYをインストールしていない場合には ダウンロードページ) よりインストールしてください。

コマンドプロンプトで以下のコマンドを入力します。 <public-ip> はEC2インスタンスのグローバルIPアドレスに置き換えてください。

> plink -i "xxx-dev01.pem" ec2-user@<public-ip> "sudo /usr/sbin/tcpdump -s 0 -U -n -w - -i eth0 proto gre" | "C:¥Program Files¥Wireshark¥Wireshark.exe" -k -i -

「Junctionのミラーリング機能を使用して、VPGを通過するパケットをVPC内のEC2インスタンスへ転送する」は以上となります。

Getting Started

SORACOM Air for セルラー

SORACOM Air for LoRaWAN

SORACOM Air for Sigfox

SORACOM Beam

SORACOM Canal/Direct/Door

SORACOM Endorse

SORACOM Funnel

SORACOM Gate

SORACOM Harvest

SORACOM Inventory

SORACOM Junction

サービス機能詳細

Developer Tools

pagetop