0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Vyos openvpn_tcpによるsite-to-site通信(tcp)

0
Last updated at Posted at 2026-02-25

概要

VyOSのOpenVPNは、UDPだけでなくTCPを使用することも可能。
TCP接続を使用することで、ファイアウォールの通過が容易になったり、特定のポート(例:443)を利用して通信をカプセル化したりできる利点がある。
以下に、接続を待ち受けるPassive側と、接続を開始するActive側の設定例をまとめる。

名称未設定ファイル.drawio.png

実行バージョン:Vyos1.4

前提条件

今回の設定はトンネル自体はipv4で接続を行い、ipv4のトンネルの中にipv6の通信を通す。という形になる。そのため、vtun0のlocalhostにはグローバルIPが設定されていない。

1.共通設定:共有鍵(Shared Secret)の生成

両拠点で同じ鍵を使用する必要があります。

共有鍵(vpn-key)の設定
set pki openvpn shared-secret vpn-key key '共通鍵...(省略)'
set pki openvpn shared-secret vpn-key version '1'

事前共通鍵は基本的には非推奨。本当は別の方法が行った方が良い

2. Passive側(拠点A:接続待機)の設定

外部からのTCP接続を待ち受けるルーターの設定です。protocol tcp-passiveを指定します

openvpn インターフェース設定。tcpのパッシブモードで、local-hostに自身のグローバルIPを指定する。

groIP側
set interfaces openvpn vtun0 mode 'site-to-site'
set interfaces openvpn vtun0 protocol 'tcp-passive'
set interfaces openvpn vtun0 local-host 'xxx.yy.zzz.250'
set interfaces openvpn vtun0 local-port '443'

トンネル内IPアドレス設定。
local-addressと、remote-addressで、今回v4とv6で二つのIPを追加している。トンネル間の通信用に接続するプライベートIPをここで利用する。

groIP側
set interfaces openvpn vtun0 local-address 192.168.85.2
set interfaces openvpn vtun0 remote-address '192.168.85.3'
set interfaces openvpn vtun0 local-address fd00:85::2
set interfaces openvpn vtun0 remote-address 'fd00:85::3'

認証と永続化の設定

groIP側
set interfaces openvpn vtun0 shared-secret-key 'vpn-key'
set interfaces openvpn vtun0 persistent-tunnel

Active側(拠点B:接続開始)の設定

Passive側へ向けて接続を開始するルーターの設定です。protocol tcp-activeを指定します

OpenVPNインターフェース設定
xxx.yy.zzz.250には、対向のグローバルIPを入れる。

priIP側
set interfaces openvpn vtun0 mode 'site-to-site'
set interfaces openvpn vtun0 protocol 'tcp-active'
set interfaces openvpn vtun0 remote-host 'xxx.yy.zzz.250'
set interfaces openvpn vtun0 remote-port '443'

トンネル内IPアドレス設定

priIP側
set interfaces openvpn vtun0 local-address 192.168.85.3
set interfaces openvpn vtun0 remote-address '192.168.85.2'
set interfaces openvpn vtun0 local-address fd00:85::3
set interfaces openvpn vtun0 remote-address 'fd00:85::2' 

以下の内容はもう片方のvyosと一緒の設定である。
認証と永続化の設定

priIP側
set interfaces openvpn vtun0 shared-secret-key 'vpn-key'
set interfaces openvpn vtun0 persistent-tunnel

ルーティングの設定

トンネルを介して通信するために、スタティックルートを設定する。

Passive側からActive側へのルート

groip側
set protocols static route 192.168.86.3/32 interface vtun0

Active側からPassive側へのルート

priip側
set protocols static route 192.168.85.2/32 interface vtun0

注意点

TCP over TCP(TCPトンネルの中でTCP通信を行う)の状態になると、パケットの断片化によりパフォーマンスが低下したり、接続が不安定になったりすることがあるらしい。 これを防ぐために、MSSクランプの設定が推奨されている。

MSSをPMTUに合わせて自動調整する設定

set interfaces openvpn vtun0 ip adjust-mss 'clamp-mss-to-pmtu'
set interfaces openvpn vtun0 ipv6 adjust-mss 'clamp-mss-to-pmtu'

確認コマンド

サイト間VPNの状態表示

show openvpn site-to-site
実行例
vyos@bgp-neginoc-01:~$ show openvpn site-to-site

OpenVPN status on vtun0

Client CN    Remote Host    Tunnel IP    Local Host          TX bytes    RX bytes    Connected Since
-----------  -------------  -----------  ------------------  ----------  ----------  -----------------
N/A          N/A            N/A          実行元のグローバルIP:443  1.3 GB      1.3 GB      N/A

vyos@bgp-neginoc-01:~$ 

OpenVPNのログ確認

show log openvpn
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?