設定
今回はフルトンネル出口側を
親
、入口側を子
と呼びます。
特に明記されていない場合、記載されている作業を親子両方に行ってください。
下準備(親
/子
)
luciにログインしてシステム
→ソフトウェア
よりwireguard
で検索し下記の4つをインストールする
- wireguard-tools
- kmod-wireguard
- luci-proto-wireguard
- mwan3(
子
のみ)
インターフェース作成(親
/子
)
ネットワーク
→インターフェース
を開く
をクリック
適当な名前を付けてデバイスをWireGuard VPN
にする。
とりあえず基本に沿っていい感じに設定すればOK、重要なのは下記の5つ。
-
詳細設定
タブのゲートウェイメトリックを使用
をwanより大きい数値にする
(よくわからなければ0
より大きい数字でOK) -
ピア
タブにて許可されたIPに相手ピアのIPアドレスをサブネット無しで設定する - 拠点間通信をしたい場合、許可されたIPに相手NWのサブネットを追加する
-
子
のみ許可されたIPに0.0.0.0/0
を追加する -
親
/子
共に許可されたIPのルート
にチェックを入れる
この状態でWireGuardインターフェースに設定したIPアドレスに対し相互にPingして通信でき、ついでに拠点間通信も出来ていればインターフェースの設定はおしまい。
mwan3設定(子
)
-
ネットワーク
→MultiWan Manager
を開き、インターフェース
タブを開く -
ネットワーク
→インターフェース
の名前(色がついている所)と同じ名称で名前を入れ、追加
を押す
(おそらく一般的な環境であればwan
/wan6
/今回作成したWireGuardインターフェース
の3つを作ることになると思われる) -
各インターフェースを適宜いい感じに設定する
WireGuardインターフェースの場合のみ、トラッキングホスト名またはIPアドレス
の箇所に対向のWireGuard IPアドレスを指定しconntrackテーブルのクリア
に接続時
/切断時
を追加する。 -
メンバー
タブを開き、適当にメンバー設定を行う。オススメは<IF名>_<メトリック>_<ウエイト>
で名付けると分かりやすい。
インターフェース名やポリシー、ルールと名称を被せることは出来ないので注意。
今回はWireGuardインターフェースを最優先で通信させたいので、下記画像のような状態になればOK。
メトリックは小さければ小さいほどインターフェースが優先され、ウエイトは同じメトリックの場合の重み付けとして使われる。 -
ポリシー
タブを開き、WireGuard
、wan
、wan6
の順に使われるポリシーと、wan
、wan6
のみ使われるポリシーの2つを作る。
下記のような感じに設定できればOK。ここでも名称を被せることは出来ないので注意。
-
ルール
タブを開き、下記画像のように設定する。
多分default_v6は無くても問題ないが、なんとなく付けておいた。
特定のIPアドレスだけトンネルから除外したい場合はdefaultルールの上に特定IPアドレス宛の通信をwan側に向けるポリシーに向けてやったり、一部のアドレスだけトンネルしたい場合は宛先アドレスを書き換えてやればOK。
ここまで正しく設定できていれば、OpenWrtのトップページ最下部に下記画像のような表示が増えているはず。
試しに対向のWireGuardを停止してみると、WireGuardインターフェースが黄色→赤と色が変わり、オフラインになって自動で経路がwan
に切り替わる。
インターフェースを再起動すると、黄色→緑に戻り、自動で経路が戻るようになります。
お疲れ様でした。