VDE_PLUG(1)

πŸ“¦
version 2.3.3 Β· 2 versions
, in alpine 3.24, arch rolling, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0

πŸ’– vde_plug β€” the manual, but make it make sense πŸ’–

okok so you're reading vde_plug(1) from the General Commands Manual and honestly? iconic choice. sit down, bestie, we're gonna get you fluent in virtual ethernet cables 🫢


✨ NAME ✨

vde_plug β€” Virtual Distributed Ethernet plug. and the way that two plugs make a whole vde cable? that's the whole gig. literally just a plug, but make it networking πŸ’…


🌸 SYNOPSIS 🌸

vde_plug [ -p portnum ] [ -g group ] [ -m octal-mode ] [ socketdir ]

that's it. that's the whole vibe. look at those optional flags chilling in brackets πŸŽ€


πŸ¦‹ DESCRIPTION πŸ¦‹

okay so picture this: a vde_plug is a plug that you connect into a VDE switch. super simple concept, right? here's the deal though β€” all the data that gets caught by the plug is written out to its stdout, and everything coming in from stdin gets injected into the switch. so it's basically a two-way door, no cap πŸšͺ✨

this tool was designed to be used together with dpipe(1) to interconnect a second vde_plug to another switch β€” so the two of them work as a virtual ethernet crossed cable between the two switches. crossed cable! between switches! we love a networking moment πŸ’œ


πŸŽ€ the classic example

dpipe vde_plug = vde_plug /tmp/vde2.ctl

this one connects two local switches. the former is using the standard control socket /tmp/vde.ctl while the latter is using /tmp/vde2.ctl. two switches, one command, slay πŸ”₯


🧚 the remote example

dpipe vde_plug = ssh remote.machine.org vde_plug

this connects two remote switches. and here's the tea: if the two vde_switches run as daemon and they're connected to tap interfaces, a level 2 encrypted tunnel is established. encrypted tunnel!! we're thriving πŸ”πŸ’–


πŸ‘‘ the login-shell example

vde_plug can also be established as a login shell for users. the following command works exactly like the previous example:

dpipe vde_plug = ssh vdeuser@remote.machine.org vde_plug

where vdeuser is the user with vde_plug as their standard shell. and because security is not a vibe to skip β€” all the remote accesses are logged by syslog at the beginning and at the end of each session. ✨

attempt to login without the command vde_plug at the end, or trying to execute something else? blocked, bestie. and the attempt gets logged into syslog. πŸš«πŸ’€

🌈 OPTIONS 🌈

  • -p portnum β€” you can decide which port of the switch to use. when this option isn't specified, the switch assigns the first available unused port (if any). and here's the cool part: you can connect several cables in the same switch port, and in this way all these cables work concurrently. it means that packets can result as duplicate but β€” and this is the key bit β€” no ARP table loops are generated. is useful when vde is used for mobility: several physical interfaces can be used at a time during handoffs to prevent hichups in connectivity. πŸ¦‹
  • -g group β€” group ownership of the communication socket. for security, when more want to share a switch, it's better to use a unix group to own the comm sockets so that the network traffic cannot be sniffed. keep your traffic private, bestie πŸ”’βœ¨
  • -m octal-mode β€” octal chmod-like permissions for the comm sockets.
  • socketdir β€” (this option can also be set as: -sock socketdir) specify the directory which contains the UNIX socket to be used by local programs for joining the VDE. the default value is "/tmp/vde.ctl", which corresponds to the socket "/tmp/vde.ctl/ctl" (or /var/run/vde.ctl when the vde_switch runs as a shared daemon). it's possible for users to redefine their default switch as ".vde-2/stdsock" in their home directory. if it exists, this directory (or symbolic link to the actual directory) is used as the default value for the user. πŸ πŸ’…

⭐ NOTICE ⭐

Virtual Distributed Ethernet is not related in any way with www.vde.com ("Verband der Elektrotechnik, Elektronik und Informationstechnik" i.e. the German "Association for Electrical, Electronic & Information Technologies"). same letters, completely different entity, don't get it twisted πŸ™ˆ


πŸ“ SEE ALSO πŸ“

vde_switch(1), vde_plug2tap(1), vdeq(1), dpipe(1). go read those next, iykyk πŸ“š


πŸ’œ AUTHOR πŸ’œ

VDE is a project by Renzo Davoli <renzo@cs.unibo.it> β€” thank you for your service 🫢


and that's the whole page, bestie!! ✨ this doc came to you courtesy of Virtual Distributed Ethernet, dated December 6, 2006 β€” oldie but a goodie, fr fr πŸŽ€πŸŒ· go make some virtual cables πŸ’–