[CentOS] network interface activation order

Fri Nov 30 18:03:11 UTC 2007
Graham Johnston <johnstong at westmancom.com>

On Fri, 2007-11-30 at 18:20 +0100, Nicolas Thierry-Mieg wrote:
> 
> Matt Hyclak wrote:
> > On Fri, Nov 30, 2007 at 08:51:50AM -0800, John R Pierce enlightened us:
> >> Graham Johnston wrote:
> >>> I am using CentOS as a firewall/router.  I am using bonded interfaces,
> >>> vlan interfaces, and bridge interfaces.  My problem currently is that on
> >>> boot the system is attempting to activate the bridge interface before
> >>> it's bonded-vlan members have been created.  What this means is that the
> >>> bridge is created but not activated.
> >>>
> >>> Is there anyway for me to influence the activation order and have bridge
> >>> interfaces dealt with last?
> >>>  
> >> there's probably a better way to do this, but what I've done in the past 
> >> is to create special firewall related kinda stuff like your'e describing 
> >> in my own script thats run quite late in the init sequence, usually from 
> >> rc2.d/S99myfirewall  or even from /etc/rc.d/rc.local
> >>
> >>
> > 
> > Yes, there is probably a better way. My initial thought was to set ONBOOT=no
> > for the bridge interfaces and then bring them up in an initscript or
> > rc.local later.
> > 
> > Looking at the network startup script (/etc/init.d/network), though, it
> > looks like you can probably achieve the same effect simply by renaming the
> > ifcfg-brX files to something like ifcfg-zbrX.
> > 
> > There is a loop to bring up interfaces that looks like:
> > 
> > # bring up all other interfaces configured to come up at boot time
> >         for i in $interfaces; do
> > 
> > and $interfaces is set just above by listing all files starting with ifcfg
> > and snagging the end part (e.g. eth0 or br0).
> > 
> > The loop figures out what kind of configuration it needs by reading the
> > file, so I don't think it cares what it is named, as long as it is
> > ifcfg-something. By renaming bridges to ifcfg-zbrX, it will come after
> > ifcfg-vlanX and I think solve your problem.
> > 
> > That was work, time for lunch :-)
> > 
> > Matt
> > 
> 
> I don't think so
> 
> the initial loop is not activating bridge and vlan:
> 
> 		if [ "$TYPE" = "Bridge" ]; then
> 		        bridgeinterfaces="$bridgeinterfaces $i"
> 			continue
> 		fi
> 
> 		if [ "${DEVICE%%.*}" != "$DEVICE" ] ; then
> 			vlaninterfaces="$vlaninterfaces $i"
> 			continue
> 		fi
> 
> Then later:
> 	for i in $vlaninterfaces $bridgeinterfaces ...
> 	<snip a few lines>
> 		action $"Bringing up interface $i: " ./ifup $i boot
> 
> 
> So, it should be bringing up your vlan interfaces before the bridges
> 
> do you have
> TYPE=Bridge
> in your bridge ifcfg file?

I had TYPE=bridge, and it very much so wants TYPE=Bridge.

thanks everyone for your help, it's working now.

Graham Johnston
Manager, Network Services
Westman Communications Group
204.571.7225
johnstong at westmancom.com