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.

4.5 KiB Manual Page

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


ln -s /etc/rrqnet/ /etc/network/if-post-down.d/rrqnet
ln -s /etc/rrqnet/ /etc/network/if-pre-up.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 "pre-up" and "post-down" scripts by means of links from /etc/network/if-pre-up.d/rrqnet and from /etc/network/if-post-down.d/rrqnet. It will then be invoked by ifup and ifdown for handling the rrqnet declarations and bring up or tear down rrqnet virtual cable plugs over tap interfaces.

An 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 stanzas that are used for declaring the rrqnet daemon configuration to for the tap interface for its virtual cabling. I.e., the IFACE stanza 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 port

This IFACE option is required both as way of marking that the stanza is for an rrqnet virtual cable tap, and to declare which UDP port the rrqnet daemon should listen on for incoming cabling.

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 ([-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.


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 stanza 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. If left out, the default is to use an ipv6 socket, 10 bufffers and 5 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
*interfaces(5)* - network interface configuration for ifup and ifdown
*rrqnet(8)* - packet tunneling over UDP, multiple channels


Ralph Rönnquist <>