So... my learning adventures go like this:

asrock 939DUAL-SATA2
athlon 64 3500+
2gb ddr 400
nvidia 6200 AGP

NICS:

3 x realtek pci gigabit nic
1 x onboard gigabit nic
1 x agere pci express gigabit nic (squeeze has default drivers for it, lenny does not, if i plug the pci nics, this one wont work unless i compile and install the drivers)

ADSL modem-router configured only as modem (pppoe) for Jdownloader to be able to reset the connection for ip changing.

DISTRO: DEBIAN (first lenny, now squeeze).

this machine will be a firewall, router, torrent/direct downlaod machine, and maybe more, in my house.
-----------------------------------------------------------------------
a note of the past:

I had the pci nics on an older machine (1 more pci nic there), with centos 5.3. Bridge-utilities, iptables, dnsmasq, torrentflux, ssh, vnc, xrdp, and many more things. It worked like a charm.

i REALLY preffer the GUI tools for managing the network in centos, and also the services GUI tool, and how the startup of each "thing" from init.d via the rc*.d is shown when starting the computer, but i want to learn debian now
----------------------------------------------------------------------

When i installed debian 5 (lenny), i struggled a bit, and ended up with a config that would not work after a reboot.

setting the bridge "the debian way" (in interfaces) reported that it was not possible to bring "br0" up, but it was really up afterall.

That debian 5 (lenny) install was made without the "modules=ppp-udeb" extra, so i had to install pppoeconf in order to be able to use the pppoe modem.

After running pppoeconf, i had internet, in the "server", and in the "clients" (i had the bridge, dnsmasq, ipmasq, etc, installed and working). no problems.

But after a reboot, it was gone. ppp0 apeared as connected when i executed the "ifconfig" command, but i couldnt browse, ping (by ip or name), etc. Not from the server, much less from the clients.

That installation had some problems with softirqd using like 25% cpu time... all the time. that was "fixed" by adding nohz=off to the boot parameters, and i read that it was also fixed in kernel 2.6.30 (wich i later confirmed when i installed squeeze), then, i broke the server, i had to reinstall, and went ahead and installed squeeze.

In centos, everything was fine if i gave an ip manually to the eth interface conected to the modem, or if i left it with no ip, or if i set it up with dhcp.

In debian, it seems to only work if i leave it with no ip (but up), if i dont do that, i have no internet in any computer.

below, is the interfaces config. file, from my lenny install.
Code:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
#allow-hotplug eth3
#iface eth3 inet dhcp

auto br0
       iface br0 inet static
           address 192.168.1.254
           network 192.168.1.0
           netmask 255.255.255.0
           broadcast 192.168.1.255
           gateway 10.0.0.2
           bridge_ports eth0 eth1 eth2 eth4
	   bridge_stp off

auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth3 up # line maintained by pppoeconf
provider dsl-provider

auto eth3
iface eth3 inet manual
and this is how i did it on centos (only the bridge part, and this method kind of works in debian too)

Code:
brctl addbr br0
brctl stp br0 off
brctl setfd br0 0
brctl addif br0 eth0
brctl addif br0 eth1
brctl addif br0 eth2
brctl addif br0 eth4
ifconfig eth0 down
ifconfig eth1 down
ifconfig eth2 down
ifconfig eth4 down
ifconfig eth0 0.0.0.0 up
ifconfig eth1 0.0.0.0 up
ifconfig eth2 0.0.0.0 up
ifconfig eth4 0.0.0.0 up
ifconfig br0 192.168.1.254 up
As you can see, i have no gateway section there, and i believe that adding it only worked when the eth3 (the one conected to the modem) had an ip (10.0.0.3), if not, it wouldnt work.

Now, in squeeze, i see no ipmasq package in synaptic (or apt-get, aptitude, whatever). I manually set the sysctl.conf option for ipv4 forwarding to 1.

i was SUPER happy, cause either by using the "debian way", or the other way, i had internet in the server, the bridge was up, DHCP (from dnsmasq) worked, my iptables rules that worked on centos, worked on debian (lenny), and now on squeeze, internet was working after a reboot,and ... the unexpected happened...

my client machines could ping anything.

but could only BROWSE GOOGLE RELATED STUFF ! (gmail, google, google docs, etc), nad slowly, i could load hotmail login page, but nothing more.

i spend the whole day yesterday with this, and couldnt solve it

one of the old HDDS i had on the server died, so i have to reinstall (it was used as /home).

so i cant provide more acurate info, but any ideas would really be appreciated !

pd: i was unable to configure the pppoe connection using the gui tools from the network manager under Debian 5 (lenny), i didnt try under squeeze, but in lenny, the eth device reverted to eth4 after accepting the config (the modem was on eth3), and the connection turned into a dial up one, insted of pppoe :/