Dual NIC system

Please Help:

I have spent several days now trying to set up a dual network card linux box to no avail.

RH 6.1
2 ISA 3Com 3c509b cards
One card should get config info via DHCP, and the other should have a static address (

I am trying to turn my old box into a firewall/proxy.  I have tried loading the network card support as modules with a variety of parameters, and also building them right into the kernel (something I've heard I need to do for firewall support anyway).  Using the 3Com DOS utility, I have disabled the cards' PnP support and tried almost every IRQ and IO I can think of.

And what really stinks is that, even after numerous fdisks and fresh installs, the box won't even recognize a single card anymore.

The only clue I can find is in my /var/log/messages which reads:
kernel: eth0: 3c509 at 0x280....
kernel: eth0: Setting Rx mode to 1 addr
kernel: eth0: Setting Rx mode to 0 addr
kernel: eth0: Setting Rx mode to 1 addr

Which is the same message I get when I call ifup eth0.

Any ideas?

Thanks in advance,
Who is Participating?
lewisgConnect With a Mentor Commented:
I have recently set up about 7 machines to do this sort of thing. All are using the 3c509 however none are using DHCP.

1 - One at a time configure the 3c509's with 3c5x9cfg.exe. The settings I use are IRQ:5 IO:300 for the first card and IRQ:10 IO:240 for the second. The common settings are PNP disabled, Server optimazition, No modem. Also be sure that you have the correct tranceiver specified if you are using a combo card.

2 - Your /etc/conf.modules should look like this:
alias eth0 3c509
alias eth1 3c509

3 - At this point if what you want is a stand alone firewall I would ditch all the needless complications of a RH6.1 system and got to www.sharethenet.com. Their product creates a bootable linux floppy that will do what you need. Be sute to read the readme file for instructions on the 3c509.

4 - Since this is a natural fork in the road dink with it and reply if you need more help. In addition to the STN machines I have set up several RH6.1's for firewalling.
I don't think you need the drivers built into the kernel for this to work, at least I never have. You do need to tell the kernel what to do with each card, though. Section 3.2 of the "Ethernet HowTo" shows two methods. Personally I like the second as it's more explicit.

Apparently nothing is working now. The first step is to get back to a point where one of the cards is in the machine and it is recognized and works. Is the current kernel as-distributed or is it a custom kernel?

Assuming it's a distributed kernel and modules set, configure one card for a free IRQ and IO port and remove the other card. Remove anything you've put in /etc/conf.modules and try a reboot.
RedHat should find the device and put an "alias eth0 3c509" line in /etc/conf.modules. One other thing that soemtimes matters is that you may need to tell your bios that the IRQ for the card is reserved for legacy ISA.

Try that and lets see what you have.
 I think first of all you should change the IO address of your network cards from 0x280 to 0x300, 0x320 or 0x340. 0x280 may be not an appropriate IO address for network card in Linux.
  Second, remove one card, configure the left card to appropriate IO address in DOS and make the correct config of Linux kernel and network parameters. Boot Linux again to see if it works now. If so, exchange to another network card, config it in DOS to different IO and IRQ, config the kernel and network parameters, boot Linux again to see if it works fine too. If so, you are almost sure to get both of your cards work now. Put the two cards together, config the kernel and network parameters to support two cards. Boot again.
  Hope it's helpful.

So what I'd do is:
Go back to the original, (modular) kernel.
Stick  the line

alias eth0 3c509

in /etc/conf.modules
Boot with only one card . If  this works, then
try to stick the second one in, and  put an additional  line like

alias eth1 3c509

in conf.modules. If it does not work, you may want to try to add some options to the  second alias
line (also be sure that modperobe eth<n> is done
during the boot process. RH should do this automatically, assuming you have configured the
second interface. Or, you can try it manually beforehand)

If you want to use statically compiled drivers,
then the above does not work, and you
will have to use boot-time parameters, which you can later on add permanently to lilo.cong: see Ethernet-HOWTO  for details.

cubedwellerAuthor Commented:
Thank you very much to lewisq and everyone who helped me.

It turned out that, in order to get it working, I have to unplug my cable modem for at least 60 seconds between reboots (in addition to the 3c5x9cfg configurations).
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.