openwrt 同士で wireguard を張ってみる

ルーターなどのマシーン同士で wireguard を張ってみます。

🎵 本日の一曲

お洒落なミクうたです。 落ち着いた曲です。

バージョン情報

投稿日: 2025/07/31 openwrt: OpenWrt SNAPSHOT, r28931-90dee1ab306o 実験機器: fortigate 50e

note

2025 年 7 月の snapshot では、パッケージマネージャーが opkg から apk に変更になってます。
この記事でもパッケージマネージャーは apk を使用します。

パッケージインストール

# apk search wireguard
kmod-wireguard-6.6.80-r1
luci-proto-wireguard-25.192.00988~4715c6a
wireguard-tools-1.0.20250521-r1
  • kmod: カーネルモジュール
  • luci-: web ui 対応
  • wireguard-tools: wireguard に必要なコマンドなど

この 3 つをインストール

構成について

今回は openwrt 機二つで、インターネット越しに vpn を張ってみようと思います。

通常のネットワーク(アンダーレイ)

flowchart LR
    fg1["Fortigate 50E"] --- n1["インターネット"]
    n1---fg2["Fortigate 50E"]

    n1@{ shape: rounded}
---
config:
  theme: redux
---
flowchart LR
    ip1["FD00::0/64"]
    node_a["a"]
    node_b["b"]
    node_a -- 1 --- ip1
    ip1 -- 2 --- node_b
    style ip1 stroke:none,color:none,fill:transparent

wireguard 内部からみたネットワーク(オーバーレイ)

flowchart LR
    fg2["Fortigate 50E"] -- Wireguard --- fg1["Fortigate 50E"]
---
config:
  theme: redux
---
flowchart LR
    ip1["192.168.1.0/24"]
    node_a["a"]
    node_b["b"]
    node_a -- 1 --- ip1
    ip1 -- 2 --- node_b
    style ip1 stroke:none,color:none,fill:transparent

鍵について

いわゆる ssl ってやつです。 ssh とほぼ同じ。
Curve25519 となんか聞き馴染みのありそうな鍵アルゴリズムを使ってる1ようですが、ed25519 とは別物のそうです。2

VPN を繋げてみる

gui でできます。

参考

wikipedia