bridging problem -- bridge needs IP address

bridging problem -- bridge needs IP address

Post by Pete » Wed, 23 Feb 2005 01:16:36

Hi everyone,

i tried to set up a bridge with my fedora core 3, kernel
2.6.10-1.741_FC3. I entered following commands:

# ifconfig eth0 promisc up
# ifconfig eth1 promisc up
# brctl addbr br0
# brctl addif br0 eth0
# brctl addif br0 eth1
# ifconfig br0 up

It was possible to create the bridge, but there is a problem: The
bridge doesn't forward traffic until i assign an IP address to the
interface br0. But that's not what i want.
Any ideas?




1. Bridging and giving the bridge an IP address

I'm attempting to use the kernel bridging code to set up a network
on the following skeleton:

 +-----+  100mbit  +-----------+ 10mbit +----+
 | *.2 |====x======| LINUX *.4 |========|    |
 +-----+ crossover +-----------+        | 10 |
                         +-----+        |hub |
                         | *.1 |========|    |
                         +-----+        +----+

LINUX is kernel 2.0.30 running with two NICs, with the *.4 IP address
at eth0 on the hub side of things.  The goal is 100mbit between *.2
and LINUX, while allowing 10mbit communications between everyone else.

On LINUX, I can "ifconfig eth1 up", and run "brcfg -enable", and
things mostly work.  Unfortunately, "ping *.255" from the *.2 box
gives responses from all boxes on the hub excepting *.4.

Using tcpdump, I find that eth1 is seeing packets like "arp who-has
*.4 (Broadcast) tell *.2", and the same packets are seen on eth0.
This indicates to me that LINUX is bridging the broadcast packets,
before the networking code gets a chance to reponse to them.

Any ideas on this?  I suspect that there's someplace in the bridging
code where it's not accounting for local interfaces, only those on
the connected networks.  [I realize that bridges aren't "supposed"
to have IP addresses at all, but I'll just live with 10mbit rather
than have one box dedicated to bridging.]  "ifconfig eth1 *.6"
allowed *.2 to ping *.6, but not *.4.

Unfortunately, there are some internal reasons why *.2 has to see
LINUX as *.4, and not *.6.  I need broadcast across the bridge, so
I can't solve this by making LINUX a router.

One solution that's come to mind would be to change *.2 and *.6 to
put them in a different subnet, and have LINUX route the subnets
for "normal" packets and bridge the subnets for broadcast packets.
This seems a bit extreme, though.


<Favorite unused computer book title: The Compleat Demystified Idiots
  Guide to the Zen of Dummies in a Nutshell in Seven Days, Unleashed>

2. looking for neat timesaving Vi tricks!

3. When bridging on OpenBSD, OpenBSD-bridge have problem about arp....

4. RH5.2 installation problem

5. Bridging Firewall - got bridging working, How do I firewall?

6. /var/sadm/install/contents

7. PATCH: Fix CardBus bridge behind a PCI bridge

8. Apache proxy Prequisites

9. Bridging firewall (no IP address of its own) ?

10. S1692DL Tiger 2 unknown PCI bridge :unknown Host bridge :unknown PCI Device

11. Configuring PCI<-->PCI bridges behind Cardbus bridges

12. Bridge with one IP Address

13. 2.4.21-rc6-ac1 PCMCIA: Cardbus bridge behind transparent P2P bridge