types

package
v0.7.3 Latest Latest
Warning

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

Go to latest
Published: Feb 5, 2024 License: Apache-2.0 Imports: 8 Imported by: 22

Documentation

Index

Constants

View Source
const ConnectPath = "/connect"

Variables

This section is empty.

Functions

func NewVersion added in v0.7.2

func NewVersion(binaryName string) *version

Types

type Configuration

type Configuration struct {
	// Print packets on stderr
	Debug bool

	// Record all packets coming in and out in a file that can be read by Wireshark (pcap)
	CaptureFile string

	// Length of packet
	// Larger packets means less packets to exchange for the same amount of data (and less protocol overhead)
	MTU int

	// Network reserved for the virtual network
	Subnet string

	// IP address of the virtual gateway
	GatewayIP string

	// MAC address of the virtual gateway
	GatewayMacAddress string

	// Built-in DNS records that will be served by the DNS server embedded in the gateway
	DNS []Zone

	// List of search domains that will be added in all DHCP replies
	DNSSearchDomains []string

	// Port forwarding between the machine running the gateway and the virtual network.
	Forwards map[string]string

	// Address translation of incoming traffic.
	// Useful for reaching the host itself (localhost) from the virtual network.
	NAT map[string]string

	// IPs assigned to the gateway that can answer to ARP requests
	GatewayVirtualIPs []string

	// DHCP static leases. Allow to assign pre-defined IP to virtual machine based on the MAC address
	DHCPStaticLeases map[string]string

	// Only for Hyperkit
	// Allow to assign a pre-defined MAC address to an Hyperkit VM
	VpnKitUUIDMacAddresses map[string]string

	// Protocol to be used. Only for /connect mux
	Protocol Protocol
}

type ExposeRequest

type ExposeRequest struct {
	Local    string            `json:"local"`
	Remote   string            `json:"remote"`
	Protocol TransportProtocol `json:"protocol"`
}

type GvproxyCommand added in v0.7.1

type GvproxyCommand struct {
	// Print packets on stderr
	Debug bool

	// Length of packet
	// Larger packets means less packets to exchange for the same amount of data (and less protocol overhead)
	MTU int

	// Logfile where gvproxy should redirect logs
	LogFile string

	// File where gvproxy's pid is stored
	PidFile string

	// SSHPort to access the guest VM
	SSHPort int
	// contains filtered or unexported fields
}

func NewGvproxyCommand added in v0.7.1

func NewGvproxyCommand() GvproxyCommand

func (*GvproxyCommand) AddBessSocket added in v0.7.1

func (c *GvproxyCommand) AddBessSocket(socket string)

func (*GvproxyCommand) AddEndpoint added in v0.7.1

func (c *GvproxyCommand) AddEndpoint(endpoint string)

func (*GvproxyCommand) AddForwardDest added in v0.7.1

func (c *GvproxyCommand) AddForwardDest(dest string)

func (*GvproxyCommand) AddForwardIdentity added in v0.7.1

func (c *GvproxyCommand) AddForwardIdentity(identity string)

func (*GvproxyCommand) AddForwardSock added in v0.7.1

func (c *GvproxyCommand) AddForwardSock(socket string)

func (*GvproxyCommand) AddForwardUser added in v0.7.1

func (c *GvproxyCommand) AddForwardUser(user string)

func (*GvproxyCommand) AddQemuSocket added in v0.7.1

func (c *GvproxyCommand) AddQemuSocket(socket string)

func (*GvproxyCommand) AddStdioSocket added in v0.7.1

func (c *GvproxyCommand) AddStdioSocket(socket string)

func (*GvproxyCommand) AddVfkitSocket added in v0.7.1

func (c *GvproxyCommand) AddVfkitSocket(socket string)

func (*GvproxyCommand) AddVpnkitSocket added in v0.7.1

func (c *GvproxyCommand) AddVpnkitSocket(socket string)

func (*GvproxyCommand) Cmd added in v0.7.1

func (c *GvproxyCommand) Cmd(gvproxyPath string) *exec.Cmd

Cmd converts Command to a commandline format and returns an exec.Cmd which can be executed by os/exec

func (*GvproxyCommand) ToCmdline added in v0.7.1

func (c *GvproxyCommand) ToCmdline() []string

ToCmdline converts Command to a properly formatted command for gvproxy based on its fields

type Protocol

type Protocol string
const (
	// HyperKitProtocol is handshake, then 16bits little endian size of packet, then the packet.
	HyperKitProtocol Protocol = "hyperkit"
	// QemuProtocol is 32bits big endian size of the packet, then the packet.
	QemuProtocol Protocol = "qemu"
	// BessProtocol transfers bare L2 packets as SOCK_SEQPACKET.
	BessProtocol Protocol = "bess"
	// StdioProtocol is HyperKitProtocol without the handshake
	StdioProtocol Protocol = "stdio"
	// VfkitProtocol transfers bare L2 packets as SOCK_DGRAM.
	VfkitProtocol Protocol = "vfkit"
)

type Record

type Record struct {
	Name   string
	IP     net.IP
	Regexp *regexp.Regexp
}

type TransportProtocol added in v0.2.0

type TransportProtocol string
const (
	UDP   TransportProtocol = "udp"
	TCP   TransportProtocol = "tcp"
	UNIX  TransportProtocol = "unix"
	NPIPE TransportProtocol = "npipe"
)

type UnexposeRequest

type UnexposeRequest struct {
	Local    string            `json:"local"`
	Protocol TransportProtocol `json:"protocol"`
}

type Zone

type Zone struct {
	Name      string
	Records   []Record
	DefaultIP net.IP
}

Jump to

Keyboard shortcuts

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