wireguard

package
v0.24.0 Latest Latest
Warning

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

Go to latest
Published: Apr 17, 2024 License: Apache-2.0 Imports: 29 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"
)

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 added in v0.18.3

func DeleteOldInterface(iface string)

DeleteOldInterface - removes named interface

func EndpointDetectedAlready added in v0.22.0

func EndpointDetectedAlready(peerPubKey string) bool

EndpointDetectedAlready - checks if better endpoint has been detected already

func GetDefaultGateway added in v0.23.0

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

GetDefaultGateway - get current default gateway

func GetDefaultGatewayIp added in v0.23.0

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

GetDefaultGatewayIp - get current default gateway

func GetIPNetfromIp added in v0.23.0

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

GetIPNetfromIp - converts ip into ipnet based network class

func GetOriginalDefaulGw added in v0.23.0

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

GetOriginalDefaulGw - fetches system's original default gw

func GetPeer added in v0.22.0

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 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 added in v0.23.0

func RestoreInternetGw() (err error)

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

func SetEgressRoutes added in v0.20.4

func SetEgressRoutes(egressRoutes []models.EgressNetworkRoutes)

func SetInternetGw added in v0.23.0

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 added in v0.20.4

func SetRoutes(addrs []ifaceAddress)

SetRoutes - sets additional routes to the interface

func ShouldReplace added in v0.22.0

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