仕様変更
IPsecやIP-IPでカプセル化する際の、ToS/Traffic Classの扱いを変更しました。
従来は、IPsecインタフェース及びTunnelインタフェースにおいて、カプセル化前のパケットのヘッダのToS/Traffic Class値を、カプセル化後のパケットのヘッダにコピーしていました。これを次のように変更しました。
- デフォルト動作ではカプセル化前のパケットからToS/Traffic Class値をコピーせず、"0x00"とします。
- 設定により、カプセル化後のパケットのToS/Traffic Classに任意の値(0x00 - 0xff)を指定できます。または、従来と同じくコピーするよう設定できます。
追加されたコマンド
interface <ipsec> tx-tos-set { <tos> | copy | system-default }
interface <tunnel> tx-tos-set { <tos> | copy | system-default }
ToS/Traffic Class値
ToS/Traffic Class値はパケットのQoS制御に利用する識別子です。VoIPなどのリアルタイム性の高い通信の識別などでしばしば利用されますが、この値を元にQoS制御を実現するにはネットワーク全体で値の取り扱いについて合意している必要があります。
本機の一般的な設置環境において、IPsecやIP-IPによるカプセル化後のパケットはインターネットなどの外部ネットワーク に送信されます。VPNの拠点間で送受信するカプセル化前のパケットのToS/Traffic Class値はユーザのネットワーク環境で合意された値ですが、一部の回線サービスではサービス網内で独自に合意したToS値を採用していることがあり、このようなケースではカプセル化後のヘッダにToS値を転記することで不都合を生じる可能性があります。
このため、カプセル化した後のパケットについてはToS/Traffic Class値を常に 0 として、QoS制御の対象外とするよう変更しました。
具体例
NTT東西のNGNを利用して網内折り返し通信によるVPNを張る際に、VPNパケットのToS/Traffic Classが特定の値であると、網内のQoS制御により通信速度が極端に低下するなどの現象に遭遇することがあります。
従来のファームウェアでは、IPsecインタフェースまたはTunnelインタフェースを通るパケットをカプセル化する際にToS/Traffic Class値をそのままコピーしていたため、VPN内の通信にQoS制御のためのToS/Traffic Class値が付加されていると、NGN内のQoS制御の影響を受けてしまう場合がありました。
今回の仕様変更では、カプセル化時にToS/Traffic Class値をコピーせず"0x00"を使用するよう改めており、これによって上記のような現象に遭遇しなくなることを確認しました。
さらに、カプセル化時に任意のToS/Traffic Class値を指定できる機能を追加しました。これにより、ネットワーク上のQoS制御を考慮したVPNパケットの送信が可能になります。