VyOS と Tailscale で高速・冗長化された VPN を作る方法
目的・メリット
IPsec VPN を超える速度で、拠点間通信を暗号化できる
- Tailscale : フレッツ IPoE <-> Nuro で 125Mbps を確認
- IPsec : フレッツ PPPoE <-> Nuro では 50Mbps 程度
ダイナミック ルーティングで、拠点間通信を冗長化できる
グローバル IP が必要ない
- 両拠点とも NAT 配下で OK
- IPsec は、少なくとも片方にグローバル IP が必要
リモートアクセス VPN も同時に構築可能
必要なもの
x86 サーバ x2
タグ Vlan 対応 L2 スイッチ
あると良いもの
x86 サーバ x4
- 2 拠点に 2 台ずつ設置して、物理的にも冗長化させる
タグ Vlan 対応 L3 スイッチ
構築手順
Tailscale のアカウントを作成する
- 冗長化なし : 1 つ
- 冗長化あり : 2 つ
- アカウントが 1 つ + Free プランの場合、tailscale subnet router は同じプレフィックスを 1 台しか広報できない
VyOS をハイパーバイザにインストール
- WAN 側ポートグループに DHCP や PPPoE などの Vlan を割り当て、eth4 にアサイン
- LAN 側ポートグループにホストや L3SW の Vlan を割り当て、eth0 にアサイン
- VyOS の CD-ROM をマウントして起動、install image で VM の HDD へインストール
VyOS をインターネットに接続する設定を行う
VyOS に Tailscale をインストールする
- VyOS 1.4 の場合、ベースとなる Linux[1] Debian 11 Bullseye の手順を使用する
- VyOS の CLI から、直接 bash shell のコマンドを投入可能
- これはインストール直後に行ったほうが良い
- VyOS 設定後に tailscale をインストールすると、VyOS が正常に動作しなくなる場合があった
VyOS を再起動
VyOS で WAN 側ルーティングを設定する
- PPPoE や DHCP などでインターネットに接続し、tailscale を動作可能にする
VyOS で tailscale を起動する
VyOS で WAN 側 VPN にルーティングを設定する
- 冗長化しない場合は、スタティックルーティングで OK
- 冗長化する場合は、BGP でダイナミックルーティングさせる
VyOS で LAN 側にルーティングを設定する
- ホストを直接収容する場合 : VRRP で冗長化する
- LAN 側に L3 スイッチがある場合 : OSPF / BGP で冗長化する
TIPS
tailscale の subnet router は、有効化時に VyOS の動作に影響がある
- 2 台のルータで同じプレフィックスを advetise-routes すると、片方は通信できない
- subnet router 冗長化は有料プランのため、Free プランだとこの動作となる模様
- LAN 側の OSPF も止まる
リファレンス
100台まで無料のVPNサービス「tailscale」、リンクだけでマシンのシェアも可能!?
引用
- ↑ 2021-06-25 T3641 (feature): Upgrade base system from Debian Buster -> Debian Bullseye