Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Manager ¶
type Manager interface { // Start starts the network manager. Start(ctx context.Context, opts *StartOptions) error // NetworkV4 returns the current IPv4 network. The returned value may be invalid. NetworkV4() netip.Prefix // NetworkV6 returns the current IPv6 network, even if it is disabled. NetworkV6() netip.Prefix // StartMasquerade ensures that masquerading is enabled. StartMasquerade(ctx context.Context) error // AddDNSServers adds the given dns servers to the system configuration. AddDNSServers(ctx context.Context, servers []netip.AddrPort) error // RefreshDNSServers checks which peers in the database are offering DNS // and updates the system configuration accordingly. RefreshDNSServers(ctx context.Context) error // AddPeer adds a peer to the wireguard interface. AddPeer(ctx context.Context, peer *v1.WireGuardPeer, iceServers []string) error // RefreshPeers walks all peers in the database and ensures they are added to the wireguard interface. RefreshPeers(ctx context.Context) error // Firewall returns the firewall. // The firewall is only available after Start has been called. Firewall() firewall.Firewall // WireGuard returns the wireguard interface. // The wireguard interface is only available after Start has been called. WireGuard() wireguard.Interface // Resolver returns a net.Resolver that can be used to resolve DNS names. Resolver() *net.Resolver // Close closes the network manager and cleans up any resources. Close(ctx context.Context) error }
Manager is the interface for managing the network.
type Options ¶
type Options struct { // NodeID is the ID of the node. NodeID string // InterfaceName is the name of the wireguard interface. InterfaceName string // ForceReplace is whether to force replace the wireguard interface. ForceReplace bool // ListenPort is the port to use for wireguard. ListenPort int // PersistentKeepAlive is the persistent keepalive to use for wireguard. PersistentKeepAlive time.Duration // ForceTUN is whether to force the use of TUN. ForceTUN bool // Modprobe is whether to use modprobe to attempt to load the wireguard kernel module. Modprobe bool // MTU is the MTU to use for the wireguard interface. MTU int // RecordMetrics is whether to enable metrics recording. RecordMetrics bool // RecordMetricsInterval is the interval to use for recording metrics. RecordMetricsInterval time.Duration // RaftPort is the port being used for raft. RaftPort int // GRPCPort is the port being used for gRPC. GRPCPort int // ZoneAwarenessID is the zone awareness ID. ZoneAwarenessID string // DialOptions are the dial options to use when calling peer nodes. DialOptions []grpc.DialOption // DisableIPv4 disables IPv4 on the interface. DisableIPv4 bool // DisableIPv6 disables IPv6 on the interface. DisableIPv6 bool }
Options are the options for the network manager.
type StartOptions ¶
type StartOptions struct { // Key is the wireguard key to use for the node. Key wgtypes.Key // AddressV4 is the IPv4 address to use for the node. AddressV4 netip.Prefix // AddressV6 is the IPv6 address to use for the node. AddressV6 netip.Prefix // NetworkV4 is the IPv4 network to use for the node. NetworkV4 netip.Prefix // NetworkV6 is the IPv6 network to use for the node. NetworkV6 netip.Prefix }
StartOptions are the options for starting the network manager and configuring the wireguard interface.
Directories ¶
Path | Synopsis |
---|---|
Package datachannels provides a WebRTC data channel API for port forwarding.
|
Package datachannels provides a WebRTC data channel API for port forwarding. |
Package mesh contains helpers for computing networking information from the mesh.
|
Package mesh contains helpers for computing networking information from the mesh. |
Package nat64 provides a stateless bi-directional NAT64 implementation.
|
Package nat64 provides a stateless bi-directional NAT64 implementation. |
Package system contains utilities for managing network interfaces on the system.
|
Package system contains utilities for managing network interfaces on the system. |
dns
Package dns contains utility functions for DNS.
|
Package dns contains utility functions for DNS. |
firewall
Package firewall contains an interface for interacting with the system firewall.
|
Package firewall contains an interface for interacting with the system firewall. |
Package wireguard contains utilities for working with wireguard interfaces.
|
Package wireguard contains utilities for working with wireguard interfaces. |
Click to show internal directories.
Click to hide internal directories.