diff options
author | thompsa <thompsa@FreeBSD.org> | 2007-04-10 00:27:25 +0000 |
---|---|---|
committer | thompsa <thompsa@FreeBSD.org> | 2007-04-10 00:27:25 +0000 |
commit | 0f00c64853f65a32f7ca644870fd6ceba5b3ce7d (patch) | |
tree | 474c91da17bd5f3ae59c9c4351d9aafe27da1c11 /share | |
parent | 84121b90712f942d2525e9acdf31d8cb47c4e6ef (diff) | |
download | FreeBSD-src-0f00c64853f65a32f7ca644870fd6ceba5b3ce7d.zip FreeBSD-src-0f00c64853f65a32f7ca644870fd6ceba5b3ce7d.tar.gz |
Add the trunk(4) driver for providing link aggregation, failover and fault
tolerance. This driver allows aggregation of multiple network interfaces as
one virtual interface using a number of different protocols/algorithms.
failover - Sends traffic through the secondary port if the master becomes
inactive.
fec - Supports Cisco Fast EtherChannel.
lacp - Supports the IEEE 802.3ad Link Aggregation Control Protocol
(LACP) and the Marker Protocol.
loadbalance - Static loadbalancing using an outgoing hash.
roundrobin - Distributes outgoing traffic using a round-robin scheduler
through all active ports.
This code was obtained from OpenBSD and this also includes 802.3ad LACP support
from agr(4) in NetBSD.
Diffstat (limited to 'share')
-rw-r--r-- | share/man/man4/trunk.4 | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/share/man/man4/trunk.4 b/share/man/man4/trunk.4 new file mode 100644 index 0000000..7cbd331 --- /dev/null +++ b/share/man/man4/trunk.4 @@ -0,0 +1,172 @@ +.\" $OpenBSD: trunk.4,v 1.18 2006/06/09 13:53:34 jmc Exp $ +.\" +.\" Copyright (c) 2005, 2006 Reyk Floeter <reyk@openbsd.org> +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +.\" +.\" $FreeBSD$ +.\" +.Dd March 6, 2007 +.Dt TRUNK 4 +.Os +.Sh NAME +.Nm trunk +.Nd link aggregation and link failover interface +.Sh SYNOPSIS +To compile this driver into the kernel, +place the following line in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "device trunk" +.Ed +.Pp +Alternatively, to load the driver as a +module at boot time, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +if_trunk_load="YES" +.Ed +.Sh DESCRIPTION +The +.Nm +interface allows aggregation of multiple network interfaces as one virtual +.Nm +interface for the purpose of providing fault-tolerance and high-speed links. +.Pp +A +.Nm +interface can be created using the +.Ic ifconfig trunk Ns Ar N Ic create +command. +It can use different link aggregation protocols specified +using the +.Ic trunkproto Ar proto +option. +Child interfaces can be added using the +.Ic trunkport Ar child-iface +option and removed using the +.Ic -trunkport Ar child-iface +option. +.Pp +The driver currently supports the trunk protocols +.Ic failover +(the default), +.Ic fec , +.Ic lacp , +.Ic loadbalance , +.Ic roundrobin , +and +.Ic none . +The protocols determine which ports are used for outgoing traffic +and whether a specific port accepts incoming traffic. +The interface link state is used to validate if the port is active or +not. +.Bl -tag -width loadbalance +.It Ic failover +Sends and receives traffic only through the master port. +If the master port becomes unavailable, +the next active port is used. +The first interface added is the master port; +any interfaces added after that are used as failover devices. +.It Ic fec +Supports Cisco EtherChannel. +This is a static setup and does not negotiate aggregation with the peer or +exchange frames to monitor the link. +.It Ic lacp +Supports the IEEE 802.3ad Link Aggregation Control Protocol (LACP) and the +Marker Protocol. +LACP will negotiate a set of aggregable links with the peer in to one or more +Link Aggregated Groups. +Each LAG is composed of ports of the same speed, set to full-duplex operation. +The traffic will be balanced across the ports in the LAG with the greatest +total speed, in most cases there will only be one LAG which contains all ports. +In the event of changes in physical connectivity, Link Aggregation will quickly +converge to a new configuration. +.It Ic loadbalance +Balances outgoing traffic across the active ports based on hashed +protocol header information and accepts incoming traffic from +any active port. +This is a static setup and does not negotiate aggregation with the peer or +exchange frames to monitor the link. +The hash includes the Ethernet source and destination address, and, if +available, the VLAN tag, and the IP source and destination address. +.It Ic roundrobin +Distributes outgoing traffic using a round-robin scheduler +through all active ports and accepts incoming traffic from +any active port. +.It Ic none +This protocol is intended to do nothing: it disables any traffic without +disabling the +.Nm +interface itself. +.El +.Pp +Each +.Nm +interface is created at runtime using interface cloning. +This is +most easily done with the +.Xr ifconfig 8 +.Cm create +command or using the +.Va cloned_interfaces +variable in +.Xr rc.conf 5 . +.Sh EXAMPLES +Create a 802.3ad trunk using LACP with two +.Xr bge 4 +Gigabit Ethernet interfaces: +.Bd -literal -offset indent +# ifconfig bge0 up +# ifconfig bge1 up +# ifconfig trunk0 trunkproto lacp trunkport bge0 trunkport bge1 \e + 192.168.1.1 netmask 255.255.255.0 +.Ed +.Pp +The following example uses an active failover trunk to set up roaming +between wired and wireless networks using two network devices. +Whenever the wired master interface is unplugged, the wireless failover +device will be used: +.Bd -literal -offset indent +# ifconfig em0 up +# ifconfig ath0 nwid my_net up +# ifconfig trunk0 trunkproto failover trunkport em0 trunkport ath0 \e + 192.168.1.1 netmask 255.255.255.0 +.Ed +.Sh SEE ALSO +.Xr ng_fec 4 , +.Xr ng_one2many 4 , +.Xr ifconfig 8 +.Sh HISTORY +The +.Nm +device first appeared in +.Fx 7.0 . +.Sh AUTHORS +.An -nosplit +The +.Nm +driver was written by +.An Reyk Floeter Aq reyk@openbsd.org . +The LACP implementation was written by +.An YAMAMOTO Takashi +for +.Nx . +.Sh BUGS +There is no way to configure LACP administrative variables, including system +and port priorities. +The current implementation always performs active-mode LACP and uses 0x8000 as +system and port priorities. +.Pp +WPA security does not currently work correctly with a wireless interface added +to the trunk. |