Gary W. Smith wrote:
Hello,
I’ve been trying to implement a bridge in place for a clustered
firewall at one of our office locations. Currently we NAT two class
C’s internally. We decided, for performance reasons, that it would
make sense to put our servers into an official DMZ. So we started this
bridging project. Our goal is to have two redundant firewalls in
place. There is no need for active/active. The current firewalls are
running Linux-HA happily.
We setup a single node and tried to setup a bridge and ran into
problems (please note, this isn’t production but rather only testing
at this point). Here is our general configuration.
eth0 public, 100mb
eth1 heartbeat for HA, private IP, 100mb
eth2 DMZ, 1GB
eth3 LAN, 1GB
We have setup a fake set of IP’s for our internal environment
(58.100.1-31.0 split /24). Interfaces eth0 and eth2 have no IP as they
will constitute the bridge, eth3 has 10.0.8.253.
After the machine has started, we login and start the bridge manually.
Sitting idle, the bridge will start to spew errors in the message log
(logged below) about received packet with own address as source
address. Looking around on the net it appears that there is a loop
somewhere. Interfaces eth0 and eth2 are on their own switches. We
tried using VLAN but put eth2 on it’s own switch to rule out the
switch itself.
The errors show in the tcpdump spew as fast as the screen can write
15-30 seconds after I issue an ifconfig DMZ up. On the LAN side we
have a single workstation, in the DMZ (or the eth2 side of the DMZ)
there is currently nothing.
Any help would be greatly appreciated.
brctl addbr DMZ
brctl addif DMZ eth0
brctl addif DMZ eth2
ifconfig DMZ up
ip addr add 58.100.13.253/24 dev DMZ
route add -net 0/0 gw 58.100.13.1 metric 0
ip addr
1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:07:e9:82:67:2a brd ff:ff:ff:ff:ff:ff
inet6 fe80::207:e9ff:fe82:672a/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:07:e9:82:67:2b brd ff:ff:ff:ff:ff:ff
inet 10.254.254.253/29 brd 10.254.254.255 scope global eth1
inet6 fe80::207:e9ff:fe82:672b/64 scope link
valid_lft forever preferred_lft forever
4: eth2: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:04:23:c1:fa:36 brd ff:ff:ff:ff:ff:ff
inet6 fe80::204:23ff:fec1:fa36/64 scope link tentative
valid_lft forever preferred_lft forever
5: eth3: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:04:23:c1:fa:37 brd ff:ff:ff:ff:ff:ff
inet 10.0.8.254/24 scope global secondary eth3
inet6 fe80::204:23ff:fec1:fa37/64 scope link
valid_lft forever preferred_lft forever
6: sit0: <NOARP> mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
7: DMZ: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue
link/ether 00:04:23:c1:fa:36 brd ff:ff:ff:ff:ff:ff
inet 58.100.13.253/24 scope global DMZ
brctl showstp DMZ
DMZ
bridge id 8000.000423c1fa36
designated root 8000.000423c1fa36
root port 0 path cost 0
max age 19.99 bridge max age 19.99
hello time 1.99 bridge hello time 1.99
forward delay 14.99 bridge forward delay 14.99
ageing time 299.95
hello timer 0.00 tcn timer 0.00
topology change timer 0.00 gc timer 239.83
flags
eth0 (2)
port id 8002 state disabled
designated root 8000.000423c1fa36 path cost 19
designated bridge 8000.000423c1fa36 message age timer 0.00
designated port 8002 forward delay timer 0.00
designated cost 0 hold timer 0.00
flags
eth2 (1)
port id 8001 state disabled
designated root 8000.000423c1fa36 path cost 19
designated bridge 8000.000423c1fa36 message age timer 0.00
designated port 8001 forward delay timer 0.00
designated cost 0 hold timer 0.00
flags
tcpdump -i eth2
18:23:28.964574 IP 58.100.13.253.24462 > 239.255.255.250.1900: UDP,
length 242
...
18:23:28.967746 IP 58.100.13.253.24470 > 239.255.255.250.1900: UDP,
length 322
/var/log/messages
Feb 14 18:11:08 testfw01b kernel: printk: 3 messages suppressed.
Feb 14 18:11:08 testfw01b kernel: eth2: received packet with own
address as source address
Feb 14 18:11:12 testfw01b kernel: printk: 5 messages suppressed.
Feb 14 18:11:12 testfw01b kernel: eth2: received packet with own
address as source address
Looks like you have multiple ethers all connected on the same wire (and
spanning tree is off).
In that case packets would end up looping for ever and you would see
that message.
_______________________________________________
Bridge mailing list
[email protected]
https://lists.osdl.org/mailman/listinfo/bridge