Packet tunneling over UDP, multiple channels
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

5.1 KiB Manual Page

NAME - script for managing rrqnet virtual cables with ifup and ifdown


for HOOKD in down post-down pre-up up ; do
    ln -s /etc/rrqnet/ /etc/network/if-$HOOKD.d/rrqnet


/etc/rrqnet/ is a utility script for managing rrqnet virtual cables via /etc/network/interfaces declarations. In normal use the script is set up as hook script by means of links from all /etc/network/if-*.d/rrqnet for automatic invocation with the commands ifup and ifdown.

A rrqnet virtual cable uses a tap interface at each cable end host, and a service process (aptly named rrqnet) to tunnel the tap network traffic over UDP. Each rrqnet process acts as a networking switch that facilitates level 2 connectivity among all its end points with packet routing according to the destination Ethernet machine addresses.

This script handles the special purpose "option codes" for the IFACE blocks that are used for declaring the rrqnet daemon configuration to for the tap interface for its virtual cabling. I.e., the IFACE block is made for the tap interface and it includes one or more of these rrqnet options.

The list of IFACE options for rrqnet are:

rrqnet_port [ notap ] port

This IFACE option is required both as way of marking that the configuration block is for an rrqnet virtual cable tap, and to declare which UDP port the rrqnet daemon should listen on for incoming cabling. The port number may be preceded by notap to indcate that this rrqnet should not have an actual tap interface on the host but rather only serve to interconnect remote connections.

rrqnet_nice nice

This IFACE option is used for adjusting the rrqnet process scheduling priority. Refer the nice man page for full details.

rrqnet_remote remote

This IFACE option is used for declaring the remote connection details. Refer to rrqnet man page for the full specification. Multiple remotes for a single rrqnet daemon are declared by using multiple rrqnet_remote lines.

rrqnet_options options

This IFACE option is used for declaring any additional rrqnet daemon settings ([-tpg] [-4] [-B n] [-T n] [-m mcast]). Refer to the rrqnet man page for the full specification.

rrqnet_log level pathname

This IFACE option is used for declaring the log level as one of -v, -vv or -vvv, and to nominate the log file. If omitted, all the rrqnet daemon output will be directed to /dev/null. If _pathname is of the form "facility.priority", then stderr is sent to syslog. Otherwise, stderr is appended to the nominated file.

rrqnet_bridge bridge

This IFACE option is only used to make the tap (once created) to be made a "port" of the nominated preceding bridge interface. The same things is achieved by including the tap in the bridge_ports list of the bridge, provided that the tap is created before the bridge.

rrqnet_dhcp method args

This IFACE option is used for attaching a DHCP client to the interface. The method identifies the DHCP client method, and currently only the dhclient method is defined, which is run as follows:


The given args if non-empty replaces $DHCPARGS, which by default are "-4 -cf /dev/null". Refer to the dhclient man page for details.


The following is a configuration example:

iface mynet0 inet static
    rrqnet_port 3636
    rrqnet_options -4 -B 10 -T 1
    rrqnet_remote 111.222.333.444:3636=/sec/mynet.key
    rrqnet_log -v /var/log/mynet0.log

The above example declares a virtual cable plug for UDP port 3636 tunneling through host 111.222.333.444 port 3636 where the local tap mynet0 has ipv4 address The rrqnet_port option marks the IFACE block as an +rrqnet virtual cabling set up which then is duly handled by

The rrqnet_options in the example tells the rrqnet process to use an ipv4-only socket, 10 packet buffers and a single delivery thread, in addition to the socket reader threads. The default is to use an ipv6 socket, 10 bufffers and 5 delivery threads.


This script creates the tap interface if needed, and brings it up. Thereafter, if so configured the tap is added to the bridge, and then the rrqnet virtual cable process is started under a daemon supervision.

Note that the rrqnet virtual cable requires UDP networking for its tunnel traffic. The tunnel packets will have a UDP header in addition to the orignal packet, which means that packets grow with some 28/48 (ipv4/6) bytes.


brctl(8) - ethernet bridge administration

daemon(1) - turns other processes into daemons

dhclient(8) - Dynamic Host Configuration Protocol Client

interfaces(5) - network interface configuration for ifup and ifdown

rrqnet(8) - packet tunneling over UDP, multiple channels


Ralph Rönnquist <>