gif + bridge strangeness

Hello,

I'm trying to set up a bridge between two LANs using two freebsd7.0 boxes w/ipv4 gif.

logical setup: lan1 <-> bridge1 <-> ISP <-> bridge2 <-> lan2
interface setup: rl0 <-> bridge0 <-> gif0 <-> gif0 <-> bridge0 <-> em1

I've found some weird behaviour.

  • ping from bridge1 to bridge2 doesn't work
  • ping from bridge1 to lan2 doesn't work
  • ping from lan2 to bridge1 doesn't work
  • dhcp from bridge1 to lan2 works
  • ping from lan1 to lan2 works
  • ...

The firewall (pf) reports no rejected packets (all rejections logged; relevant interfaces have full access).

Code:
cloned_interfaces="gif0 bridge0"
ifconfig_gif0="tunnel x.x.x.142 x.x.x.162 up"
ifconfig_bridge0="addm gif0 addm em1 up 192.168.1.2 netmask 255.255.255.0"

Code:
cloned_interfaces="gif0 bridge0"
ifconfig_gif0="tunnel x.x.x.162 x.x.x.142 up"
ifconfig_bridge0="addm rl0 addm gif0 up 192.168.1.1 netmask 255.255.255.0"

Code:
# ifconfig gif0 
gif0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1280
	tunnel inet x.x.x.142 --> x.x.x.162
# ifconfig bridge0
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
	ether be:ef:ea:58:df:7b
	inet 192.168.1.2 netmask 0xffffff00 broadcast 192.168.1.255
	id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
	maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
	root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
	member: em1 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
	member: gif0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
# ifconfig em1
em1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
	options=98<VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
	ether 00:1b:21:18:69:a0
	media: Ethernet autoselect (1000baseTX <full-duplex>)
	status: active

Code:
# sysctl net.link.bridge
net.link.bridge.ipfw: 0
net.link.bridge.log_stp: 0
net.link.bridge.pfil_local_phys: 0
net.link.bridge.pfil_member: 1
net.link.bridge.pfil_bridge: 1
net.link.bridge.ipfw_arp: 0
net.link.bridge.pfil_onlyip: 1

Have I done something wrong? Thoughts and ideas?
 
Bridge2:

Code:
# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
^C
--- 192.168.1.1 ping statistics ---
3 packets transmitted, 0 packets received, 100.0% packet loss
# ping 192.168.1.2
PING 192.168.1.2 (192.168.1.2): 56 data bytes
64 bytes from 192.168.1.2: icmp_seq=0 ttl=64 time=0.058 ms
64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.027 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.029 ms
^C
--- 192.168.1.2 ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.027/0.038/0.058/0.014 ms
# route get 192.168.1.2
   route to: 192.168.1.2
destination: 192.168.1.2
  interface: lo0
      flags: <UP,HOST,DONE,LLINFO,WASCLONED,LOCAL>
 recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
       0         0         0         0         0         0     16384         0 
# route get 192.168.1.1
   route to: 192.168.1.1
destination: 192.168.1.0
       mask: 255.255.255.0
  interface: bridge0
      flags: <UP,DONE,CLONING>
 recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
       0         0         0         0         0         0      1500     -1839

Bridge1:
Code:
# tcpdump -ni bridge0 arp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on bridge0, link-type EN10MB (Ethernet), capture size 96 bytes
20:03:03.234025 arp who-has 192.168.1.1 tell 192.168.1.2
20:03:04.235398 arp who-has 192.168.1.1 tell 192.168.1.2
20:03:05.235971 arp who-has 192.168.1.1 tell 192.168.1.2

As you see the ARP reaches the other host without any problems, but it doesn't respond.
 
Back
Top