SoftEther VPN サーバー管理マネージャのローカルプリッジ設定にて作成したtapデバイス(tap_vpn)をブリッジするために下記のように設定を変更。
1 2 3 4 5 6 7 |
auto br0 iface br0 inet static address 192.168.XXX.XXX netmask 255.255.XXX.XXX gateway 192.168.XXX.XXX bridge_ports eth0 tap_vpn |
OS再起動後、brctl show してみるとなぜかブリッジされていない。
1 2 |
bridge name bridge id STP enabled interfaces br0 8000.00ac48621ad4 no eth0 |
どうやらtapデバイスが作成される前にブリッジしようとすることが原因と思われるので、下記サイトを参考にSoftEther VPN Serverの起動時にtapデバイスがブリッジできるまでリトライするスクリプト・ファイルを作成。なお、スクリプトはそのままでは正常に動作しなかったのでだいぶ修正しています。
SoftEherVPNでTAPデバイスとのブリッジが失敗する場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#!/bin/sh BRCTL=/sbin/brctl BRIDGE=br0 TAP_DEVICE=tap_vpn LOOP_CNT=0 while [ $LOOP_CNT -lt 20 ] do sleep 1 BR_STATUS=`$BRCTL show $BRIDGE | grep $TAP_DEVICE | wc -l` if [ $BR_STATUS -gt 0 ] then break fi $BRCTL addif $BRIDGE $TAP_DEVICE LOOP_CNT=`expr $LOOP_CNT + 1` done exit 0 |
あとは、作成したスクリプトをSoftEther VPN Serverの起動設定に追加して、
1 2 3 4 5 6 7 8 9 10 11 12 |
[Unit] Description=VPN service [Service] Type=oneshot ExecStart=/usr/local/vpnserver/vpnserver start ExecStop=/usr/local/vpnserver/vpnserver stop ExecStartPost=/usr/local/vpnserver/vpnserver-tap-enable.sh <--この行を追加 RemainAfterExit=yes [Install] WantedBy=multi-user.target |
OS再起動し、brctl show してブリッジされていることを確認。
1 2 3 |
bridge name bridge id STP enabled interfaces br0 8000.00ac48621ad4 no eth0 tap_vpn |
結論だけ見ると簡単そうですが、Linux初心者の私にはこれだけで数日悩みました。参考まで。