wireguard

package
v0.0.0-...-293afec Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 11, 2024 License: Apache-2.0 Imports: 30 Imported by: 0

Documentation

Overview

Package wireguard manipulates wireguard interfaces

Index

Constants

View Source
const (
	RouteTableName    = 111
	IPv4Network       = "0.0.0.0/0"
	IPv6Network       = "::/0"
	EgressRouteMetric = 256
)

Variables

View Source
var (
	ErrModuleNotFound = errors.New("module not found")
)

Functions

func ApplyWithoutWGQuick

func ApplyWithoutWGQuick(nc *NCIface) error

ApplyWithoutWGQuick - Function for running the equivalent of "wg-quick up" for linux if wg-quick is missing

func DeleteOldInterface

func DeleteOldInterface(iface string)

DeleteOldInterface - removes named interface

func EndpointDetectedAlready

func EndpointDetectedAlready(peerPubKey string) bool

EndpointDetectedAlready - checks if better endpoint has been detected already

func GetDefaultGateway

func GetDefaultGateway() (gwRoute netlink.Route, err error)

GetDefaultGateway - get current default gateway

func GetDefaultGatewayIp

func GetDefaultGatewayIp() (ip net.IP, err error)

GetDefaultGatewayIp - get current default gateway

func GetDefaultGatewayV6

func GetDefaultGatewayV6() (gwRoute netlink.Route, err error)

GetDefaultGatewayV6 - get current default gateway ipv6

func GetIPNetfromIp

func GetIPNetfromIp(ip net.IP) (ipCidr *net.IPNet)

GetIPNetfromIp - converts ip into ipnet based network class

func GetOriginalDefaulGw

func GetOriginalDefaulGw() (gwIP net.IP, err error)

GetOriginalDefaulGw - fetches system's original default gw

func GetPeer

func GetPeer(ifaceName, peerPubKey string) (wgtypes.Peer, error)

GetPeer - gets the peerinfo from the wg interface

func IfaceDelta

func IfaceDelta(currentNode *config.Node, newNode *config.Node) bool

IfaceDelta - checks if the new node causes an interface change

func IfaceExists

func IfaceExists(ifacename string) bool

IfaceExists - return true if you can find the iface

func RemoveEgressRoutes

func RemoveEgressRoutes()

func RemoveRoutes

func RemoveRoutes(addrs []ifaceAddress)

RemoveRoutes - Remove routes to the interface

func RemoveWithoutWGQuick

func RemoveWithoutWGQuick(ifacename string) error

RemoveWithoutWGQuick - Function for running the equivalent of "wg-quick down" for linux if wg-quick is missing

func RestoreInternetGw

func RestoreInternetGw() (err error)

RestoreInternetGw - delete the route in table ROUTE_TABLE_NAME and delet the rules

func SetEgressRoutes

func SetEgressRoutes(egressRoutes []models.EgressNetworkRoutes)

func SetInternetGw

func SetInternetGw(gwIp net.IP) (err error)

SetInternetGw - set a new default gateway and add rules to activate it

func SetPeers

func SetPeers(replace bool) error

SetPeers - sets peers on netmaker WireGuard interface

func SetRoutes

func SetRoutes(addrs []ifaceAddress) error

SetRoutes - sets additional routes to the interface

func SetRoutesFromCache

func SetRoutesFromCache()

func ShouldReplace

func ShouldReplace(incomingPeers []wgtypes.PeerConfig) bool

ShouldReplace - checks curr peers and incoming peers to see if the peers should be replaced

func UpdatePeer

func UpdatePeer(p *wgtypes.PeerConfig) error

UpdatePeer replaces a wireguard peer temporarily making public func to pass staticchecks this function will be required in future when update node on server is refactored

Types

type NCIface

type NCIface struct {
	Iface     netIface
	Name      string
	Addresses []ifaceAddress
	MTU       int
	Config    wgtypes.Config
}

NCIface - represents a Netclient network interface

func GetInterface

func GetInterface() *NCIface

func NewNCIface

func NewNCIface(host *config.Config, nodes config.NodeMap) *NCIface

NewNCIFace - creates a new Netclient interface in memory

func (*NCIface) ApplyAddrs

func (nc *NCIface) ApplyAddrs() error

netLink.ApplyAddrs - applies the assigned node addresses to given interface (netLink)

func (*NCIface) Close

func (n *NCIface) Close()

NCIface.Close closes netmaker interface

func (*NCIface) Configure

func (n *NCIface) Configure() error

Configure applies configuration to netmaker wireguard interface

func (*NCIface) Create

func (nc *NCIface) Create() error

NCIface.Create - creates a linux WG interface based on a node's host config

func (*NCIface) SetMTU

func (n *NCIface) SetMTU() error

NCIface.SetMTU - sets the mtu for the interface

func (*NCIface) UpdatePeer

func (n *NCIface) UpdatePeer(p wgtypes.PeerConfig)

NCIface.UpdatePeer - Updates Peers from provided PeerConfig

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL