[Bug]: Predefined traffic sets default route on macOS

オープン
#1,331 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
52/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
rust
領域
networking

調査の方向性

Start by tracing how the macOS client configures routes when connecting with predefined traffic; the issue identifies netstat -rn as the way to observe the result but names no source files or tests. Compare the routes before and after connecting and investigate why a default route appears. Done when predefined traffic installs only the location’s configured routes and leaves the default route unchanged.

索引モデルが issue の本文から書いたものです。

説明

bug
Summary

When choosing predefined traffic and connecting to the VPN, a default route is set (visible via netstat -rn).
We assumed that predefined traffic only routes the subnets defined in our location. A customer who relies on Defguard can't work properly, because his other active WireGuard tunnels can't function while Defguard hijacks the traffic.

Steps to reproduce
  1. Check routes via netstat -rn (especially default routes).
  2. Connect via predefined traffic.
  3. Check routes via netstat -rn again.
  4. There is now a default route on the Defguard interface.
Expected behavior

No default route is set, only the routes defined in the location for predefined traffic.

Workaround by a customer: Create a VM on macOS, install the Defguard client in it and use the VM as a router. Only allow the routes that are required for using Defguard.

Actual behavior

A default route is set, which prevents customers and potentially colleagues from using multiple VPNs at the same time as Defguard.

Defguard version

All version on the latest 2.1 stable build

Environment details

macOS (any tested version after 2024)

Deployment / install method

Docker / Docker Compose

Relevant logs / output

Relevant configuration (redacted)

主要言語
Rust
スター
373
フォーク
42
平均マージ
20時間 54分
マージ済み PR(30日)
51

環境構築

  • Dockerfile・Docker Compose ファイルなし
  • プルリクエストのテンプレートあり
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

DefGuard/client のほかの issue

DefGuard/client の issue をすべて見る

似ている issue

Rust の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。