Jump to content
RESET Forums (homeservershow.com)
Sign in to follow this  
AlexF

"load balance" outgoing traffic from Windows client with multiple NICs

Recommended Posts

ikon

I knew this was going to be interesting. I agree with jem101 re: VirtualBox. VM software can often exhibit different behaviour than physical hardware.

 

I don't know, because I've never done it, but I'm wondering if jem101 is getting at the idea that having 2 different gateway addresses means the PC is effectively connecting to 2 different networks, but trying to do it internally on the local LAN is trying to do it on a single network.

Share this post


Link to post
Share on other sites
AlexF

Well, for the sake of argument, I manually allocated "Built-in" interface 192.168.1.130/25, thinking that perhaps, as jem101 implied, interfaces need to be on different subnet (although, I know they're overlapping but this is best I can do given that I have just one Gateway). Results are same - only traffic is egressing via "TP-Link TG-3468 v2" interface.

Edited by AlexF

Share this post


Link to post
Share on other sites
jem101

I fail to see the difference. I mean, obviously I know the difference between accessing destinations on local subnet and accessing destination via the Gateway, or that Gateways for the NIC are different but I fail to see why it be "perfectly possible" in one case and not another.

 

My logic is simple, if metric to destination is same, then OS can choose which NIC to use and use it for the duration of the connection, irrespective of whether destination is on local subnet or via Gateway (to Internet or other local subnets).

 

 

Granted the logic is simple but as far as I am aware, that is just not the way it works. I believe that ikon has summed it up quite well. Imagine I have a PC with two NICs 192.168.1.1 and .2 and (and this is the important part) two gateways on .250 and .251 out to the internet.

I either manually add the routes or allow the OS to create them for me

 

route add 0.0.0.0 mask 0.0.0.0 192.168.1.250 metric 10 if 1

route add 0.0.0.0 mask 0.0.0.0 192.168.1.251 metric 10 if 2

 

and I then try to ping www.google.com, the network stack has a choice of two routes to get out, one on each interface - it'll choose one and all being well, you get a response, ping another host and again the stack will choose which route to take and it might or might not use the same interface. However the important thing is that it is the route which the PC is attempting to balance across not the hardware interface.

 

Now remove one of the gateways and just use one, change the routing table to match and now there is no decisions to be made - it will always send traffic out through one of the interfaces (it'll be the one with the lowest binding order). Similarly if you try to ping something on your local subnet, again there are no routing decisions to be made, it'll always chose one interface and stick with it.

 

What was it you were trying to do, it may be possible to 'simulate' a sort of solution with static routes.

 

John

Share this post


Link to post
Share on other sites
AlexF

However the important thing is that it is the route which the PC is attempting to balance across not the hardware interface.

I think you're attempting to differentiate between routing and local-switch by saying that it has something to do with Routing Table. Well, even local switching is in the Routing Table, see this above:

      192.168.1.0    255.255.255.0         On-link       192.168.1.5    266

      192.168.1.0    255.255.255.0         On-link       192.168.1.3    266

The main difference is whether ARP specifies IP address of intended destination or that of specified Gateway (which it'll use as destination of subsequent frames). But this doesn't preclude possibility of utilising either NIC.

 

The purpose of all this is to increase bandwidth towards my NAS. I could say that ideally, I'd just do LACP (because my switch and FreeNAS supports it) (although Microsoft has wisely decided to remove this choice from me unless I buy their server OS), however, it's not so simple, my switch is using L2+L3 for hashing (ie. selection of physical NIC) and since origin (my PC) and destination (my NAS) will always be same, so will the hash - hence same NIC, hence no real benefit.) In fact, Windows 7 load-balancing that I described above would be most preferable.

Edited by AlexF

Share this post


Link to post
Share on other sites
jmwills

Again, what do we hope to achieve by getting this working?

Share this post


Link to post
Share on other sites
AlexF

Again, what do we hope to achieve by getting this working?

 

The purpose of all this is to increase bandwidth towards my NAS.

Edited by AlexF

Share this post


Link to post
Share on other sites
jem101

Alex, I think you may be the first person I've spoken to who uses the work 'frame' in it's proper context.

 

ARP tables have no concept of layer-3 routing, if you do a 

 

arp -a

 

command you should see just entries relating to the local subnet so it can only know about the gateway and once it puts the frame on the network with that address in the header, it'll loose interest.

 

 

but Microsoft has wiselydecided to remove this choice from me unless I buy their server OS.

 

 

I think you may have answered your own question, they don't consider it a feature suitable for a desktop OS.

 

What you want to do on a layer-2 network is link agregation not load balancing and W7 just doesn't have it built-in. It is a function of the network card driver so you might start there and see if there is a driver available (or even change NICs) to support it.

Share this post


Link to post
Share on other sites
jmwills

I would suspect you have a Gigabit network and both of these NICs are Gigabit NICS so how are we going to overcome that?  there is much more than comes into this other than NICs and write speeds to a NAS.

 

HDD speeds on both ends along with the % of the drive being full

Type of cabling in between the two points

How many jumps the traffic is taking between A & B

 

Personally I think this is an unreachable goal with what you have to work with.  Not saying it is wrong but once the NAS is initially seeded with data, how much more is there to write other than incremental data?

Share this post


Link to post
Share on other sites
AlexF

What you want to do on a layer-2 network is link agregation not load balancing and W7 just doesn't have it built-in. It is a function of the network card driver so you might start there and see if there is a driver available (or even change NICs) to support it.

As I wrote (too much) in #14, I don't think LACP will help me - because hash will always be the same, it'll just saturate one NIC. Of course, it'll help other NAS users but that's not my primary issue.

Edited by AlexF

Share this post


Link to post
Share on other sites
ikon

I'm thinking out loud here, so please bear with me. If the goal is to increase bandwidth to a NAS it would seem that Link Aggregation is the answer. However, I understand what you're saying: i.e. LA is for incoming traffic, so the NAS could handle multiple Client PCs better, but it won't help traffic from a single PC to the NAS. You're trying to find another way around the gigabit Enet limit.

 

Almost sounds like 10Gb Enet is your next option.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  



×
×
  • Create New...