I’m not talking about being able to discover what the router can do, and then talk to it (and have it do packet inspection and translate addresses to make the traffic from your computer look like it was coming from the router). I’m talking about being able to use the router’s own network stack, natively, from a separate computer, and have the machine you’re using absorb every aspect of the router’s networking (what its own IP address is, what ports are open and not, and so on), as if the programs were running on the router. You can also use the same thing to create a VPN or something, without needing any code at all that is “creating” the NAT setup or the VPN. It’s pretty wild.
Here’s a super-short introduction to how it works:
Just do Plan 9. There is no NAT, if you don’t want it, because it is unnecessary.
“Hey computer I want you to use the router’s network stack now”
“Hey, what’s your IP address?”
“Hey connect to this other computer”
“Hey open this port”
Fuckin’ magic, man.
Of course you can only use it that way if your router does Plan 9 also, which means you cannot. But it’s a fuckin’ magic idea.
How is that different from upnp?
I’m not talking about being able to discover what the router can do, and then talk to it (and have it do packet inspection and translate addresses to make the traffic from your computer look like it was coming from the router). I’m talking about being able to use the router’s own network stack, natively, from a separate computer, and have the machine you’re using absorb every aspect of the router’s networking (what its own IP address is, what ports are open and not, and so on), as if the programs were running on the router. You can also use the same thing to create a VPN or something, without needing any code at all that is “creating” the NAT setup or the VPN. It’s pretty wild.
Here’s a super-short introduction to how it works:
https://drewdevault.com/2022/11/12/In-praise-of-Plan-9.html
Huh, interesting