Interface Bonding & Bridging problem

Subhro subhro.kar at gmail.com
Sun Sep 12 06:33:48 PDT 2004


I am not 100% sure of what I speak about. Bridge works in layer 2 i.e.
the data link layer. The virtual interface does not have a data link
layer so it is not possible to get the bridging done as the way you
are saying

Regards
S.


On Sat, 11 Sep 2004 17:42:09 +0300, SharkTECH Maillists
<freebsd at sharktech.net> wrote:
> Hello,
> 
> I have been running a FreeBSD 4.10-STABLE server having 3 nics installed but
> was using only 2 of them (1 for uplink and 1 for switch) to monitor, filter
> and shape my network and had absolutely no problems at all.
> 
> However, in order to increase the ability of handling even more packets
> (especially while filtering incoming DDoS), I decided to get a 2nd uplink
> from backbone, connect it to em1, bond em0/em1 (uplinks) to ngeth0/fec0
> (virtual interface) and bridge ngeth0/fec0 with em2 (switch link). In order
> for this to work, etherchanneling is enabled between uplink1/uplink2 at the
> backbone side.
> 
> The problem is although bonding seems to work fine as I can assign IPs at
> fec0/ngeth0 and send/receive packet with both cards using the virtual
> interface, I cannot get bridging to work at all between ngeth0/fec0(virtual)
> and em2(switch). There are no errors in logs, it just doesn't seem to
> bridge.
> 
> After doing a 2 days research in Google, FreeBSD maillists, web articles and
> asking for help in freebsdhelp IRC channels, I ended up that someone in
> FreeBSD maillists may be able to help me providing me a different
> bonding/bridging way or even by applying a patch.
> 
> I was thinking that the solution may be to do both bonding & bridging using
> netgraph, and not bridging using FreeBSD's kernel bridge. I'd be glad to try
> this but unfortunately I haven't figured out how, even after reading several
> articles. So if anyone can help me on this step-by-step, please do.
> 
> I will appreciate any replies after you take a look at the diagrams and
> settings below, that are showing what exactly I have done until now.
> 
> Best Regards,
> 
> Angelos Pantazopoulos
> freebsd at sharktech.net
> SharkTECH Internet Services
> 
> ====================================================
>               S  E  T  T  I  N  G  S
> ====================================================
> 
> Using 1 uplink settings (works excellent)
> -----------------------------------------
> #bridging#
> (options BRIDGE in kernel)
> ifconfig em0 -arp
> sysctl net.link.ether.bridge=1
> sysctl net.link.ether.bridge_cfg=em0,em1
> sysctl net.link.ether.bridge_ipfw=1
> 
> Using 2 uplinks with ng_fec (bridging problem)
> ----------------------------------------------
> #bonding#
> kldload ng_ether
> kldload ng_fec
> ngctl mkpeer fec dummy fec
> ngctl msg fec0: add_iface '"em0"'
> ngctl msg fec0: add_iface '"em1"'
> ngctl msg fec0: set_mode_inet
> ifconfig em0 promisc
> ifconfig em1 promisc
> ifconfig fec0 promisc
> 
> #bridging#
> (options BRIDGE in kernel)
> sysctl net.link.ether.bridge=1
> sysctl net.link.ether.bridge_cfg=fec0,em2
> sysctl net.link.ether.bridge_ipfw=1
> 
> Using 2 uplinks with ng_one2many (bridging problem)
> ---------------------------------------------------
> #bonding#
> kldload ng_ether
> kldload ng_one2many
> ifconfig em0 promisc -arp up
> ifconfig em1 promisc -arp up
> ngctl mkpeer . eiface hook ether
> ngctl mkpeer ngeth0: one2many lower one
> ngctl connect em0: ngeth0:lower lower many0
> ngctl connect em1: ngeth0:lower lower many1
> ifconfig ngeth0 -arp up
> 
> #bridging#
> (options BRIDGE in kernel)
> sysctl net.link.ether.bridge=1
> sysctl net.link.ether.bridge_cfg=ngeth0,em2
> sysctl net.link.ether.bridge_ipfw=1
> 
> ====================================================
>               D  I  A  G  R  A  M  S
> ====================================================
> 
> Using 1 uplink (works excellent):
> ----------------------
> INTERNET UPLINK
> ----------------------
>              |
>              |
>           em0
> ***************
> FREEBSD BOX FOR   <<-- Bridging em0 and em2
> IPFW FILTERING
> ***************
>           em2
>              |
>              |
> ----------------------
>      SWITCH
> ----------------------
> 
> Using 2 uplinks (bridging problem):
> ----------------------
> INTERNET UPLINK
> ----------------------
>         |        |
>         |        |
>      em0   em1
>           \   /
>            \ /
>        (virtual)
> ***************
> FREEBSD BOX FOR  <<-- Bonding em0/em1 and bridging with em2
> IPFW FILTERING
> ***************
>           em2
>              |
>              |
> ----------------------
>      SWITCH
> ----------------------
> _______________________________________________
> freebsd-questions at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"
> 



-- 
Subhro Sankha Kar
School of Information Technology
Block AQ-13/1 Sector V
ZIP 700091
India


More information about the freebsd-questions mailing list