SORACOM からデバイスに通知する MTU を設定できます。MTU を設定すると、デバイスからネットワークに送信する IP パケットの最大長を、デバイスに通知できます。
多くの OS やデバイスでは、デフォルトでは MTU が 1500 バイトに設定されています。しかし、VPN などで使われるトンネルヘッダーが追加されると、パケットサイズがネットワークの許容範囲を超えることがあります。その結果、IP パケットの分割 (フラグメンテーション) や破棄が発生し、通信が不安定になる可能性があります。
MTU をトンネルヘッダーなどを考慮した経路中の最大値以下に設定することで、IP パケットの分割 (フラグメンテーション) や破棄を回避して通信速度や安定性が向上することが期待できます。
デバイスの対応が必要です
デバイスによってはネットワークから通知される MTU の変更に対応しておらず、デバイスのデフォルト値 (一般的に 1500 バイト) に従って動作する場合があります。事前にデバイス仕様を確認してください。
IP Link MTU 設定はグループに対して行います
ここでは、グループの設定を変更する操作のみを説明します。グループの仕組みやグループを作成する操作について詳しくは、グループ設定 を参照してください。
SIM グループ画面で をクリックします。
SIM グループ画面を表示する操作について詳しくは、グループの設定を変更する を参照してください。
をクリックして「ON」にします。
に、SORACOM からデバイスに通知する MTU を入力します。
適切な値を設定してください
不適切な MTU を設定すると、通信に問題が発生する可能性があります。なお、適切な MTU はネットワークによって異なります。ping コマンドを利用すると、適切な MTU を探索できます。詳しくは、ping コマンドを利用して適切な MTU を探索する を参照してください。
をクリックします。
MTU は、セッション確立時にデバイスに通知されます。したがって、IoT SIM の が オンライン のデバイスに新しい MTU を通知するには、セッションを再確立します。
設定を変更したグループに所属するすべての IoT SIM のセッションを再確立します。詳しくは、SIM グループに所属するすべての IoT SIM のセッションを再確立するには を参照してください。
SORACOM CLI / SORACOM API の場合
SORACOM CLI または SORACOM API を利用しても、IP Link MTU を設定できます。
- SORACOM CLI を利用する場合は、
soracom groups put-configを使用します。 - SORACOM API を利用する場合は、
Group:putConfigurationParameters APIを使用します。
SORACOM CLI / SORACOM API のリクエストボディで指定するプロパティについて
以下の key と value のペアを配列で指定します。
key | value の型 | value |
|---|---|---|
ipLinkMtu | Number | MTU をバイト単位で設定します。 適切な値を設定してください不適切な MTU を設定すると、通信に問題が発生する可能性があります。なお、適切な MTU はネットワークによって異なります。ping コマンドを利用すると、適切な MTU を探索できます。詳しくは、ping コマンドを利用して適切な MTU を探索する を参照してください。 |
想定していない値を指定した場合の動作は、定義されていません。SORACOM CLI / SORACOM API で設定を変更したあとで、SORACOM ユーザーコンソールで意図通りに設定されていることを確認してください。
設定の反映について
MTU は、セッション確立時にデバイスに通知されます。したがって、IoT SIM の が オンライン のデバイスに新しい MTU を通知するには、セッションを再確立してください。
設定を変更したグループに所属するすべての IoT SIM のセッションを再確立する手順について詳しくは、SIM グループに所属するすべての IoT SIM のセッションを再確立するには を参照してください。
ping コマンドを利用して適切な MTU を探索する
通信先のサーバーに ping コマンドを利用してパケットを送信すると、適切な MTU を探索できます。
以下は、Ubuntu 24.04.3 LTS で適切な MTU が 1500 と仮定して -s 1472 (ICMP データ部のサイズを 1472 バイトに固定) を指定した結果、ping に失敗した例です。この場合、MTU を 1500 に設定することは、不適切と判断できます。
$ ping -c 4 -M do -s 1472 xxx.xxx.xxx.xxx
PING xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx) 1472(1500) bytes of data.
ping: local error: message too long, mtu=1460
ping: local error: message too long, mtu=1460
ping: local error: message too long, mtu=1460
ping: local error: message too long, mtu=1460
--- xxx.xxx.xxx.xxx ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3199ms
上記の結果では、mtu=1460 と表示されているため、ICMP データ部のサイズを -s 1432 にしてみると、ping に成功しました。念のため数値を 1 増やして、-s 1433 を指定して ping に失敗することを確認しても良いでしょう。この場合、MTU を (1432 ではなく) 1460 に設定することが適切です。
$ ping -c 4 -M do -s 1432 xxx.xxx.xxx.xxx
PING xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx) 1432(1460) bytes of data.
1440 bytes from xxx.xxx.xxx.xxx: icmp_seq=1 ttl=119 time=3.69 ms
1440 bytes from xxx.xxx.xxx.xxx: icmp_seq=2 ttl=119 time=4.03 ms
1440 bytes from xxx.xxx.xxx.xxx: icmp_seq=3 ttl=119 time=3.64 ms
1440 bytes from xxx.xxx.xxx.xxx: icmp_seq=4 ttl=119 time=4.04 ms
--- xxx.xxx.xxx.xxx ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3260ms
rtt min/avg/max/mdev = 3.643/3.852/4.042/0.185 ms
ping コマンドの使いかたは、利用する OS によって異なります。詳しくは、各 OS のドキュメントを参照してください。
