I think that a possible solution is to configure the system to load the
tun kernel module during startup. In order to do so, list the
tun module name in
# echo tun >> /etc/modules
udev is the system component that
creates and maintains device nodes in
/dev folder according to loaded kernel modules and connected hardware devices. I believe that by loading
tun kernel module at boot time, the system will create the
/dev/net/tun device node on every startup.
I hope it helps.
EDIT: I am a bit outdated. After launching a Debian Wheezy image published in Vagrant Cloud website, I figured out that
udev in fact handles permissions, ownerships and symlinks regarding already existing device nodes. Device nodes are actually created by the kernel itself and are exposed to userspace through the
devtmpfs filesystem is mounted at initramfs time. The file
/usr/share/initramfs-tools/init, which gets executed once
grub extracts initramfs to memory, presents code that mounts a
devtmpfs filesystem into
/dev, falling back to a standard
tmpfs filesystem if unsuccessful.
In addition, to have
devtmpfs filesystem available, Debian Wheezy kernel is shipped with