NAME
vlan
—
IEEE 802.1Q Virtual LAN network
device
SYNOPSIS
pseudo-device vlan
DESCRIPTION
Thevlan
interface provides support for IEEE 802.1Q
Virtual Local Area Networks (VLAN). This supports the trunking of more than
one network on a single network interface by using 802.1Q tagged and untagged
frames.
To use a vlan
interface, the administrator
must first create the interface and then specify the VID (VLAN identifier,
the first 12 bits from a 16-bit integer which distinguishes each VLAN from
any others) and (parent) physical interface associated with the VLAN. This
can be done by using the
ifconfig(8) create
,
vlan
, and vlanif
subcommands
from a shell command line or script. From within a C program, use the
ioctl(2) system call with the SIOCSIFCREATE
and SIOCSIFVLAN
arguments.
Packets sent through a vlan
interface are
tagged with the VID and passed to the parent interface for transmission.
Tagged packets received on the parent interface are passed to the
vlan
interface with the corresponding VID associated
with the parent interface. Packets sent directly through the parent
interface are transmitted as untagged frames. Untagged frames received on
the parent interface are handled by the parent interface. Tagged frames
received on the parent interface with a VID of 0 and an EtherType of IP or
IPv6 are processed on the parent interface. Tagged frames received on the
parent interface for which no vlan
interface with a
matching VID exists are dropped and counted as “unknown
protocol”. (These are displayed by the
ifconfig(8) -v
option.)
If the vlan
pseudo-device is not
configured in the kernel only packets tagged with a VID of 0 are
processed.
To be compatible with other IEEE 802.1Q devices, the
vlan
interface supports a 1500 byte MTU, which means
that the parent interface will have to handle packets that are 4 bytes
larger than the original Ethernet standard.
vlan
can be used with devices not
supporting the IEEE 802.1Q MTU, but then the MTU of the
vlan
interface will be 4 bytes too small and will
not interoperate properly with other IEEE 802.1Q devices, unless the MTU of
the other hosts on the VLAN are also lowered to match.
EXAMPLES
The following will create interface vlan0 with VID six, on the Ethernet interface tlp0:
ifconfig vlan0 create ifconfig vlan0 vlan 6 vlanif tlp0
After this set up, IP addresses (and/or other protocols) can be assigned to the vlan0 interface. All other hosts on the Ethernet connected to tlp0 which configure a VLAN and use VID six will see all traffic transmitted through vlan0.
The same VLAN can be created at system startup time by placing the following in /etc/ifconfig.vlan0:
create vlan 6 vlanif tlp0
SEE ALSO
HISTORY
The vlan
device first appeared in
NetBSD 1.5.1, and was derived from a VLAN
implementation that appeared in FreeBSD and
OpenBSD.
BUGS
The vlan
interfaces do not currently
inherit changes made to the physical interfaces' MTU.