0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GL.iNet WireGuardのグローバルモードでインターネットに出られない原因と解決

0
Last updated at Posted at 2026-06-01

要約

GL.iNet Beryl 7(GL-MT3600BE)でWireGuardクライアントをグローバルモードにしたとき、自宅LANには繋がるのにインターネットに出られないという問題にハマった。

原因はWireGuardのPeer設定の AllowedIPs にあった。GL.iNetはこの値を使って独自のポリシールーティングテーブル(table 1001)を構築しており、AllowedIPs0.0.0.0/0 が含まれていないとインターネット宛のパケットがblackholeに落ちる。

環境

  • クライアントルーター: GL.iNet Beryl 7(GL-MT3600BE)/ GL.iNet 4.8.7(OpenWrt 21.02-SNAPSHOT)
  • WireGuardサーバー: Raspberry Pi Zero 2 W(Raspberry Pi OS Lite 64bit)
  • 構成: Beryl 7をWireGuardクライアント兼ルーターとして使用、配下の端末をまとめて自宅LAN経由で通信

症状

WireGuardを接続してVPNダッシュボードをグローバルモードにした状態で:

  • 192.168.68.x(自宅LAN)にはアクセスできる ✓
  • google.com などインターネットへのアクセスが全滅 ✗

ChromeのHARファイルを確認したところ、dns: -1connect: -1status: 0 という結果で、TCPコネクションを張る前の段階で詰まっていた。

調査手順

Pi側でトラフィックが届いているか確認

sudo iptables -L FORWARD -n -v

結果:

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

FORWARDに0パケット。PiにはVPN経由のトラフィックが一切届いていなかった。PiのIPフォワーディングやMASQUERADEの問題ではなく、Beryl 7からトラフィックが出ていないことが判明。

Beryl 7のルーティングを確認

ip route get 8.8.8.8
8.8.8.8 via 10.22.45.243 dev apcli0 src 10.22.45.30

インターネット宛のパケットがWireGuardトンネル(wgclient1)ではなく、WAN側のapcli0から直接出ていた。

ポリシールーティングテーブルを確認

ip route show table all | grep -v "^unreachable\|^prohibit"

table 1001の中身:

10.0.0.0/24      dev wgclient1  table 1001
192.168.68.0/22  dev wgclient1  table 1001
blackhole default                table 1001  metric 254   ← ここで全部落ちる

原因

GL.iNetは独自のポリシールーティングエンジンを持っており、LAN側のトラフィックにfwmark(0x1000)を付けてtable 1001に流す仕組みになっている。

table 1001にはWireGuardクライアントのPeer設定で指定した AllowedIPs を元にしたルートのみが追加される。AllowedIPs = 192.168.68.0/22 のままだと、table 1001には自宅LANのルートしか存在せず、インターネット宛のパケットは blackhole default に当たって捨てられる。

LAN client → fwmark 0x1000 → table 1001
  192.168.68.x → wgclient1 ✓
  8.8.8.8      → blackhole ✗

グローバルモードに切り替えても table 1001 が更新されないため、WireGuardのPeer設定とGL.iNetのポリシールーティングを別々に理解しないとハマる。

解決方法

WireGuardクライアントのPeer設定で AllowedIPs0.0.0.0/0 に変更する。

管理画面(192.168.8.1)→ VPN → WireGuard クライアント → 該当クライアント → Peer設定 → AllowedIPs を 0.0.0.0/0 に変更して保存・再接続。

変更後のtable 1001:

10.0.0.0/24      dev wgclient1  table 1001
192.168.68.0/22  dev wgclient1  table 1001
0.0.0.0/0        dev wgclient1  table 1001  ← 追加される

これでインターネット宛もWireGuardトンネル経由で転送され、Pi側でMASQUERADEされてインターネットに出られるようになる。

速度について

グローバルモードでの実測値(スマホテザリングをWANとして使用):

モード ダウンロード アップロード レイテンシ
VPN OFF(直接) 65.6 Mbps 7.65 Mbps 41ms
VPN ON(グローバル) 7.58 Mbps 1.95 Mbps 69ms

グローバルモードではすべての通信が自宅Piを経由するため、Pi Zero 2(wg-server)のWireGuard暗号化処理がボトルネックなのかもしれない。

推奨構成

AllowedIPs = 0.0.0.0/0 にしておいたうえで、VPNダッシュボードのポリシーモードで用途に応じて使い分けるのがおすすめ。

ルール 宛先 用途
Primary Tunnel(常時ON) 192.168.68.0/22 自宅LANへの常時アクセス
ALL(必要なときON) 全対象 カフェなど不特定Wi-Fiで全通信を自宅経由に

AllowedIPs = 0.0.0.0/0 はルーティングの「能力」を定義するだけで、実際にどのトラフィックをVPN経由にするかはダッシュボードのポリシーで制御できる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?