25 Commits

Author SHA1 Message Date
Jonathan Nobels
79ef5b32fe natlab: fix unixgram plumbing and add mac virtualization
Tweaked the unixgram plumbing to use the vm's remote
unix address for write operations.

Rudimentary macOS virtualization added which will spin
up a VM with some hardcoded config options that work with
natlabd's default settings in -dgram mode.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
2024-08-02 12:00:41 -04:00
Brad Fitzpatrick
e6336fad18 add dgram mode for Hypervisor.Framework and VZFileHandleNetworkDeviceAttachment
Change-Id: I476b48fdf500699093f01ce353f9089ab3a9c08d
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2024-07-31 14:42:35 -07:00
Brad Fitzpatrick
e971923a92 name NAT types, add constructors
Change-Id: Id558e763773e6efa700cfb7943b64c78bfffc4ed
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2024-07-29 19:07:34 -07:00
Brad Fitzpatrick
0e9bbbebeb flesh out docs on WriteUDPPacketNoNAT
Change-Id: Id029726d22fe084d15b75510e37c2fcb453fd97d
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2024-07-29 19:07:34 -07:00
Brad Fitzpatrick
ae484da02e start to add NAT-PMP port mapping
Change-Id: Id8061ab8e907a9473f0931deebd6cabcd32deffc
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2024-07-29 19:07:34 -07:00
Brad Fitzpatrick
40814eafb4 add gokrazy start script w/ qemu-system-x86_64 microvm
Change-Id: I85c4d155c63b03fea84976c7a906fcaf93f7fc53
2024-07-29 19:07:34 -07:00
Brad Fitzpatrick
ba5ada52ad add flag to demo hard-vs-easy quickly
Change-Id: I48945c0b84e7e863b71dd6bdf97cd41b3b1e81bb
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2024-07-29 19:07:34 -07:00
Brad Fitzpatrick
38aa2687ac make hard NAT work
Change-Id: Id7b4195639c7fbff17c5b52e3780a1fdbcefbd31
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2024-07-29 19:07:34 -07:00
Brad Fitzpatrick
92c3a4ce9a add start of Easy NAT impl
untested so far

Change-Id: Id5a265693d77a4552342c08e643e4a7ed5545e6a
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2024-07-29 19:07:34 -07:00
Brad Fitzpatrick
c188795156 start to write down some TODOs in case I forget
Change-Id: I1cebc9c11e63892e0fe829e3f2949696b97955ac
2024-07-29 19:07:34 -07:00
Brad Fitzpatrick
cda2300682 add start of Hard NAT impl
untested so far

Change-Id: I682b604d0e90debf9eae3f1814663f336d03f57c
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2024-07-29 19:07:34 -07:00
Brad Fitzpatrick
bebfa254cf change, document NATTable locking rules
Change-Id: I4f01343911102f5acf16ca6d5eb39ec98a5f2478
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2024-07-29 19:07:34 -07:00
Brad Fitzpatrick
0f2ecf8a18 start of pluggable NAT impl types
Change-Id: I633bce41e978f385eab26478baa42e56178c489a
2024-07-29 19:07:34 -07:00
Brad Fitzpatrick
1071dc5d4d add a second network
Change-Id: I0337e2f7c2402384c00ff81e7ec7614168c4fe5b
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2024-07-29 19:07:34 -07:00
Brad Fitzpatrick
95da5023fc support proxying to real DERPs, for testing
Change-Id: I27da972ed6c37188b2de17e3d9287410eace73e4
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2024-07-29 19:07:34 -07:00
Brad Fitzpatrick
3ebc3495e7 add UDPPacket, NAT, routing abstractions, move/redo STUN
It's starting to come alive!

Change-Id: Iffa853eaab6da001d5c0935e45d3b47baf7211a6
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2024-07-29 19:07:34 -07:00
Brad Fitzpatrick
e617cf5af8 start to handle L2 vs L3 properly
Change-Id: I0efc9320aff419dc4b3e97c623c9af7f9d5dd48a
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2024-07-29 19:07:33 -07:00
Brad Fitzpatrick
c860129eb0 add EthernetPacket, network.HandleEthernetPacket
Change-Id: I9b9f471c8fcc49ea16d732fe3ce06d5be4ff1125
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2024-07-29 19:07:33 -07:00
Brad Fitzpatrick
013ea64e94 move more to network, hardcode less
Change-Id: If1c773153f7f3fa7ea483d1b7231193ab093278a
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2024-07-29 19:07:33 -07:00
Brad Fitzpatrick
87f777d21b start on declarative world config, not hard coding things
Change-Id: I76afccc50311f0894fbda4064ff0dd9696ef820e
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2024-07-29 19:07:33 -07:00
Brad Fitzpatrick
9f63076827 STUN
Change-Id: I77eacb007d7fd315d165f14be2d2ecd892900843
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2024-07-29 19:07:33 -07:00
Brad Fitzpatrick
8070c8d1d5 proxy controlplane so netcheck can get derpmap
Change-Id: Iecef62dc6f3904f588597e3134429b1521e9fe10
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2024-07-29 19:07:33 -07:00
Brad Fitzpatrick
c0581779ed start of TCP netstack interception
Change-Id: I5523f8d45e34ac8074a55a67b3d3fd978bd7de44
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2024-07-29 19:07:33 -07:00
Brad Fitzpatrick
13110cc11e DNS
Change-Id: Icabbdbf4810e2b4ac5ebe17550c8fdb344ebaaa4
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2024-07-29 19:07:33 -07:00
Brad Fitzpatrick
4c4d8cb4b8 DHCP and ARP
Change-Id: Id0a8bfd7047253562cd800ff4e3c75154fa773a8
2024-07-29 19:07:33 -07:00