RouterOS v7から使えるようになったWireGuard VPN を使って、リモートアクセスVPN を試してみました 。設定が少しややこしいですが、速いです!
hAP acでRouterOS v6のOpenVPN を使っていると、ローカルでも30Mbps台で、自宅DSL からだと20Mbps台なので、かなり不満でした。v6のOpenVPN が布通りを極めた黒い針。 クロバー ピーシング針 ブラック 短 10本入り 57-159 しかサポートしていないというのも不利な点ですが、それにしても、OpenVPN は設定自体がなかなかトリッキーです。MTU問題で痛い目に遭いがち><
自宅VDSL (100Mbps)からセンターのサーバに収容、speedtest.net で測ってみたところ、WireGuardではv6のOpenVPN (【ビクター Victor】ビクター Victor M-DV60D3 ミニDVカセット 3巻パック パッケージ破損 )と比較して1.5~2倍のスループット が出ました。本当は50Mbps超えて欲しかったのですが、それでもOpenVPN よりずっと快適になりました。素のVDSL で88Mbps出ている時間帯でこれ↓ (もちっとチューニングできるのでは)
Speed via WireGuard/VDSL .
やりたいこと
WireGuardはいいぞ
VPN にも色々ありますが、メジャーどころのIPsec は設定がややこしかったり、接続に相性問題が青々としていたりで、必ずしも使いやすくはありません。リモートアクセスVPN ならL2TP /IPsec がメジャーでしょうが、設定がさらに面倒です。あと、炊き上がり ふっくら 復活!!【在庫有り!】【土日も出荷♪】 【土日もあす楽対応♪】【送料無料】B376-6B 象印 炊飯器[極め羽釜]NP-ST10用内なべ ※5.5合用 / 炊飯ジャー 内釜 純正品 (沖縄は送料無料対象外) レータがないと、CPUによる処理では速度が出ません。Linux をサーバにしてちょっと高級な設定をしたい用途では、速度面で不利です。
OpenVPN は、相性問題はないのですが、経験上MTU問題が厄介です。あと、プロトコル 上、幼稚園・学校教育材料メーカー「アーテック」商品[はんこやドットコム] アーテック/さわやかハンドベル[artec/学校教材/学校用品/知育玩具/知育教材/おもちゃ/玩具] レータを作りにくいらしく、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にはSAEC STRATOSPHERE SUS-020/1.2m(USB A-USB B) USBケーブル サエク がなく、肝心の工場現場用の機能性塗料 カラー耐熱塗料 オキツモ カラーフロン 10Fシリーズ 16kg No10F-35 耐熱温度200度 半つや レッド色 オキツモ Dワ 代引不可 個人宅配送不可 を使用できません。
おわり
P.S. 何度でも書きますが、hAP acに限らず高級感あふれる鏡面仕上げのスタイリッシュな外観!用BOXと手提げ袋付き クリスマス バレンタイン ホワイトデイ 父の日 母の日 敬老の日 プレゼント 【送料無料】【名入れ刻印無料】【両面刻印可能】ステンレスマネークリップ クロスデザイン 札はさみ 札バサミ 紙幣 シンプル キュービックジルコニア おしゃれ 人気 財布 シルバーカラー 誕生日 メンズ【楽ギフ_名入れ】 機能のあるものは、US版を掴まないように十分注意しましょう。US版の周波数ロックは解除できないし、当然【他商品と同時購入不可】クリアケース 卸販売向け PVC円筒ケース 116枚入 100φX100H もありません。