2.6.6 got too picky about multiple interfaces with the same address. This patch has been already integrated for later releases. diff -Nru a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c --- a/net/bridge/br_fdb.c Mon May 10 13:45:50 2004 +++ b/net/bridge/br_fdb.c Mon May 10 13:45:50 2004 @@ -277,18 +277,18 @@ if (!memcmp(fdb->addr.addr, addr, ETH_ALEN)) { /* attempt to update an entry for a local interface */ if (unlikely(fdb->is_local)) { - if (is_local) - printk(KERN_INFO "%s: attempt to add" - " interface with same source address.\n", - source->dev->name); - else if (net_ratelimit()) - printk(KERN_WARNING "%s: received packet with " - " own address as source address\n", - source->dev->name); - ret = -EEXIST; + /* it is okay to have multiple ports with same + * address, just don't allow to be spoofed. + */ + if (!is_local) { + if (net_ratelimit()) + printk(KERN_WARNING "%s: received packet with " + " own address as source address\n", + source->dev->name); + ret = -EEXIST; + } goto out; } - if (likely(!fdb->is_static || is_local)) { /* move to end of age list */