Documentation
¶
Overview ¶
Package conntrack は、外から入って DNAT されたフローを Plan に収束させる(仕様 6.1 節、 設計文書 7a.8 節 Phase 3)。「宣言状態に収束させる」1 手順だけを持つ:Dump → 判定 → 削除。 nftables テーブルの差し替えの後に走らせる。internal/dataplane/linuxkernel の一部で、 internal/vpsd を import しない(設計文書 7a.7 節)。
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Rule ¶
type Rule struct {
Proto proto.Proto
ListenPort proto.PortRange
AgentAddr netip.Addr // DNAT 先(エージェントのアドレス)
// Policy は接続元 deny/allow(design.md 7a.9 節)。planner.PortPlan.Policy の写しで、接続元以外の
// レート等の項目はこの収束の判定に使わない。
Policy policy.RulePolicy
// Keep は、nil でなければ Policy の deny/allow の代わりに接続元を判定する。fail-closed に
// したルールの直前の Active の値を、新しい宣言の接続元制限とあわせて判定するのに使う(設計文書 7a.3 節)。
Keep func(src netip.Addr) bool
}
Rule は収束の判定に使う、ルールの部分集合。カーネルモードで有効なものだけを渡す。
func RulesFromPlan ¶
RulesFromPlan は、Plan の Transparent(カーネルモード)のポートから収束の判定材料を作る (design.md 6.1, 7a.8 節 Phase 3)。Plan.Ports は無効なルールとエージェントが未登録のルールを 既に除いているので、ここでは検査し直さない。
Click to show internal directories.
Click to hide internal directories.