6.9. IPsec VPN 接続の TCP フォールバックの設定
標準の IPsec VPN は、UDP および Encapsulating Security Payload (ESP) プロトコルをブロックする制限付きネットワークでは、失敗する場合があります。このような環境での接続性を確保するために、Libreswan は RFC 8229 で説明されている方法を使用して、すべての VPN トラフィックを TCP 接続内にカプセル化できます。
VPN パケットを TCP 内にカプセル化すると、スループットが低下し、レイテンシーが増加する可能性があります。このため、TCP カプセル化はフォールバックオプションとして使用するか、UDP ベースの接続が環境内で一貫してブロックされている場合にのみ使用してください。
前提条件
- IPsec 接続が設定されている。
手順
/etc/ipsec.conf
ファイルを編集し、config setup
セクションで次の変更を加えます。TCP ポートをリッスンするように Libreswan を設定します。
listen-tcp=yes
listen-tcp=yes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトでは、Libreswan はポート 4500 をリッスンします。別のポートを使用する場合は、次のように入力します。
tcp-remoteport=<port_number>
tcp-remoteport=<port_number>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow UDP が利用できない場合に TCP をフォールバックオプションとして使用するか、TCP を永続的に使用するかを決定します。
フォールバックオプションとして使用するには、次のように入力します。
enable-tcp=fallback retransmit-timeout=5s
enable-tcp=fallback retransmit-timeout=5s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトでは、Libreswan は UDP を使用した接続の試行が失敗した後、TCP 経由の接続を再試行するまで 60 秒間待機します。
retransmit-timeout
値を下げると遅延が短縮され、フォールバックプロトコルをより迅速に開始できるようになります。UDP の代わりに永続的に使用するには、次のように入力します。
enable-tcp=yes
enable-tcp=yes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ipsec
サービスを再起動します。systemctl restart ipsec
# systemctl restart ipsec
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトの 4500 以外の TCP ポートを設定した場合は、ファイアウォールでそのポートを開きます。
firewall-cmd --permanent --add-port=<tcp_port>/tcp firewall-cmd --reload
# firewall-cmd --permanent --add-port=<tcp_port>/tcp # firewall-cmd --reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - このゲートウェイを使用する各ピアでこの手順を繰り返します。