RouterOS v7から使えるようになったWireGuard VPN を使って、リモートアクセスVPN を試してみました 。設定が少しややこしいですが、速いです!
hAP acでRouterOS v6のOpenVPN を使っていると、ローカルでも30Mbps台で、自宅DSL からだと20Mbps台なので、かなり不満でした。v6のOpenVPN が新生児から大人まで、成長に合わせて形を変えながら座れる一生モノのチェア! 【送料無料】ファルスカ スクロールチェア プラス ホワイトウォッシュ×ブラック 北欧 おしゃれ ベビーチェア バウンサー ベビーベッド 大人になっても座れる 一生モノの椅子 SG耐荷重試験合格 SG転倒試験合格 しかサポートしていないというのも不利な点ですが、それにしても、OpenVPN は設定自体がなかなかトリッキーです。MTU問題で痛い目に遭いがち><
自宅VDSL (100Mbps)からセンターのサーバに収容、speedtest.net で測ってみたところ、WireGuardではv6のOpenVPN (【数量限定】ハワイアンブレスレット 《KK-BY-01》 )と比較して1.5~2倍のスループット が出ました。本当は50Mbps超えて欲しかったのですが、それでもOpenVPN よりずっと快適になりました。素のVDSL で88Mbps出ている時間帯でこれ↓ (もちっとチューニングできるのでは)
Speed via WireGuard/VDSL .
やりたいこと
WireGuardはいいぞ
VPN にも色々ありますが、メジャーどころのIPsec は設定がややこしかったり、接続に相性問題が青々としていたりで、必ずしも使いやすくはありません。リモートアクセスVPN ならL2TP /IPsec がメジャーでしょうが、設定がさらに面倒です。あと、世界史の扉を開けて Vol.3「大海原の彼方へ希望を乗せて」 【DVD】 レータがないと、CPUによる処理では速度が出ません。Linux をサーバにしてちょっと高級な設定をしたい用途では、速度面で不利です。
OpenVPN は、相性問題はないのですが、経験上MTU問題が厄介です。あと、プロトコル 上、※現在レンタルをご利用頂いている方専用の期間延長用となります※新規レンタルはこちらから注文出来ません。 【レンタル延長1ヶ月】 コンビ 調乳じょ~ず70HW 126274【 ベビー用品 】【レンタル】 調乳じょーず レータを作りにくいらしく、CPUパワーがないとショボショボの性能になります。自分の用途では、超小型IoT機器でVPN を使いたいので、まず無理ですね。
さて、WireGuardはというと、CPUによる処理でも効率が高く、しかもサーバ/クライアントとも設定が楽という……、これで人気が出ないはずはありません。実際、多くのプラットフォームに実装されています。すぐにも使いたいのですが、残念ながらRouterOS v6には搭載されず、v7の正式版がなかなか出ないという状況。ぐぬぬ 。
ところで、後に書きますが、WireGuardも全方位で使いやすいというわけではないので、過度な期待はしないでください。
RouterOS v7のWireGuard設定
設定ガイドはここ。本記事の執筆時点で、拠点間接続の例しか書かれていないので、色々と悩むことに……。 10
help.mikrotik.com
hAP acをv7.1beta6にアップグレードして、WireGuard関係のメニューが生えてきたところで、「後は楽勝でしょ!」と思ってしまったのが運の尽き……。最初からこのドキュメントに出会っていれば、少しは楽だったのです。
Linux でwg0.confをいじったり、OpenWrtのLuCIでWireGuardの設定をしたことのある人は、あれ? と思うかもしれません。RouterOSのWireGuardの設定では、クライアント側のIPアドレス を設定する場所が見当たりません。これ、ドキュメントにあるとおり、WireGuardメニューないしCLI でインタフェースを生やした後、/ip/address の方で手作業でIPアドレス を付与しないといけません 。IPアドレス 入力欄がWireGuardメニューにないのが落とし穴です。
あと、WireGuardでは、両側のピアが入るローカルサブネットとIPアドレス をあらかじめ決めておく必要があります。 クライアント側にDHCP 的にアドレスを振るような仕組みは(今のところ)ないようです。これが、多数の利用者を対象にしたリモートアクセスVPN に使いにくいところ。
例えば、サブネットを 172.16.1.0/24、サーバ側アドレスを172.16.1.1、クライアント(hAP ac)側を172.16.1.2にする場合、以下の操作でwireguard1インタフェースが生えて、アドレスが付きます。
> /interface/wireguard/add listen-port=51820 name=wireguard1 > /ip/address/add address=172.16.1.2/24 interface=wireguard1 > /ip/route/add dst-address=172.16.1.0/24 gateway =wireguard1
とりあえず、初見でハマったのはこれぐらいです。あとは、クライアント (hAP ac) の鍵ペアと、サーバの公開鍵、IPアドレス 、ポートを設定して、以下のようになればOK。
> /interface/wireguard/print detail Flags: X - disabled; R - running 0 R name="wireguard1" mtu=1420 listen-port=51820 private-key="<クライアントの秘密鍵 >" public-key="<クライアントの公開鍵>"
> /interface/wireguard/peer/print detail Flags: X - disabled 0 ;;; wgsrv interface=wireguard1 public-key="<サーバの公開鍵>" endpoint-address=<サーバのIPアドレス > endpoint-port=51820 current-endpoint-address=<(ここは自動表示される)> current-endpoint-port=51820 allowed-address=172.16.1.0/24 persistent-keepalive=25s rx=0 tx=0
注: WebFigのWireGuard peer設定でallowed-addressを入力しても、値が入らないことがありました。その場合はCLI の方で設定しましょう。
以上でWireGuardが接続できるはずです。サーバ側から ping 172.16.1.2、クライアント側から ping 172.16.1.1 すれば、互いに応答があるはずです。IF ない GOTO 10
WireGuardをdefault routeにする設定
今回の目的である、hAP acに収容した端末のトラフィック をすべてWireGuard側に流し、LANには通さないようにする、そのような設定を行います。
手っ取り早く、WireGuard peerの設定メニューで Add Default Route のチェックボックス を探すわけですが……、ない!_('、3」∠)_
WireGuard peer config.
「そこになければないですねぇ」
OpenVPN -clientの設定には普通に存在する Add Default Route が、どういうわけかWireGuardにはありません。
仕方がないので、手探りで……。必要な設定は以下のとおり。
WireGuardで 0.0.0.0/0 を受け付けられるようにする。
サーバのIPアドレス の経路を、hAP acが接続されているLANに向ける (重要) 。
IP routeの設定で 0.0.0.0/0 すなわち default を wireguard1 に向ける。
wireguard1に対してmasqueradeを有効にする。
元からある default route を外し、ether1 に流れないようにする。 (metricを増やすだけでは不十分。default routeを外しにくいならmasqueradeを切る方法もある)
ぇ、簡単?……やってみそ😏 経路の設定・解除方法は、分かりますよね?
wireguard1のallowed-addressを変更する必要があります。
> /interface/wireguard/peers/set 0 allowed-address=0.0.0.0/0
masqueradeは、要するにNAPTですね(コラ)。(サーバ側のNAPTは設定済みと仮定)
こんな感じになるように、wireguard1に対してmasqueradeを設定すればOK。
> /ip/firewall /nat/print Flags: X - disabled, I - invalid; D - dynamic 0 X ;;; defconf: masquerade chain=srcnat action=masquerade out-interface=ether1
1 I ;;; lte1 not ready chain=srcnat action=masquerade out-interface=*A log=no log-prefix=""
2 chain=srcnat action=masquerade out-interface=wireguard1 log=no log-prefix=""
さて、今回ハマったのがこれ……、トンネルの外側でサーバに直接つながる経路の設定です。サーバへの経路を ether1 に向けるだけでしょと思ったそこの私、ハズレです。
gateway =ether1 に設定すると、wireguard1インタフェースのRx表示がピクリとも動きません。仕方がないので、ether1の代わりに、hAP acを接続したLANのゲートウェイ のIPアドレス を指定してみます。動きました!
ただ、このように固定アドレスを設定すると、hAP acを持ち運んであちこちのDHCP 付きLANにつないで使うといったことができなくなります。というわけで、問題は半分しか解決していません。
MikroTikさん、WireGuardにも Add Default Route ☑ を付けてくださいよ~ 🙏
課題
上記のとおり、default routeの扱いに少し難があるので、早急に改善してもらいたいところです。
hAP acをオフにして、再度オンにしたときに、WireGuardの接続が回復しないことがあります。うまく復活することもあります。想定している用途では、接続が回復しないのは致命的です。サーバ側で一度WireGuardをdown/upすると復活できるのですが、他のクライアントも巻き込んでしまう問題があります。解決法が分かる人がいたら、ぜひ教えてください。
[2021/8/15追記] 後継のhAP ac2にもv7.1beta6を入れることができたので、同様の設定でWireGuardを試してみました。こちらはなんと80Mbps程度出ました。acがMIPS 、ac2がARMで、OpenVPN の性能はac2の方が若干低かったのですが、意外な結果です。残念なことに、現時点でhAP ac2には【PROPA9ANDA × 晁直 (lynch.) 限定コラボレーション】 PROPA9ANDA × 晁直 (lynch. / ANOVERLAY)「ICON DAZZLE CAMO BANDANA」プロパガンダ × ASANAO 限定コラボバンダナ ヘアバンド スカーフ ストール 黒 ブラック メンズ レディース ロック パンク ROCK PUNK バンド ギフトラッピング無料 ステージ衣装 Rogia がなく、肝心の【送料無料】3段ベッド すのこ 省スペース 新入学 耐震 【送料無料】【耐荷重500kg】収納式 3段ベッド 三段ベッド ガイア-GAIA-GUP(本体のみ)アイアン 大人用 子供用 耐震 ベッド 寮 社宅 シェアハウス を使用できません。
おわり
P.S. 何度でも書きますが、hAP acに限らず代表画像につき、長さをご確認くださいませ 【送料無料】延長ケーブル3本セット(電源-送給装置間) 6芯 15M Panasonic CO2/MAG溶接機用 350A 350RF/AA ECGA38-6-15NR 機能のあるものは、US版を掴まないように十分注意しましょう。US版の周波数ロックは解除できないし、当然ステンレスリング ペアリング ジュエリー アクセサリー 桜 ステンレスリング ペアリング ジュエリー アクセサリー 桜花リング リング 結婚 婚約 指輪 マリッジリング サージカルステンレス メンズ レディース ユニセックスリング プレゼント もありません。