#!/bin/bash #----------------------------------------------- openvswitch再起動スクリプトここから # VPN用のtapの起動。 # そのままだとSoftEtherが起動を完了しないうちにOpenvswitchが起動してしまい # tapをうまく追加できず疎通ができない。そこでSoftEtherのtapが起動したのを # 確認してからOpenvswitchを再起動させる。 # OpenvswitchはSoftEther以外のメンテ用のインターフェイスも兼ねているので # SoftEtherが起動してから起動するように設定するのは不安があるためここに記述 # して再起動をかける。 # tapデバイスのIF名をここで設定する IF_TAP=tap_0 # VPNの接続の確立を確認するホスト(ここにpingが飛ぶ) CHECK_HOST=192.168.1.1 # openvswitchを再起動してこの回数PINGを投げて疎通が確認できない場合は再度Openvswitchを再起動する PING_COUNT=30 # ここは初期化してるだけ。設定ではない。 # TAPの起動が確認できた場合この値を1にする。 TAP_OK=0 # 5回試行してTAP用のインターフェイスが上がらないようなら諦める for CNT in 1 2 3 4 5 do if ifconfig $IF_TAP > /dev/null 2>&1; then TAP_OK=1 break; fi echo Waiting $IF_TAP ... sleep 1 done # tapが上がらなかったら終了にする if [ $TAP_OK -ne 1 ]; then echo $IF_TAP is down! exit 1 fi # pingの疎通を確認する PING_OK=0 for CNT in 1 2 3 4 5 do systemctl restart openvswitch-switch # openvswitchを再起動して$PING_COUNT回pingを投げて無事帰ってくればクリア echo "Ping to $CHECK_HOST ..." if ping -c $PING_COUNT $CHECK_HOST | egrep from.*icmp_seq.*ttl.*time.*ms$ > /dev/null; then PING_OK=1 break; fi done if [ $PING_OK -ne 1 ]; then echo $CHECK_HOST is down! exit 1 fi #----------------------------------------------- openvswitch再起動スクリプトここまで exit 0