home | help
IF_BRIDGE(4)		     Kernel Interfaces Manual		    IF_BRIDGE(4)

NAME
     if_bridge -- network bridge device

SYNOPSIS
     device if_bridge

DESCRIPTION
     The  if_bridge  driver  creates a logical link between two or more IEEE 802
     networks that use the same (or "similar enough") framing format.  For exam-
     ple, it is possible to bridge Ethernet and 802.11 networks together, but it
     is not possible to bridge Ethernet and Token Ring together.

     Each if_bridge interface is created at  runtime  using  interface	cloning.
     This  is  most easily done with the ifconfig(8) create command or using the
     cloned_interfaces variable in rc.conf(5).

     A bridge can be  used  to	provide  several  services,  such  as  a  simple
     802.11-to-Ethernet bridge for wireless hosts, and traffic isolation.

     A	bridge	works  like  a hub, forwarding traffic from one interface to an-
     other.  Multicast and broadcast packets are always forwarded to all  inter-
     faces  that are part of the bridge.  For unicast traffic, the bridge learns
     which MAC addresses are associated with which interfaces and  will  forward
     the traffic selectively.

     The  if_bridge  driver  implements  the  IEEE 802.1D Spanning Tree protocol
     (STP).  Spanning Tree is used to detect  and  remove  loops  in  a  network
     topology.

     Packet  filtering	can  be used with any firewall package that hooks in via
     the pfil(9) framework.  When filtering is	enabled,  bridged  packets  will
     pass through the filter inbound on the originating interface, on the bridge
     interface	and outbound on the appropriate interfaces.  Either stage can be
     disabled, this behaviour can be controlled using sysctl(8):

     net.link.bridge.pfil_member  Set to 1 to enable filtering on  the	incoming
				  and  outgoing  member  interfaces, set to 0 to
				  disable it.

     net.link.bridge.pfil_bridge  Set to 1 to enable filtering on the bridge in-
				  terface, set to 0 to disable it.

     net.link.bridge.ipfw	  Set to 1 to enable layer2 filtering  with  ip-
				  firewall(4),	set  to  0  to disable it.  This
				  needs to be enabled for  dummynet(4)	support.
				  When	 ipfw	is   enabled,	pfil_bridge  and
				  pfil_member will be disabled so that	IPFW  is
				  not  run twice; these can be re-enabled if de-
				  sired.

     ARP and REVARP packets are forwarded without being filtered and others that
     are not IP nor IPv6 packets are not forwarded when pfil(9) filtering is en-
     abled.  IPFW can filter Ethernet types using mac-type so  all  packets  are
     passed to the filter for processing.

     Note  that packets to and from the bridging host will be seen by the filter
     on the interface with the appropriate address configured as well as on  the
     interface on which the packet arrives or departs.

     The  MTU  of  the	first member interface to be added is used as the bridge
     MTU, all additional members are required to have exactly the same value.

EXAMPLES
     The following when placed in the file  /etc/rc.conf  will	cause  a  bridge
     called  "bridge0"	to  be	created,  and  will add the interfaces "wi0" and
     "fxp0" to the bridge, and then enable packet forwarding.  Such a configura-
     tion could be used to implement a simple 802.11-to-Ethernet bridge  (assum-
     ing the 802.11 interface is in ad-hoc mode).

	   cloned_interfaces="bridge0"
	   ifconfig_bridge0="addm wi0 addm fxp0 up"

     Consider  a  system  with	two  4-port Ethernet boards.  The following will
     cause a bridge consisting of all 8 ports with Spanning Tree enabled  to  be
     created:

	   ifconfig bridge0 create
	   ifconfig bridge0 \
	       addm fxp0 stp fxp0 \
	       addm fxp1 stp fxp1 \
	       addm fxp2 stp fxp2 \
	       addm fxp3 stp fxp3 \
	       addm fxp4 stp fxp4 \
	       addm fxp5 stp fxp5 \
	       addm fxp6 stp fxp6 \
	       addm fxp7 stp fxp7 \
	       up

SEE ALSO
     ifconfig(8), ipfw(4), ipf(4), pf(4)

HISTORY
     The if_bridge driver first appeared in FreeBSD 6.0.

AUTHORS
     The   bridge   driver   was   originally	written   by   Jason  L.  Wright
     <jason@thought.net> as part of an undergraduate independent  study  at  the
     University of North Carolina at Greensboro.

     This  version  of	the  if_bridge driver has been heavily modified from the
     original version by
     Jason R. Thorpe <thorpej@wasabisystems.com>.

BUGS
     The if_bridge driver currently supports  only  Ethernet  and  Ethernet-like
     (e.g., 802.11) network devices, with exactly the same interface MTU size as
     the bridge device.

FreeBSD 6.0			  June 10, 2005 		    IF_BRIDGE(4)

home | help