VDEQ(1)

πŸ’– VDEQ β€” the manual page, but make it a group chat πŸ’–

okay bestie, welcome to VDEQ(1), from the General Commands Manual. sit down, grab a boba, we're gonna make QEMU/KVM talk to a VDE network and it's gonna be iconic. ✨


🌸 NAME 🌸

vdeq β€” a Virtual Distributed Ethernet wrapper for QEMU/KVM virtual machines πŸ¦‹


✨ SYNOPSIS ✨

like, the whole vibe in one block:

vdeq qemu [ --mod octalmode ] QEMU_OPTIONS -net
vde[,vlan=n][,sock=socketpath][,port=n] QEMU_OPTIONS
vdeq kvm [ --mod octalmode ] KVM_OPTIONS -net
vde[,vlan=n][,sock=socketpath][,port=n] KVM_OPTIONS
vde{qemu_name} [ --mod octalmode ] QEMU_OPTIONS -net
vde[,vlan=n][,sock=socketpath][,port=n] QEMU_OPTIONS

πŸŽ€ OLD SYNOPSIS πŸŽ€

yes she has a vintage era, we don't talk about it but we DO respect it:

vdeq qemu [ --mod octalmode ] [ -sock socketpath [ ,socketpath [ ,...  ]
] ] [ qemu_args ]
vde{qemu_name} [ -sock socketpath [ ,socketpath [ ,...  ] ] ] [
qemu_args ]

πŸ’… DESCRIPTION πŸ’…

so vdeq is a wrapper β€” a lil handler, a middleman, a main character β€” that starts up a QEMU/KVM virtual machine already connected to a VDE network. 🫢 It does this by using the qemu/kvm -tun-fd parameter to set up the connection with a vde_switch.

this command right here:

vdeq qemu -b c -hda=sampledisk

starts a qemu machine that boots from the sampledisk image and has a ne2000 ethernet interface connected to the standard vde_switch. and this one:

vdeq kvm -b c -hda=sampledisk

starts a kvm machine that boots from the sampledisk image and has a ne2000 ethernet interface connected to the standard vde_switch. same energy, different engine. πŸ”₯


not me telling you that you can ALSO make symbolic links to the vdeq executable so your command is cuter and shorter. πŸ’… If the link has a name that begins with vde, the remaining part of the name is taken as the qemu command. For example if vdeq is linked to vdeqemu:

vdeqemu -b c -hda=sampledisk

starts qemu as above. And if vdeq is linked to vdekvm:

vdekvm -b c -hda=sampledisk

starts kvm with the same parameters. literally the same thing but the name ate. πŸ‘‘


okay so the new syntax is consistent with the new Qemu 0.8.0 network parameters. Using vdeq it's possible to specify a vde interface in the same way as user, tap or socket interfaces. the sock= parameter can be used to use a specific socket. 🧚

bestie, important: please note that what qemu names as vlan is not related to the 802.1q VLAN managed by the vde_switch. don't get it twisted. πŸ’€

port= can be used to specify the port of the switch, otherwise the first allocatable port is assigned. and the following command runs a qemu VM with two ethernet interfaces connected to the standard switch and to the switch with local socket "/tmp/my.ctl", port 10, respectively:

vde qemu -net nic,vlan=0 -net nic,vlan=1 -net vde,vlan=0 -net
vde,vlan=1,sock=/tmp/my.ctl,port=10
vdeqemu -net nic,vlan=0 -net nic,vlan=1 -net vde,vlan=0 -net
vde,vlan=1,sock=/tmp/my.ctl,port=10

and the following command runs a kvm VM with two ethernet interfaces connected to the standard switch and to the switch with local socket "/tmp/my.ctl", port 10, respectively:

vde kvm -net nic,vlan=0 -net nic,vlan=1 -net vde,vlan=0 -net
vde,vlan=1,sock=/tmp/my.ctl,port=10
vdekvm -net nic,vlan=0 -net nic,vlan=1 -net vde,vlan=0 -net
vde,vlan=1,sock=/tmp/my.ctl,port=10

and for the vintage girlies: the old syntax can be used with Qemu 0.8.0, but all the vde interfaces are assigned to vlan 0. πŸ™ˆ

vdeq qemu -sock /tmp/vde.ctl,/tmp/my.ctl -b c -hda=sampledisk
vdeqemu -sock /tmp/vde.ctl,/tmp/my.ctl -b c -hda=sampledisk

both start qemu with one ethernet interface connected both to the standard switch and to the switch with local socket "/tmp/my.ctl". fr fr. πŸ’œ


🌈 OPTIONS 🌈

the whole menu, no skips, no crumbs:

  • --mod octalmode β€” specify the mode for comm socket. πŸ”
  • -sock socketpath β€” specify the UNIX socket to be used by local programs for joining the VDE. The default value is "/tmp/vde.ctl". It is also possible to indicate several socketpath (comma separated, no blanks): in this case several interfaces are defined. The first socketpath is connected to the first ne2k interface and so on. πŸ¦‹
  • -h, -help, --help β€” print a Usage help. that's it, that's the whole thing, she's helpful and humble. πŸ’–

⭐ NOTE ⭐

Qemu has changed its syntax for networking (cvs Nov.15 2005). As a temporary solution use vdeoq and vdeoqemu instead of vdeq and vdeqemu if you are running a qemu with the old syntax. πŸ“

By default qemu uses the same MAC address for every virtual machine, so if you plan to use several instances of qemu be sure to explicitly set a different MAC address for each virtual machine.

⚠️ While generating your address beware to not use broadcast/multicast reserved MACs, ethernet rules say: the multicast bit is the low-order bit of the first byte, which is "the first bit on the wire". For example 34:12:de:ad:be:ef is an unicast address, 35:12:de:ad:be:ef is a multicast address (see ETHERNET MULTICAST ADDRESSES section in http://www.iana.org/assignments/ethernet-numbers for more informations). do NOT skip this part bestie, the network will simply not slay. 😭

πŸ“ 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"). nope, not the same VDE, different girlies entirely. πŸ’€


πŸ‘‘ SEE ALSO πŸ‘‘

vde_switch(1), vde_plug(1), vde_plug2tap(1), dpipe(1).


πŸ’œ AUTHOR πŸ’œ

VDE is a project by Renzo Davoli <renzo@cs.unibo.it> 🌸


okay that's the whole page, you're basically a network engineer now, no cap. this was Virtual Distributed Ethernet, dated December 6, 2006, from VDEQ(1) β€” mwah, go forth and connect. πŸ’…βœ¨πŸ«Ά