Page 1 of 1

SEILルータとL2TPv3 over IPsecによるVPN通信ができない

Posted: Tue Jul 04, 2017 11:45 am
by t-shimizu
【環境】
[ブロードバンドルーター]
+ PC1(192.168.2.7/Client)
[SoftEther]
| (IPv6)
[SEIL/x86]
|
PC2(192.168.2.5/Server)

SoftEther VPN Server (Ver 4.22, Build 9634, beta)/Ubuntu Server 16.04.2 LTS
SEIL/x86 Fuji 5.63

【現象】
「SEIL シリーズからの L2TPv3 を用いた VPN 接続方法」の
「SEIL ルータにおける設定情報例 #4 (IPv6 ネイティブ環境で通信する場合)」をベースに
L2TPv3 over IPsec の環境を構築しました、
VPN接続は確立しするのですが、VPN経由でPC2は、
・DHCPによるIPアドレスの取得
・PINGによる通信確認
・DNSによる名前解決
はできるのですが、TCP通信が確立できません。(いずれもIPv4のみでの確認です)

通信できない原因を調査するため、SoftEtherとPC1の間でパケットをキャプチャしてみましたが、
Softeherからパケットは送出されているものの、TCPのチェックサムエラーのため、
PC1でパケットが破棄されているようです。

この現象を解決できるような設定等はありますでしょうか?

Re: SEILルータとL2TPv3 over IPsecによるVPN通信ができない

Posted: Thu Jul 06, 2017 9:23 am
by cedar
キャプチャの画面にも書かれていますが、LANカードの checksum offload 機能によってパケットのチェックサムが破壊されるケースがあります。
ローカルブリッジ機能を使用しているLANカードのオフロード関連の機能を無効に設定してみて下さい。

Re: SEILルータとL2TPv3 over IPsecによるVPN通信ができない

Posted: Thu Jul 06, 2017 9:18 pm
by t-shimizu
sudo ethtool --offload [device] rx off tx off
としてみましたが、現象は変わりませんでした。
あれこれやってみたところ、
SoftEtherの仮想 HUB 拡張オプションの「DisableAdjustTcpMss」の値を「1」にセットすると、
チェックサムエラーは発生しなくなり、TCPの通信も確立できるようになりました。

詳細な発生条件はわかりませんが、SoftEtherのMSSの自動調整が機能した場合、
TCPのチェックサムが正しく再計算されないケースがあるのかもしれません。

Re: SEILルータとL2TPv3 over IPsecによるVPN通信ができない

Posted: Fri Jul 07, 2017 2:42 am
by cedar
MSSの自動調整後には必ずチェックサムの再計算が行われるようです。
計算結果が正しくないケースが生じる可能性は分かりません。
https://github.com/SoftEtherVPN/SoftEth ... pIp.c#L828

このキャプチャを行ったホストはどこでしょうか。
PC1でキャプチャされているのであれば、PC1から送信されるパケットについては、オフロードが行われていてLANカードでチェックサムが付加される場合もありますので、まだTCPチェックサムが計算される前かもしれません。