CFR: bridge locking

Daniel C. Sobral dcs at tcoip.com.br
Thu Aug 21 09:46:44 PDT 2003


Doug Ambrisko wrote:
> Daniel C. Sobral writes:
> | If you get bridge to send/receive packets to/from vlan interfaces 
> | attached to them, I'll be forever grateful.
> | 
> | I've been trying to configure a setup where a firewall is connected to 
> | redundant switches, but no solution I found could handle the vlan 
> | attachments. :-(
> 
> I assuming you are using SW VLANs then you need this.  There is supposed
> to be work to fix this correctly in progress but this works for
> me when bridging VLANs.

This didn't work for me. I don't know if I'm using SW or HW vlans. But 
since I can see the vlan packets with tcpdump, I tend to believe it 
would be SW vlans.

The test I'm doing is the following:

kldload bridge
sysctl net.link.ether.bridge=1
sysctl net.link.ether.bridge_cfg="fxp1 fxp3"
ifconfig fxp1 up
ifconfig fxp3 up
ifconfig vlan0 create
ifconfig vlan0 vlan 999 vlandev fxp1
ifconfig vlan0 200.220.254.190/26

On the switch side, the port connected to fxp1 is down and the one 
connected to fxp3 is up. Next, I ping all around. What I see with your 
patch is:

ARP packets received on fxp3 go to fxp1 but not vlan0.
ARP packets sent through vlan0 go to fxp1 but not fxp3.

This is 4.7-RELEASE. The patch did not apply cleanly, but I went through 
it and fixed all failed chunks.

(yes, this is pretty much like the other message I sent -- the results 
were the same, but then I wondered if I hadn't made an error in one of 
the above steps and went back to test it again, so, in the mean time, I 
copied the above to the other message, adjusted, and set that reply. :)

> 
> Doug A.
> 
> Index: net/if_ethersubr.c
> ===================================================================
> RCS file: /cvs/src/sys/net/if_ethersubr.c,v
> retrieving revision 1.70.2.33
> diff -c -r1.70.2.33 if_ethersubr.c
> *** net/if_ethersubr.c	28 Apr 2003 15:45:53 -0000	1.70.2.33
> --- net/if_ethersubr.c	21 Aug 2003 03:31:09 -0000
> ***************
> *** 667,674 ****
>   	    && bcmp(eh->ether_dhost,
>   	      IFP2AC(ifp)->ac_enaddr, ETHER_ADDR_LEN) != 0
>   	    && (ifp->if_ipending & IFF_PPROMISC) == 0) {
> ! 		m_freem(m);
> ! 		return;
>   	}
>   
>   	/* Discard packet if interface is not up */
> --- 667,681 ----
>   	    && bcmp(eh->ether_dhost,
>   	      IFP2AC(ifp)->ac_enaddr, ETHER_ADDR_LEN) != 0
>   	    && (ifp->if_ipending & IFF_PPROMISC) == 0) {
> ! 		/*
> ! 		 * Let VLAN packets go to the SW VLAN node needed for
> ! 		 * bridging
> ! 		 */
> ! 		if (! (ntohs(eh->ether_type) == ETHERTYPE_VLAN
> ! 		    && vlan_input_p != NULL)) {
> ! 			m_freem(m);
> ! 			return;
> ! 		}
>   	}
>   
>   	/* Discard packet if interface is not up */


-- 
Daniel C. Sobral                   (8-DCS)
Gerencia de Operacoes
Divisao de Comunicacao de Dados
Coordenacao de Seguranca
VIVO Centro Oeste Norte
Fones: 55-61-313-7654/Cel: 55-61-9618-0904
E-mail: Daniel.Capo at tco.net.br
         Daniel.Sobral at tcoip.com.br
         dcs at tcoip.com.br

Outros:
	dcs at newsguy.com
	dcs at freebsd.org
	capo at notorious.bsdconspiracy.net

"man hier" will explain the way FreeBSD filesystems are normally laid out.
		-- David Scheidt <dscheidt at tumbolia.com>



More information about the freebsd-net mailing list