VyOS と Tailscale で高速・冗長化された VPN を作る方法
目的・メリット
IPsec VPN を超える速度で、拠点間通信を暗号化できる
- Tailscale : フレッツ IPoE <-> Nuro で 125Mbps を確認
- IPsec : フレッツ PPPoE <-> Nuro では 50Mbps 程度
ダイナミック ルーティングで、拠点間通信を冗長化できる
固定・動的グローバル IP が必要ない
- IPsec は、少なくとも片方にグローバル IP が必要
- Tailscale は両拠点とも NAT 配下で OK
リモートアクセス VPN も同時に構築可能
必要なもの
x86 サーバ x2
タグ Vlan 対応 L2 スイッチ
あると良いもの
x86 サーバ x4
- 2 拠点に 2 台ずつ設置して、物理的にも冗長化させる
タグ Vlan 対応 L3 スイッチ
論理構成例
West01,02 , East01,02 : VyOS 1.4
West_vSwitch , East_vSwitch : ESXi vSwitch
West_PC01 , East_PC01 : LAN ホスト
ポイント
BGP は Tailscale の 100.64.x.x/32 でピアを張らず、広報する集約ルートから切り出したサブネットを使用し、Loopback (以下 Lo) インターフェースで BGP セッションを張る
- 100.64.x.x/32 で張ると、広報する内部ネットワークが通信できない場合にも BGP ピアを張り続けてしまう
- 例) Tailscale で同一サブネットを 2 つのノードで advertise-routes したとき、片方のノードで集約ルートが通信不可にる
- BGP ピアの宛先 Lo 宛 Static Route を interface tailscale0 に向ける + ebgp-multihop 2 を設定
- Lo のルート交換に OSPF を試してみたが、動作しなかった
構築手順
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 で冗長化する
冗長切替のポイント
BGP ピア Down 時は、わたり eth2 の OSPF + iBGP で迂回するか、下位 IGP に対抗拠点宛のルート広報をやめて、下位側で迂回させる
わたりレスとする場合は、下位 IGP Down 時に集約ルートの広報をやめる
Tailscale の TIPS
tailscale の subnet router は、有効化時に VyOS の動作に影響がある
- 2 台のルータで同じプレフィックスを advetise-routes すると、片方は通信できない
- subnet router 冗長化は有料プランのため、Free プランだとこの動作となる模様
- LAN 側の OSPF も止まる
リファレンス
引用
- ↑ 2021-06-25 T3641 (feature): Upgrade base system from Debian Buster -> Debian Bullseye