Unix Technical Forum

Multiple network adapters -- getting processes to use a specificinterface

This is a discussion on Multiple network adapters -- getting processes to use a specificinterface within the Slackware Linux Support forums, part of the Unix Operating Systems category; --> Hello all. I'm looking for some insights. I have a machine running Slackware 10.0 with which I intend on ...


Go Back   Unix Technical Forum > Unix Operating Systems > Slackware Linux Support

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 02-20-2008, 07:31 AM
shufler
 
Posts: n/a
Default Multiple network adapters -- getting processes to use a specificinterface

Hello all. I'm looking for some insights.

I have a machine running Slackware 10.0 with which I intend on
installing multiple NICs (3-5, depending if I can find two ISA Ethernet
cards). Once I install the devices and configure them, I want to force
specific processes to communicate through specific cards.

For example, if I have 5 processes (foo0 - foo4), I want one of each to
use a different interface (eth0 - eth4). As more processes are run, they
would be distributed across the different NICs in whatever manner, it
doesn't really matter. The key is being able to tell processes which
connection to use.

I haven't been able to find much information about this at all, be it
from Google, IRC, any form of Slackware "manual" I can find, any other
distro's manual, or even books (I've seemed to have discovered that most
Linux books I've looked at are void of decent networking information in
general, usually stopping at configuring a device).

Most people I have spoken with have indicated that this is probably a
per-program setting, meaning if a program can support using a specific
interface, then good news, otherwise I'm SOL. I honestly believe this is
nonsense, and what I am proposing is quite possible (or at least, I am
hoping this is the case). As far as I can tell, the processes I want to
do this with are not equipped for me to specify the device.

Conceptually, I see this as piping processes to interfaces, though I'm
not claiming to be correct on this.

Any thoughts on this matter are appreciated. Also, if there is somewhere
else (another group) this question would be more appropriately targeted,
please let me know.

--JW
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2 (permalink)  
Old 02-20-2008, 07:31 AM
Kurt Fitzner (kfitzner at excelcia period org)
 
Posts: n/a
Default Re: Multiple network adapters -- getting processes to use a specificinterface

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

shufler wrote:
> Hello all. I'm looking for some insights.
>
> I have a machine running Slackware 10.0 with which I intend on
> installing multiple NICs (3-5, depending if I can find two ISA Ethernet
> cards). Once I install the devices and configure them, I want to force
> specific processes to communicate through specific cards.
>
> For example, if I have 5 processes (foo0 - foo4), I want one of each to
> use a different interface (eth0 - eth4). As more processes are run, they
> would be distributed across the different NICs in whatever manner, it
> doesn't really matter. The key is being able to tell processes which
> connection to use.


I'm not aware of a way to round-robin force specific processes to use a
specific interface. However, there are ways to do load distribution
across multiple ethernet adapters, which (depending on why you want to
do the above) may help.

My understanding, though, is that load distribution works on a
per-packet basis, not on a per-process. So you won't get one process
locked to one adapter, you'll have all the packets from all the
processes distributed more-or-less evenly across all adapters.

I'm almost certain there is no way currently to lock a process to an
adapter. There just isn't a slot in the kernel's per-context data for
that sort of thing. It would require a change to the kernel that would
link context-switching to networking - and that wouldn't be trivial. I
will add, though, that while I'm pretty sure of the above, you might
want to confirm it with someone more experienced in the kernel than I.
I'd suggest the linux kernel mailing list.

Kurt.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (MingW32)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iQEVAwUBQlZmIN366Kf2Ie2tAQgpgwgAj2iirqAcJgdDGUGA27 SwnozcTZ+2D1ZG
i3qhoDun98de5Dlg+Qq5Su+KEqVpAUktSUBPEWEZAxyqsDbE0m OXHmGkc14tXrfp
3VS/fC+LDmRkccha3Bu2cz/2tXZnfry8dXoI1b9LcDzNDVCfaAQG7EZ6sI/rqZFY
ZYArm9zsonVwo5xeuhlBs1pCsJg3stjG7X15K9GiNpn4qygrNn 5m+HH/reopoGFz
u/t3OiiRyticsQzPGqDUcvrG9pKQDRExIEenm+a0R0V02km8yy9D 5JoFwTgrKQ1i
pDhibDfPhymGUTq3K2Mn++fMJ0fB+MyprUzW3HYHOxhLbXrbu/m30g==
=FNCG
-----END PGP SIGNATURE-----
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #3 (permalink)  
Old 02-20-2008, 07:31 AM
Grant Coady
 
Posts: n/a
Default Re: Multiple network adapters -- getting processes to use a specific interface

Hi,
On Fri, 08 Apr 2005 10:40:23 GMT, shufler <usenet@shufler.net> wrote:

>I haven't been able to find much information about this at all, be it
>from Google, IRC, any form of Slackware "manual" I can find, any other
>distro's manual, or even books (I've seemed to have discovered that most
>Linux books I've looked at are void of decent networking information in
>general, usually stopping at configuring a device).


Because you go into routing space, away from majority users? What you
trying to do? I'm thinking either low-routing or high-level load
sharing like a server or compiler farm.

I've had three NICs running, and that is scratching for interrupts on
some machines. Disable serial ports & printer to get some.
>
>Most people I have spoken with have indicated that this is probably a
>per-program setting, meaning if a program can support using a specific
>interface, then good news, otherwise I'm SOL. I honestly believe this is
>nonsense, and what I am proposing is quite possible (or at least, I am
>hoping this is the case). As far as I can tell, the processes I want to
>do this with are not equipped for me to specify the device.
>
>Conceptually, I see this as piping processes to interfaces, though I'm
>not claiming to be correct on this.

Well, my thought is normally a high-level program knows about an
endpoint, routing is different matter. Source routing went out
ages ago.
>
>Any thoughts on this matter are appreciated. Also, if there is somewhere
>else (another group) this question would be more appropriately targeted,
>please let me know.


Very much depends what you are doing, clustering, routing or some other.
clustering -> beowulf
server farm -> apache
compiler farm -> distcc

what's yours?

Cheers,
Grant.


>
>--JW


Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #4 (permalink)  
Old 02-20-2008, 07:32 AM
john
 
Posts: n/a
Default Re: Multiple network adapters -- getting processes to use a specific interface

On Fri, 08 Apr 2005 10:40:23 +0000, shufler wrote:

> Hello all. I'm looking for some insights.
>
> I have a machine running Slackware 10.0 with which I intend on
> installing multiple NICs (3-5, depending if I can find two ISA Ethernet
> cards). Once I install the devices and configure them, I want to force
> specific processes to communicate through specific cards.
>
> For example, if I have 5 processes (foo0 - foo4), I want one of each to
> use a different interface (eth0 - eth4). As more processes are run, they
> would be distributed across the different NICs in whatever manner, it
> doesn't really matter. The key is being able to tell processes which
> connection to use.
>
> I haven't been able to find much information about this at all, be it
> from Google, IRC, any form of Slackware "manual" I can find, any other
> distro's manual, or even books (I've seemed to have discovered that most
> Linux books I've looked at are void of decent networking information in
> general, usually stopping at configuring a device).
>
> Most people I have spoken with have indicated that this is probably a
> per-program setting, meaning if a program can support using a specific
> interface, then good news, otherwise I'm SOL. I honestly believe this is
> nonsense, and what I am proposing is quite possible (or at least, I am
> hoping this is the case). As far as I can tell, the processes I want to
> do this with are not equipped for me to specify the device.
>
> Conceptually, I see this as piping processes to interfaces, though I'm
> not claiming to be correct on this.


Most server processes (such as apache etc) can be configured to listen on
a specific IP address. So if your foo1, foo2,... are different programs,
you just configure them accordingly. Of course you hoave to read the
manual for each, to find out how.

If they are all the same process, thin I suppose you are just trying to
spread the networking load amongst several NICs. One possibility might be
to set up a DNS server, and supply it with several IP addresses for a your
machine's name. I'm not sure exactly how you do this, but reading the
manual for bind9 would certainly tell you.

Then, anyone wanting to connect to (say) www.your-server.com would get one
of the IP addresses from DNS, in a round-robin fashion. The various "foo"
processes could listen on all the network interfaces (this is usually the
default behaviour), but each connection would be routed through one or
other of the network cards more-or-less at random, thus spreading the
load.

But unless you've got a very fast processor and some very slow network
cards, it's not obvious why you would want to do this.

John
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #5 (permalink)  
Old 02-20-2008, 07:32 AM
MikeyD
 
Posts: n/a
Default Re: Multiple network adapters -- getting processes to use a specific interface

shufler wrote in <rct5e.924302$Xk.702207@pd7tw3no>:

> Hello all. I'm looking for some insights.
>
> I have a machine running Slackware 10.0 with which I intend on
> installing multiple NICs (3-5, depending if I can find two ISA Ethernet
> cards). Once I install the devices and configure them, I want to force
> specific processes to communicate through specific cards.
>
> For example, if I have 5 processes (foo0 - foo4), I want one of each to
> use a different interface (eth0 - eth4). As more processes are run, they
> would be distributed across the different NICs in whatever manner, it
> doesn't really matter. The key is being able to tell processes which
> connection to use.
>
> I haven't been able to find much information about this at all, be it
> from Google, IRC, any form of Slackware "manual" I can find, any other
> distro's manual, or even books (I've seemed to have discovered that most
> Linux books I've looked at are void of decent networking information in
> general, usually stopping at configuring a device).
>
> Most people I have spoken with have indicated that this is probably a
> per-program setting, meaning if a program can support using a specific
> interface, then good news, otherwise I'm SOL. I honestly believe this is
> nonsense, and what I am proposing is quite possible (or at least, I am
> hoping this is the case). As far as I can tell, the processes I want to
> do this with are not equipped for me to specify the device.
>

You should listen to those people. What's the process you're trying to run?
You're looking for a setting for which IP to listen on, which most server
processes have.

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 06:26 AM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
www.UnixAdminTalk.com