Using iproute2 (runtime only)
Example configuration:
master=bridge0 slave=eth0
Create a bridge:
ip link add $master type bridge
Enslave an ethernet device:
ip link set $slave master $master
Release an ethernet device:
ip link set $slave nomaster
Remove a bridge:
ip link delete $master
Using NetworkManager (permanent)
NetworkManager in Fedora 18+ already has some support for bridging. As of 2012-04-02, it is far from perfect but at least there's something to experiment with. Please file bug reports to the upstream bugzilla and link them here.
Using configuration files (keyfile)
Bridge:
[connection] id=Bridge uuid=fc61f6e5-8900-4c6f-915c-eb55714eb874 interface-name=bridge0 type=bridge autoconnect=false [bridge] interface-name=bridge0
Slave:
[connection] id=Slave uuid=2e1906b1-92a4-4206-b2d3-eecfd07241e9 type=802-3-ethernet master=fc61f6e5-8900-4c6f-915c-eb55714eb874 slave-type=bridge [802-3-ethernet] mac-address=52:54:00:8e:93:da
Bug reports:
Using configuration files (ifcfg)
ifcfg-Bridge:
UUID=fc61f6e5-8900-4c6f-915c-eb55714eb874 TYPE=bridge DEVICE=bridge0
ifcfg-Slave:
UUID=2e1906b1-92a4-4206-b2d3-eecfd07241e9 TYPE=Ethernet HWADDR=52:54:00:8e:93:da BRIDGE=fc61f6e5-8900-4c6f-915c-eb55714eb874
Note: I haven't tested this particular configuration. Feel free to test and adjust.
Using command-line interface (nmcli)
Warning: This is new development and it be available with NM 0.9.10 or an earlier snapshot.
SLAVE_MAC=00:aa:bb:cc:dd:ee nmcli connection add name Bridge type bridge iface testbridge nmcli connection add name Slave type ethernet mac $SLAVE_MAC