Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
wgft
command
wgft は VPS で受けた TCP/UDP を WireGuard 経由で自宅のサービスへ届けるツール。
|
wgft は VPS で受けた TCP/UDP を WireGuard 経由で自宅のサービスへ届けるツール。 |
|
internal
|
|
|
agent
Package agent は自宅側のエージェント(仕様 7 節)。
|
Package agent は自宅側のエージェント(仕様 7 節)。 |
|
agent/allowtargets
Package allowtargets は、エージェントが接続してよい宛先の一覧(設計文書 7 節)。
|
Package allowtargets は、エージェントが接続してよい宛先の一覧(設計文書 7 節)。 |
|
agent/credentials
Package credentials はエージェントの認証情報ファイル(agent.json)を扱う(仕様 9 節)。
|
Package credentials はエージェントの認証情報ファイル(agent.json)を扱う(仕様 9 節)。 |
|
buildinfo
Package buildinfo は、ビルド時に埋め込む値を持つ。
|
Package buildinfo は、ビルド時に埋め込む値を持つ。 |
|
dataplane
Package dataplane defines the dataplane Backend contract (design.md 7a.2, 7a.7 節): what a DataplaneMode's forwarding implementation (userspace and the Linux kernel) offers to the control plane, and the dataplane participant the Runtime in internal/reconcile drives.
|
Package dataplane defines the dataplane Backend contract (design.md 7a.2, 7a.7 節): what a DataplaneMode's forwarding implementation (userspace and the Linux kernel) offers to the control plane, and the dataplane participant the Runtime in internal/reconcile drives. |
|
dataplane/linuxkernel
Package linuxkernel is the kernel dataplane Backend (design.md 6.1, 7a.7, 7a.8 節 Phase 3): kernel WireGuard (linuxkernel/wg), nftables DNAT and admission (linuxkernel/nft), and conntrack convergence (linuxkernel/conntrack), behind the same dataplane.Backend interface the userspace Backend implements.
|
Package linuxkernel is the kernel dataplane Backend (design.md 6.1, 7a.7, 7a.8 節 Phase 3): kernel WireGuard (linuxkernel/wg), nftables DNAT and admission (linuxkernel/nft), and conntrack convergence (linuxkernel/conntrack), behind the same dataplane.Backend interface the userspace Backend implements. |
|
dataplane/linuxkernel/conntrack
Package conntrack は、外から入って DNAT されたフローを Plan に収束させる(仕様 6.1 節、 設計文書 7a.8 節 Phase 3)。
|
Package conntrack は、外から入って DNAT されたフローを Plan に収束させる(仕様 6.1 節、 設計文書 7a.8 節 Phase 3)。 |
|
dataplane/linuxkernel/nft
Package nft は、Plan から VPS の table inet wgft を組み立てて適用する(仕様 6.1 節、設計文書 7a.2 節)。
|
Package nft は、Plan から VPS の table inet wgft を組み立てて適用する(仕様 6.1 節、設計文書 7a.2 節)。 |
|
dataplane/linuxkernel/wg
Package wg は VPS(および将来の agent の kernel backend、Phase 7)の WireGuard インタフェースを 宣言に収束させる(仕様 4, 9 節、設計文書 7a.7 節)。
|
Package wg は VPS(および将来の agent の kernel backend、Phase 7)の WireGuard インタフェースを 宣言に収束させる(仕様 4, 9 節、設計文書 7a.7 節)。 |
|
dataplane/userspace
Package userspace is the userspace dataplane Backend (design.md 6.3, 7a.7 節).
|
Package userspace is the userspace dataplane Backend (design.md 6.3, 7a.7 節). |
|
dataplane/userspace/relay
Package relay は、エージェントの netstack 上のリスナーと、LAN 内の target への中継を持つ(仕様 7 節)。
|
Package relay は、エージェントの netstack 上のリスナーと、LAN 内の target への中継を持つ(仕様 7 節)。 |
|
dataplane/userspace/tunnel
Package tunnel は、エージェント側が wireguard-go と gVisor の netstack でユーザー空間に持つトンネル (仕様 7 節)。
|
Package tunnel は、エージェント側が wireguard-go と gVisor の netstack でユーザー空間に持つトンネル (仕様 7 節)。 |
|
dataplane/userspace/utun
Package utun は、ユーザー空間モード(仕様 6.3 節)の VPS 側トンネル。
|
Package utun は、ユーザー空間モード(仕様 6.3 節)の VPS 側トンネル。 |
|
flock
Package flock は、隣の .lock ファイルへの排他ロック(仕様 9 節)。
|
Package flock は、隣の .lock ファイルへの排他ロック(仕様 9 節)。 |
|
lograte
Package lograte は、同じ理由で繰り返し出るログを間引く門を持つ(仕様 10.4 節)。
|
Package lograte は、同じ理由で繰り返し出るログを間引く門を持つ(仕様 10.4 節)。 |
|
model
Package model は、外部契約(proto.Rule)から正規化した内部のドメインモデルを持つ(設計文書 7a.2 節)。
|
Package model は、外部契約(proto.Rule)から正規化した内部のドメインモデルを持つ(設計文書 7a.2 節)。 |
|
netpipe
Package netpipe は 2 つの接続を双方向に中継する(ハーフクローズ維持)。
|
Package netpipe は 2 つの接続を双方向に中継する(ハーフクローズ維持)。 |
|
nettun
Package nettun は、エージェントのトンネル(internal/dataplane/userspace/tunnel)とサーバのユーザー空間モードの トンネル(internal/dataplane/userspace/utun)が共有する、netstack と TUN の接着部。
|
Package nettun は、エージェントのトンネル(internal/dataplane/userspace/tunnel)とサーバのユーザー空間モードの トンネル(internal/dataplane/userspace/utun)が共有する、netstack と TUN の接着部。 |
|
planner
Package planner turns a normalized rule set and admission policy inputs into a Plan: the backend-independent description of what wgft should forward (design.md 7a.2 節).
|
Package planner turns a normalized rule set and admission policy inputs into a Plan: the backend-independent description of what wgft should forward (design.md 7a.2 節). |
|
platform/linux
Package linux は、VPS と(将来の Phase 7 の)agent の kernel backend が共通に使う、Linux ホスト側の 前段検査と sysctl の読み書きを持つ(設計文書 7a.7 節)。
|
Package linux は、VPS と(将来の Phase 7 の)agent の kernel backend が共通に使う、Linux ホスト側の 前段検査と sysctl の読み書きを持つ(設計文書 7a.7 節)。 |
|
policy
Package policy は AdmissionPolicy の中間表現(IR)を持つ(設計文書 7a.2、7a.4 節)。
|
Package policy は AdmissionPolicy の中間表現(IR)を持つ(設計文書 7a.2、7a.4 節)。 |
|
policy/admissiontest
Package admissiontest は、Admission Policy の共有 fixture(internal/policy/testdata/admission)を 読み、評価器に流して照らすテスト用の部品である(設計文書 7a.9 節「fixture の形式と等価性の検査」)。
|
Package admissiontest は、Admission Policy の共有 fixture(internal/policy/testdata/admission)を 読み、評価器に流して照らすテスト用の部品である(設計文書 7a.9 節「fixture の形式と等価性の検査」)。 |
|
policy/goengine
Package goengine は AdmissionPolicy の IR(internal/policy)から作る Go の評価器である (設計文書 7a.9 節「Go の評価器へのコンパイルの約束」)。
|
Package goengine は AdmissionPolicy の IR(internal/policy)から作る Go の評価器である (設計文書 7a.9 節「Go の評価器へのコンパイルの約束」)。 |
|
policy/nftables
Package nftables は、AdmissionPolicy の IR(internal/policy)を nftables の行の列へコンパイルする (設計文書 7a.9 節「nftables へのコンパイルの約束」)。
|
Package nftables は、AdmissionPolicy の IR(internal/policy)を nftables の行の列へコンパイルする (設計文書 7a.9 節「nftables へのコンパイルの約束」)。 |
|
policy/nftables/interp
Package interp は、internal/policy/nftables の行の列を実行するテスト専用の解釈器である (設計文書 7a.9 節「fixture の形式と等価性の検査」)。
|
Package interp は、internal/policy/nftables の行の列を実行するテスト専用の解釈器である (設計文書 7a.9 節「fixture の形式と等価性の検査」)。 |
|
reconcile
Package reconcile holds the transaction skeleton shared by the server and the agent (design.md 7a.2, 7a.3, 7a.7 節): the frontend participant interface, the Runtime, which binds one frontend participant and one dataplane participant in a fixed order, and the Reconciler, which drives the Runtime and keeps the Active state and the generations.
|
Package reconcile holds the transaction skeleton shared by the server and the agent (design.md 7a.2, 7a.3, 7a.7 節): the frontend participant interface, the Runtime, which binds one frontend participant and one dataplane participant in a fixed order, and the Reconciler, which drives the Runtime and keeps the Active state and the generations. |
|
resource
Package resource は Resource Guard(設計文書 7a.5、7a.10 節)。
|
Package resource は Resource Guard(設計文書 7a.5、7a.10 節)。 |
|
vpsd
Package vpsd は VPS 側のデーモン。
|
Package vpsd は VPS 側のデーモン。 |
|
vpsd/admin
Package admin は管理用 API(仕様 5, 11 節)。
|
Package admin は管理用 API(仕様 5, 11 節)。 |
|
vpsd/agentapi
Package agentapi はエージェント用 API(仕様 5 節)。
|
Package agentapi はエージェント用 API(仕様 5 節)。 |
|
vpsd/conncheck
Package conncheck は、管理者が UI から行う疎通確認(仕様 10.1 節)。
|
Package conncheck は、管理者が UI から行う疎通確認(仕様 10.1 節)。 |
|
vpsd/proxyrelay
Package proxyrelay は vpsd 側のプロキシモードの中継(仕様 6.2 節)。
|
Package proxyrelay は vpsd 側のプロキシモードの中継(仕様 6.2 節)。 |
|
vpsd/store
Package store は vpsd の永続状態を SQLite 1 ファイルに保存する(仕様 9 節)。
|
Package store は vpsd の永続状態を SQLite 1 ファイルに保存する(仕様 9 節)。 |
|
vpsd/stream
Package stream は vpsd 側の stream(仕様 5.2 節)。
|
Package stream は vpsd 側の stream(仕様 5.2 節)。 |
|
Package proto は vpsd と agent が共有する、ルールと全体状態の JSON スキーマを定める(仕様 5.2, 5.3 節)。
|
Package proto は vpsd と agent が共有する、ルールと全体状態の JSON スキーマを定める(仕様 5.2, 5.3 節)。 |
|
scripts
|
|
|
check-japanese
command
check-japanese は、ツールの出力(ログ・エラー・標準出力・CLI ヘルプ)から日本語を 締め出すための検査。
|
check-japanese は、ツールの出力(ログ・エラー・標準出力・CLI ヘルプ)から日本語を 締め出すための検査。 |
|
tools
|
|
|
echo
command
echo はテスト用のエコーサーバ。
|
echo はテスト用のエコーサーバ。 |
|
labhost
command
labhost はラボの VM の中でシナリオを流す道具 (試作)。
|
labhost はラボの VM の中でシナリオを流す道具 (試作)。 |
|
ppecho
command
ppecho は PROXY protocol v2 を解する簡易受信側(テスト用の Caddy 代役)。
|
ppecho は PROXY protocol v2 を解する簡易受信側(テスト用の Caddy 代役)。 |
|
probe
command
probe はテスト用の TCP/UDP クライアント。
|
probe はテスト用の TCP/UDP クライアント。 |
|
uidemo
command
Package main は README のスクリーンショット撮影用の使い捨てデモである。
|
Package main は README のスクリーンショット撮影用の使い捨てデモである。 |
Click to show internal directories.
Click to hide internal directories.
