アウトバウンドルーティングフィルターを設定すると、VPG を利用する IoT SIM や バーチャル SIM/Subscriber が直接アクセスできるサーバーを制限できます。たとえば、VPG を経由する通信をすべて拒否したり、ピアリング先や専用線、仮想専用線での接続先環境へのアクセスをすべて許可したりできます。
制限するには、以下の設定例のように IP アドレスレンジで許可 / 拒否を設定します。
| 設定例 | ||
|---|---|---|
| すべてのサーバーへの通信を拒否 | deny (*1) | 0.0.0.0/0 (すべてのルート) (*1) |
任意の IP アドレス (例: 10.0.0.119/32) への通信を許可 | allow | 10.0.0.119/32 |
任意の IP アドレスレンジ (例: 10.128.0.0/9) への通信を許可 | allow | 10.128.0.0/9 |
- (*1) にチェックを入れると、
deny、0.0.0.0/0の設定が追加されます。また、そのほかのフィルタエントリは追加できません。なお、 に登録する 1 つの と のペアを、フィルタエントリと呼びます。
アウトバウンドルーティングフィルターで許可 / 拒否できない宛先があります
アウトバウンドルーティングフィルターで にチェックを入れても、Beam、Funnel、Funk を利用して、インターネットにあるサーバーや、パブリッククラウド、FaaS にデータを転送できます。あらためて Beam、Funnel、Funk の IP アドレスレンジを指定して許可する必要はありません。詳しくは、VPG に所属するデバイスの通信先を制限する機能 を参照してください。
操作を始める前に準備が必要です (クリックして確認してください)
(1) VPG を作成する
VPG を作成してください。詳しくは、VPG を作成する を参照してください。
(2) IoT SIM や バーチャル SIM/Subscriber が利用する VPG を切り替える
IoT SIM や バーチャル SIM/Subscriber が、(1) で作成した VPG を利用するように設定し、セッションを再確立してください。詳しくは、IoT SIM が利用する Virtual Private Gateway (VPG) を切り替える を参照してください。
準備完了ステップ 1: アウトバウンドルーティングフィルターを設定する
ユーザーコンソールから VPG のアウトバウンドフィルタールールを設定できます。ルールは プリセットフィルター を適用する方法と、手動 でエントリを追加する方法、またはその両方を組み合わせて追加できます。プリセットは一度に 1 つのみ有効にできますが、手動で追加したエントリは常にプリセットと共存します。
アウトバウンドルーティングフィルターを設定する VPG の VPG 設定画面で、 → の順にクリックします。
VPG 設定画面を表示する操作について詳しくは、VPG の設定を変更する を参照してください。

プリセットフィルターを使用する
プリセットフィルターは、一般的なユースケースに対応した事前定義済みのルールセットです。ルールを最初から作成することなく、標準的な設定をすばやく適用できます。
プリセットフィルター のドロップダウンから、適用したいプリセットを選択します。

をクリックします。
選択したプリセットのルールがルールリストに追加されます。以前に別のプリセットが適用されていた場合は、そのルールが新しく選択したプリセットのルールに置き換えられます。プリセットに属さない手動で追加したルールは、どのプリセットを適用または切り替えても常に保持されます。

手動でルールを追加する
プリセットを適用しているかどうかに関わらず、いつでも個別にルールを追加できます。
プリセットで設定したルールに加えて、特定の外部サーバーへの通信も必要な場合は、手動でエントリを追加できます。ここでは例として、手順 3 で適用したプリセットの設定はそのままに、特定の外部サーバー (
203.0.113.50) への通信のみ追加で許可します。をクリックし、以下のエントリを入力します。
説明 allow203.0.113.50/32特定の外部サーバーへの通信を許可します。 - をクリックすると、入力欄が 1 行追加されます。
- をクリックすると、入力欄が 1 行削除されます。

複数のフィルタエントリを登録した場合はロンゲストマッチでフィルタエントリが決定されます
ある送信パケットの宛先 IP アドレスが複数のフィルタエントリに該当する場合、IP アドレスレンジのプレフィックス (ネットワークアドレス) が最も長いフィルタエントリが適用されます。これをロンゲストマッチと呼びます。
たとえば、プリセットで設定した
0.0.0.0/0を deny (拒否) するエントリと、手動で追加した203.0.113.50/32を allow (許可) するエントリがある場合、203.0.113.50への送信パケットは、ロンゲストマッチで203.0.113.50/32のエントリが適用されます。その結果、通信が許可されます。→ の順にクリックします。
VPG を利用する IoT SIM や バーチャル SIM/Subscriber のセッションを再確立します。
詳しくは、IoT SIM のセッションを再確立する または バーチャル SIM/Subscriber のセッションを再確立する を参照してください。
アウトバウンドフィルタールールは、VPG でインターネットゲートウェイ (IGW) が有効になっているかどうかに関わらず適用されます。ただし、VPG でインターネットゲートウェイが有効になっていない場合、0.0.0.0/0 に対して allow ルールを追加してもインターネット接続は有効になりません。
設定例 : デバイス間通信 (SORACOM Gate D2D) で インターネット通信を拒否する
デバイス間で通信する (SORACOM Gate D2D) の設定後、さらに IoT SIM や バーチャル SIM/Subscriber からのインターネット通信を拒否する場合、つまり、インターネットへの通信は拒否しデバイス間の通信のみ許可する場合は、以下のように 2 つのフィルタエントリを入力します。
| 説明 | ||
|---|---|---|
| 「deny」を選択します。 | 0.0.0.0/0 を入力します。 | すべての IP アドレス (0.0.0.0/0) への通信を拒否 (deny) します。 |
| 「allow」を選択します。 | 10.128.0.0/9 を入力します。 | 10.128.0.0/9 への通信を許可 (allow) します。 |
- をクリックすると、入力欄が 1 行追加されます。
- をクリックすると、入力欄が 1 行削除されます。
「allow」アクションに入力するアドレスレンジは、VPG 作成時に指定した を入力します。この例では、 のデフォルト値である 10.128.0.0/9 を入力していますが、VPG 作成時にデフォルト値から変更をした場合は、画面上部の属性情報テーブルにある の値を確認のうえ入力してください。

SORACOM API の場合
- SORACOM API を利用するには、API キーと API トークンが必要です。詳しくは、API キーと API トークンの取り扱いについて を参照してください。
{vpg_id}は、VirtualPrivateGateway:listVirtualPrivateGateways APIで取得できます。
VirtualPrivateGateway:setRoutingFilter API を使用します。
例 1: 特定のアドレスレンジ (192.0.2.0/26) 宛ての送信パケットをブロックする
$ curl -v -X POST https://api.soracom.io/v1/virtual_private_gateways/{vpg_id}/set_routing_filter \
-H "X-Soracom-API-Key: $X_SORACOM_API_KEY" \
-H "X-Soracom-Token: $X_SORACOM_TOKEN" \
-H "Content-Type: application/json" \
-d '[
{
"action": "deny",
"ipRange": "192.0.2.0/26"
}
]'
例 2: 特定の IP アドレスレンジ (10.0.0.119/32) 宛ての送信パケットのみを許可する
特定の IP アドレスレンジのみを許可する場合は、広範囲の IP アドレス (最も広い範囲は 0.0.0.0/0) に対して「拒否 (deny)」ルールを設定し、許可する IP アドレスレンジに対して「許可 (allow)」ルールを追加します。
具体的には、10.0.0.119/32 へのアクセスのみを許可するために、全体 (0.0.0.0/0) を拒否し、10.0.0.119/32 を許可するように設定します。
$ curl -v -X POST https://api.soracom.io/v1/virtual_private_gateways/{vpg_id}/set_routing_filter \
-H "X-Soracom-API-Key: $X_SORACOM_API_KEY" \
-H "X-Soracom-Token: $X_SORACOM_TOKEN" \
-H "Content-Type: application/json" \
-d '[
{
"action": "deny",
"ipRange": "0.0.0.0/0"
},
{
"action": "allow",
"ipRange": "10.0.0.119/32"
}
]'
重複する複数のフィルタエントリがある場合
アウトバウンドルーティングフィルターに登録する 1 つの "action" と "ipRange" のペアを、フィルタエントリと呼びます。ある VPG に、重複する複数のフィルタエントリを登録した場合、最も長いプレフィックスを持つ IP アドレスレンジのフィルタエントリが適用されます。たとえば、0.0.0.0/0 を deny (拒否) するフィルタエントリと 10.0.0.199/32 を allow (許可) するフィルタエントリがある場合、10.0.0.199 への送信パケットは、10.0.0.199/32 のフィルタエントリが適用され通信が許可されます。
ステップ 2: 拒否アドレスにアクセスできないことを確認する
VPG を適用した IoT SIM や バーチャル SIM/Subscriber から、ステップ 1 の手順 2 で通信を許可した「10.0.0.119」にアクセスできること、これ以外にアクセスできないことを確認してください。
10.0.0.119 が Web サーバーであれば以下のように確認できます。
$ curl http://10.0.0.119/
<html lang="en">
......
また、ping が可能であれば、ping 10.0.0.119 で確認することもできます。
