Hello, Will the Simple Source routing example shown in "LARTC HOWTO" work for a multihomed host (not a router) application that simply "binds" to the address associated with the interface or does the source routing decision only effect packets coming in over the interface and not from a local application? Basically, I want an application to choose which interface to use (i.e. override the default route) by doing something similar to the old days (Kernel 2.0.31 I think) when there was a socket option called SO_BINDTODEVICE. Thanks for any and all help, Steve Castro
On Tue, Feb 26, 2002 at 09:36:50AM -0500, STEVE CASTRO wrote:> Hello, > > Will the Simple Source routing example shown in "LARTC HOWTO" work > for a multihomed host (not a router) application that simply "binds" > to the address associated with the interface or does the source > routing decision only effect packets coming in over the interface and not > from a local application?It effects all packets.> Basically, I want an application to choose which interface to use (i.e. > override the default route) by doing something similar to the old days > (Kernel 2.0.31 I think) when there was a socket option called > SO_BINDTODEVICE.Can''t you just let the application bind to the ip address of the interface? What do you mean by overriding default routes? Regards, bert -- http://www.PowerDNS.com Versatile DNS Software & Services http://www.tk the dot in .tk http://lartc.org Linux Advanced Routing & Traffic Control HOWTO
> > Will the Simple Source routing example shown in "LARTC HOWTO" work > > for a multihomed host (not a router) application that simply "binds" > > to the address associated with the interface or does the source > > routing decision only effect packets coming in over the interface andnot> > from a local application? > > It effects all packets. > > > Basically, I want an application to choose which interface to use (i.e. > > override the default route) by doing something similar to the old days > > (Kernel 2.0.31 I think) when there was a socket option called > > SO_BINDTODEVICE. > > Can''t you just let the application bind to the ip address of theinterface? yes...this is exactly what I want to do. BUT....I am just beginning to learn about the "advanced routing" capabilities AND it is not clear to me how (or even if its possible) to set it up a multihomed linux host (not a router) to ensure that the outgoing interface is chosen based upon the bound to address and NOT the destination address. Prior to "advanced routing" the outgoing interface on a multi-homed host (not router) was chosen strictly on the destination address. The binding simply fixed the source address of the packet....regardless of the interface actually used. (One could thus have packets sent out eth0 whose source address were actually eth1) There was no source routing capability on a linux host, only linux routers. The SO_BINDTODEVICE was an early socket option to get around this.> > What do you mean by overriding default routes?Suppose I have a multihomed host with 2 interfaces (eth0,eth1) to 2 different ISPs. If I have set up the default route to be eth0 for all internet traffic, I want to be able to bind an application to eth1 and thus have that connections packets go out eth1 and NOT eth0. In other words, I want the routing decision to be based upon the bound to source address to take precedence over the destination default route rule. I know doing source routing is possible when the linux box is setup as a router. I am only considering setting up the box as a multi-homed host with all outbound traffic generated from local application processes. I do not presently have access to a multihomed host otherwise I would fiddle around to figure this out. Thanks, Steve
On Thu, Feb 28, 2002 at 10:32:19AM -0500, STEVE CASTRO wrote:> > > > Will the Simple Source routing example shown in "LARTC HOWTO" work > > > for a multihomed host (not a router) application that simply "binds" > > > to the address associated with the interface or does the source > > > routing decision only effect packets coming in over the interface and > not > > > from a local application? > > > > It effects all packets. > > > > > Basically, I want an application to choose which interface to use (i.e. > > > override the default route) by doing something similar to the old days > > > (Kernel 2.0.31 I think) when there was a socket option called > > > SO_BINDTODEVICE. > > > > Can''t you just let the application bind to the ip address of the > interface? > > yes...this is exactly what I want to do. BUT....I am just beginning to learn > about the > "advanced routing" capabilities AND it is not clear to me how (or even > if its possible) to set it up a multihomed linux host (not a router) to > ensure that the > outgoing interface is chosen based upon the bound to address and NOT the > destination address. > > Prior to "advanced routing" the outgoing interface > on a multi-homed host (not router) was chosen strictly on the destination > address. > The binding simply fixed the source address of the packet....regardless of > the > interface actually used. (One could thus have packets sent out eth0 whose > source > address were actually eth1) There was no source routing capability on a > linux host, only > linux routers. The SO_BINDTODEVICE was an early socket option to get around > this.I suggest you read ''Unix Network Programming 1&2'' by Stevens, or peruse the source of any program with a ''bind to address'' option. Regards, bert -- http://www.PowerDNS.com Versatile DNS Software & Services http://www.tk the dot in .tk http://lartc.org Linux Advanced Routing & Traffic Control HOWTO