Make three NICs share the traffic in Server 2003
November 27, 2005 8:59 AM   Subscribe

Server 2003 Filter: How do I make three NICs share the load?

I have an in-home media server running WinServer 2003. It serves video and music to the entire house, which has ten users with their own PCs pulling files down and streaming all the time.

The server has three NICs, one onboard and two PCI. In the Networking tab in Task Manager, all three NICs show that they're Operational and working fine. But when the server gets traffic, only the onboard NIC shows a spike.

The other two NICs occaisionally show a little traffic on the order of 0.5% or so. This is maybe every five or ten minutes.

I've tried monkeying around with the Network Load Balancing (NLB) component, but that seems to be for balancing traffic between multiple servers, not multiple NICs.

I've got the Windows Server 2003 Inside Out book, and I've searched pretty thoroughly there and Googled rather extensively, but I just get a lot of hits for using NLB. Anyone know what I'm looking for?
posted by SlyBevel to Computers & Internet (15 answers total)
You are looking for "network teaming". I think my servers have it via the intel driver set. I don't have much else to tell you, but that is the phrase you are looking for!
posted by Richat at 9:44 AM on November 27, 2005

It can be done, but the network cards themselves (or more accurately, their drivers) need to support it. Standard desktop NICs generally won't. Take a look at 3Com and Intel's business-level offerings, they'll come with the software you'll need to achieve this.
posted by CrayDrygu at 10:31 AM on November 27, 2005

Ah hah! That makes sense. Thanks, CrayDrygu.
posted by SlyBevel at 10:57 AM on November 27, 2005

If you need a cheaper solution, you might consider changing your network topology so that some of the clients are routed through each interface. Have several switches each with a portion of the clients attached and each attached to a different interface on the server. This assumes that you're ok with the server routing all the traffic, which may not be the case.

If not, even with teamed ethernet cards, you might not get too much of a gain anyhow. Chances are good that the switches you're using probably don't have much internal bandwidth beyond the 200Mb/s of a full speed connection (assuming standard 10/100 ethernet). Are they Cisco or something similarly high performance or off the shelf Linksys or Netgear or similar?

I'd like to hear how this works out for you.
posted by joegester at 12:09 PM on November 27, 2005

Nothing too fancy. All three NICs are Intel...the onboard is a Pro 1000, but with only 10/100 infrastructure to back it up. The two PCI's are standard ~2 year old Intel 10/100 NICs.

There isn't a hub in the house, so I don't have to worry about collision domains. This is important, because two of the NICs feed out to the Siemens 16 port switch that services most of the devices in the house, and the third NIC feeds directly to the Netgear DSL modem/router, which then feeds back to the Siemens switch.

So in answer to your question, yes, it's all off-the-shelf, consumer level stuff.

I can't really divide the house into traffic domains without doing substantial re-cabling, and it just isn't worth the work.

I think I'll just pull the two PCI NICs from the server and call it good.
posted by SlyBevel at 12:31 PM on November 27, 2005

Can you describe your network topology in a little more detail? That is, how are you serving the 10 clients -- wireless? Are you using a router? Why the three NICs?

The reason I ask is because the hacked improved Linksys router supports load balancing.
posted by Civil_Disobedient at 12:37 PM on November 27, 2005

1. Topology: The network is a basic star from the Siemens switch. There are a couple of other switches, but they're not really important here.
2. Almost all network traffic goes through the switch. The Netgear is the gateway to the internet, and that's the only traffic that goes through it.
3. Only two of the clients are wireless; my TabletPC and the wife's laptop. Everything else is wired.
4. I am using just the one router built into the modem, but as I said, it's just Internet traffic.
5. Three NICs because: A significant chunk of server traffic in the house is video. Most of us stream rather than download so that we don't saturate the network. But I work with client OS images (I run a small tech business) on the server, too, and a few gigabytes in the middle of the evening slows everyone down. I was hoping that Server 2003 was smart enough to automagically balance the load between the three NICs, but not so.
posted by SlyBevel at 1:30 PM on November 27, 2005

Why not just put one NIC on a different subnet, and use that for your OS images?
posted by madajb at 2:27 PM on November 27, 2005

Yep, you can do it, but it's more complicated than what you think.

You will need enterprise class hardware from the server to the switch. Your NIC's need drivers that support load-balancing or teaming, and the NIC's themselves need to support it. Your switch needs to support it.

Here's a good post I found that has documents from HP/Compaq about doing this on their proliant hardware.

As an alternative solution, I would recommend that you just assign different IP's to the NIC's, and then have everyone do their streaming bandwidth on the regular IP that they use now. You can then use the other NIC with the new IP exclusively for your OS imaging stuff.

Since you have a switch, the traffic on the network shouldn't be a problem- you're just currently saturating the one 100MBit connection you have with all this stuff, and that's not good. The switch backplane should be good enough for the amount of clients you have.
posted by id at 2:31 PM on November 27, 2005

ID, could I get a little more detail on your idea?

I understand having my work talk to a different NIC, but how would you do it in practice?

I juggle files by using network shares in Windows Explorer. When I'm tossing files around, how do I specify which IP (and therefore NIC) I want to talk to?
posted by SlyBevel at 2:57 PM on November 27, 2005

If your traffic is standard TCP/IP (this includes SMB, but not NetBIOS) then you should be able to do it without any fancy hardware or software by assigning each interface its own IP address and then running your own DNS server that returns all three A records. The client will then pick one at random and connect to it.

This is perhaps not "true" load balancing in that once a connection has been established it will be bound completely to that interface. If you have connections that are long-lasting it won't work very well.

You have to make sure that all clients actually use DNS (or WINS I suppose) for name resolution, not etc\hosts or IP addresses. You have to make sure that your DNS server returns a low TTL on each response.

You could also manually assign the connections, by having three different names for the server. Then use one of the three names on each remote PC, that way each PC would always be talking to one of the three NICs. Again, not "true" load balancing but in your case it might be sufficient.
posted by Rhomboid at 4:20 PM on November 27, 2005

Intel Pro 1000 NICs support teaming, I thought. That might be one solution. If they, or the switch, do not however...

Rhomboid mentioned the DNS idea already- I was reading through the thread just now hoping I'd be first to suggest you didn't any hardware or cable solutions to fix this problem. *sigh*... :) Server 2003 has DNS capability out of the box- surprised you don't have it running already, with Win2k3 wanting to be AD and thus DNS if you install it fresh.

It is true load balancing in the sense that with sufficient numbers of clients, you are balancing them equally (though not with fault-tolerance). However, only 10 clients probably won't be balanced perfectly evenly. That said, a round robin DNS with low TTL (say, 5 minutes) could keep your multiple clients roughly balanced- or at least more distributed- across the NICs, without teaming hardware and switch compatibility expenses. It's not a bad idea anyway, with as large a home network as you seem to be describing, to have a dedicated DNS forwarding server as well.

All that said, the DNS load balancing can help utilize all three NICs more equally, on the cheap. But your comment about doing OS imaging (ADS, perhaps?) makes me think madajb's comment may help solve this problem as well: most PXE imaging systems I've seen will bind to one and only one NIC, so that NIC would still see a spike when you did imaging that could impact the users who are DNS'ed to that NIC's IP.

So, maybe a hybrid solution:
  • Use server 2003 as a DNS server/forwarder for the network on NIC #1's IP, and have RR DNS to balance between NIC's #2 and #3 for all media streaming
  • Bind the imaging solution to NIC #1, so that it'll only compete with DNS serving and other minor traffic when it images

posted by hincandenza at 4:57 PM on November 27, 2005

Wowser. Excellent answers, and thanks very much for the help.

Now, one more thing: I don't use AD on the server because I simply don't need it. Can I make it a DNS server without using AD?

I was thinking of using AD at one time, and did go part way through the DNS setup, but the truth is I'm mostly a hardware guy, and the lack of notable results made me feel that I was doing something wrong.

I'm open to using AD, but only if it's...well, easy. I can Google up dozens of Howtos, but what would be the bare bones of this solution?
posted by SlyBevel at 7:39 PM on November 27, 2005

No, no- you don't need AD at all to use DNS, you can just install the DNS server component and configure it as a standalone DNS Server service.

I only mentioned it because Server 2k3 typically prompts you to create an AD out of the box, or join an existing AD, and that if you had done so, you'd by definition already have DNS installed; Active Directory functions on top of DNS, and absolutely requires it. So if you'd installed AD, you'd have DNS. But you can install DNS by itself any time you want, and never touch AD. Make sense?
posted by hincandenza at 1:45 AM on November 28, 2005

I think so. I've got a good place to start now. Thanks for your help.
posted by SlyBevel at 6:17 PM on November 29, 2005

« Older Holiday Open House food-filterâ„¢   |   How do I get the word out about my friend's... Newer »
This thread is closed to new comments.