手当たり次第に書くんだ

OpenVPN MTU関連設定

Reference manual for OpenVPN 2.4

OpenVPN Protocol

–link-mtu

原文

Sets an upper bound on the size of UDP packets which are sent between OpenVPN peers. It’s best not to set this parameter unless you know what you’re doing.

日本語訳

OpenVPNピア間で送信されるUDPパケットのサイズの上限を設定します。 何をしているのかわからない場合は、このパラメータを設定しないことをお勧めします。

–tun-mtu

原文

Take the TUN device MTU to be n and derive the link MTU from it (default=1500). In most cases, you will probably want to leave this parameter set to its default value.The MTU (Maximum Transmission Units) is the maximum datagram size in bytes that can be sent unfragmented over a particular network path. OpenVPN requires that packets on the control or data channels be sent unfragmented.

MTU problems often manifest themselves as connections which hang during periods of active usage.

It’s best to use the –fragment and/or –mssfix options to deal with MTU sizing issues.

日本語訳

TUNデバイスのMTUをnとし、そこからリンクMTUを取得します(デフォルト= 1500)。 ほとんどの場合、このパラメーターをデフォルト値に設定したままにしておくことをお勧めします。MTU(Maximum Transmission Units)は、特定のネットワークパスを介して断片化せずに送信できるバイト単位の最大データグラムサイズです。 OpenVPNでは、制御チャネルまたはデータチャネル上のパケットをフラグメント化せずに送信する必要があります。

MTUの問題は、アクティブな使用期間中にハングする接続として現れることがよくあります。

MTUサイズの問題に対処するには、-fragmentおよび/または–mssfixオプションを使用することをお勧めします。

–fragment

原文

Enable internal datagram fragmentation so that no UDP datagrams are sent which are larger than max bytes.

The max parameter is interpreted in the same way as the –link-mtu parameter, i.e. the UDP packet size after encapsulation overhead has been added in, but not including the UDP header itself.

The –fragment option only makes sense when you are using the UDP protocol ( –proto udp ).

–fragment adds 4 bytes of overhead per datagram.

See the –mssfix option below for an important related option to –fragment.

It should also be noted that this option is not meant to replace UDP fragmentation at the IP stack level. It is only meant as a last resort when path MTU discovery is broken. Using this option is less efficient than fixing path MTU discovery for your IP link and using native IP fragmentation instead.

Having said that, there are circumstances where using OpenVPN’s internal fragmentation capability may be your only option, such as tunneling a UDP multicast stream which requires fragmentation.

日本語訳

最大バイトを超えるUDPデータグラムが送信されないように、内部データグラムの断片化を有効にします。

maxパラメータは、-link-mtuパラメータと同じ方法で解釈されます。つまり、カプセル化オーバーヘッドが追加された後のUDPパケットサイズですが、UDPヘッダー自体は含まれません。

–fragmentオプションは、UDPプロトコル(–proto udp)を使用している場合にのみ意味があります。

–fragmentは、データグラムごとに4バイトのオーバーヘッドを追加します。

–fragmentに関連する重要なオプションについては、以下の–mssfixオプションを参照してください。

このオプションは、IPスタックレベルでUDPフラグメンテーションを置き換えることを意図したものではないことにも注意してください。これは、経路MTU探索が失敗した場合の最後の手段としてのみ意図されています。このオプションを使用すると、IPリンクのパスMTUディスカバリーを修正し、代わりにネイティブIPフラグメンテーションを使用するよりも効率が低下します。

そうは言っても、断片化を必要とするUDPマルチキャストストリームをトンネリングするなど、OpenVPNの内部断片化機能を使用することが唯一の選択肢である場合があります。

–mssfix

原文

Announce to TCP sessions running over the tunnel that they should limit their send packet sizes such that after OpenVPN has encapsulated them, the resulting UDP packet size that OpenVPN sends to its peer will not exceed maxbytes. The default value is 1450.

The max parameter is interpreted in the same way as the –link-mtu parameter, i.e. the UDP packet size after encapsulation overhead has been added in, but not including the UDP header itself. Resulting packet would be at most 28 bytes larger for IPv4 and 48 bytes for IPv6 (20/40 bytes for IP header and 8 bytes for UDP header). Default value of 1450 allows IPv4 packets to be transmitted over a link with MTU 1473 or higher without IP level fragmentation.
The –mssfix option only makes sense when you are using the UDP protocol for OpenVPN peer-to-peer communication, i.e. –proto udp.

–mssfix and –fragment can be ideally used together, where –mssfix will try to keep TCP from needing packet fragmentation in the first place, and if big packets come through anyhow (from protocols other than TCP), –fragment will internally fragment them.

Both –fragment and –mssfix are designed to work around cases where Path MTU discovery is broken on the network path between OpenVPN peers.

The usual symptom of such a breakdown is an OpenVPN connection which successfully starts, but then stalls during active usage.

If –fragment and –mssfix are used together, –mssfix will take its default max parameter from the –fragment max option.

Therefore, one could lower the maximum UDP packet size to 1300 (a good first try for solving MTU-related connection problems) with the following options:

–tun-mtu 1500 –fragment 1300 –mssfix

日本語訳

トンネル上で実行されているTCPセッションに、OpenVPNがカプセル化した後、OpenVPNがピアに送信する結果のUDPパケットサイズがmaxbytesを超えないように、送信パケットサイズを制限する必要があることをアナウンスします。デフォルト値は1450です。

maxパラメータは、-link-mtuパラメータと同じ方法で解釈されます。つまり、カプセル化オーバーヘッドが追加された後のUDPパケットサイズですが、UDPヘッダー自体は含まれません。結果のパケットは、IPv4の場合は最大28バイト、IPv6の場合は48バイト大きくなります(IPヘッダーの場合は20/40バイト、UDPヘッダーの場合は8バイト)。デフォルト値の1450を使用すると、IPv4パケットをMTU1473以上のリンクを介してIPレベルの断片化なしで送信できます。
–mssfixオプションは、OpenVPNピアツーピア通信にUDPプロトコル、つまり–protoudpを使用している場合にのみ意味があります。

–mssfixと–fragmentは理想的に一緒に使用できます。ここで、-mssfixは最初にTCPがパケットの断片化を必要としないようにし、大きなパケットが(TCP以外のプロトコルから)とにかく通過する場合、-fragmentはそれらを内部的に断片化します。

–fragmentと–mssfixはどちらも、OpenVPNピア間のネットワークパスでパスMTUディスカバリーが壊れた場合を回避するように設計されています。

このような故障の通常の症状は、OpenVPN接続が正常に開始されますが、アクティブな使用中に停止することです。

–fragmentと–mssfixを一緒に使用すると、-mssfixは–fragmentmaxオプションからデフォルトのmaxパラメーターを取得します。

したがって、次のオプションを使用して、最大UDPパケットサイズを1300に下げることができます(MTU関連の接続の問題を解決するための最初の試みとして適しています)。

–tun-mtu 1500 –fragment 1300 –mssfix

OpenVPN MTU関連設定

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る