mirror of
https://github.com/tailscale/tailscale.git
synced 2024-11-29 04:55:31 +00:00
cmd/vnet: add --blend and --pcap flags
Updates #13038 Change-Id: Id16ea9eb94447a3d9651215f04b2525daf10b3eb Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
parent
3904e4d175
commit
3b70968c25
@ -22,11 +22,13 @@
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
listen = flag.String("listen", "/tmp/qemu.sock", "path to listen on")
|
listen = flag.String("listen", "/tmp/qemu.sock", "path to listen on")
|
||||||
nat = flag.String("nat", "easy", "type of NAT to use")
|
nat = flag.String("nat", "easy", "type of NAT to use")
|
||||||
nat2 = flag.String("nat2", "hard", "type of NAT to use for second network")
|
nat2 = flag.String("nat2", "hard", "type of NAT to use for second network")
|
||||||
portmap = flag.Bool("portmap", false, "enable portmapping")
|
portmap = flag.Bool("portmap", false, "enable portmapping")
|
||||||
dgram = flag.Bool("dgram", false, "enable datagram mode; for use with macOS Hypervisor.Framework and VZFileHandleNetworkDeviceAttachment")
|
dgram = flag.Bool("dgram", false, "enable datagram mode; for use with macOS Hypervisor.Framework and VZFileHandleNetworkDeviceAttachment")
|
||||||
|
blend = flag.Bool("blend", true, "blend reality (controlplane.tailscale.com and DERPs) into the virtual network")
|
||||||
|
pcapFile = flag.String("pcap", "", "if non-empty, filename to write pcap")
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@ -57,6 +59,8 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var c vnet.Config
|
var c vnet.Config
|
||||||
|
c.SetPCAPFile(*pcapFile)
|
||||||
|
c.SetBlendReality(*blend)
|
||||||
node1 := c.AddNode(c.AddNetwork("2.1.1.1", "192.168.1.1/24", vnet.NAT(*nat)))
|
node1 := c.AddNode(c.AddNetwork("2.1.1.1", "192.168.1.1/24", vnet.NAT(*nat)))
|
||||||
c.AddNode(c.AddNetwork("2.2.2.2", "10.2.0.1/16", vnet.NAT(*nat2)))
|
c.AddNode(c.AddNetwork("2.2.2.2", "10.2.0.1/16", vnet.NAT(*nat2)))
|
||||||
if *portmap {
|
if *portmap {
|
||||||
|
@ -29,19 +29,31 @@
|
|||||||
// values to modify the config before calling NewServer.
|
// values to modify the config before calling NewServer.
|
||||||
// Once the NewServer is called, Config is no longer used.
|
// Once the NewServer is called, Config is no longer used.
|
||||||
type Config struct {
|
type Config struct {
|
||||||
nodes []*Node
|
nodes []*Node
|
||||||
networks []*Network
|
networks []*Network
|
||||||
pcapFile string
|
pcapFile string
|
||||||
|
blendReality bool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetPCAPFile sets the filename to write a pcap file to,
|
||||||
|
// or empty to disable pcap file writing.
|
||||||
func (c *Config) SetPCAPFile(file string) {
|
func (c *Config) SetPCAPFile(file string) {
|
||||||
c.pcapFile = file
|
c.pcapFile = file
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NumNodes returns the number of nodes in the configuration.
|
||||||
func (c *Config) NumNodes() int {
|
func (c *Config) NumNodes() int {
|
||||||
return len(c.nodes)
|
return len(c.nodes)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetBlendReality sets whether to blend the real controlplane.tailscale.com and
|
||||||
|
// DERP servers into the virtual network. This is mostly useful for interactive
|
||||||
|
// testing when working on natlab.
|
||||||
|
func (c *Config) SetBlendReality(v bool) {
|
||||||
|
c.blendReality = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// FirstNetwork returns the first network in the config, or nil if none.
|
||||||
func (c *Config) FirstNetwork() *Network {
|
func (c *Config) FirstNetwork() *Network {
|
||||||
if len(c.networks) == 0 {
|
if len(c.networks) == 0 {
|
||||||
return nil
|
return nil
|
||||||
|
Loading…
Reference in New Issue
Block a user