Discussion:
[omniORB] Binding omniORB to a specific address
Sylvain Gault
2013-08-19 18:39:55 UTC
Permalink
Hello,

In my platform, there are several interfaces that can access the same
network.
Namely, ib0:1 with an address in 10.0.0.0/8 and ib0 with address an
address in 172.18.0.0/16.
The routing is done so that ib0:1 is routed through ib0.
However, although the destination addresse is also in 10.0.0.0/8,
omniORB prefer to use ib0 directly to reach the other node.
Is there a way to bind omniORB to a specific address or interface so
that the source address of the messages would be in 10.0.0.0/8?

This is important because I'm planing to put some bandwidth restriction
on ib0:1 instead of ib0 directly. This would allow me to run several
processes on the same node with several ib0:X interfaces.

Regards,
Sylvain Gault
Sylvain Gault
2013-08-19 23:15:56 UTC
Permalink
Post by Sylvain Gault
Hello,
In my platform, there are several interfaces that can access the same
network.
Namely, ib0:1 with an address in 10.0.0.0/8 and ib0 with address an
address in 172.18.0.0/16.
The routing is done so that ib0:1 is routed through ib0.
However, although the destination addresse is also in 10.0.0.0/8,
omniORB prefer to use ib0 directly to reach the other node.
Is there a way to bind omniORB to a specific address or interface so
that the source address of the messages would be in 10.0.0.0/8?
This is important because I'm planing to put some bandwidth restriction
on ib0:1 instead of ib0 directly. This would allow me to run several
processes on the same node with several ib0:X interfaces.
Additional information:
This is also required since I'm trying to simulate a star network with a
limited bandwidth on the router. And the packets gets routed through the
router only if their destination address is in the network 10.0.0.0/8.
Which means that currently, when host A connect to host B, the source
and destination addresses are in 172.18.0.0/16 and 10.0.0.0/8
respectively. Thus, the response packets from host B do not go through
the router. Which is quite bad.


Regards,
Sylvain Gault
Sylvain Gault
2013-08-20 13:36:05 UTC
Permalink
Post by Sylvain Gault
Post by Sylvain Gault
Hello,
In my platform, there are several interfaces that can access the same
network.
Namely, ib0:1 with an address in 10.0.0.0/8 and ib0 with address an
address in 172.18.0.0/16.
The routing is done so that ib0:1 is routed through ib0.
However, although the destination addresse is also in 10.0.0.0/8,
omniORB prefer to use ib0 directly to reach the other node.
Is there a way to bind omniORB to a specific address or interface so
that the source address of the messages would be in 10.0.0.0/8?
This is important because I'm planing to put some bandwidth restriction
on ib0:1 instead of ib0 directly. This would allow me to run several
processes on the same node with several ib0:X interfaces.
This is also required since I'm trying to simulate a star network with a
limited bandwidth on the router. And the packets gets routed through the
router only if their destination address is in the network 10.0.0.0/8.
Which means that currently, when host A connect to host B, the source
and destination addresses are in 172.18.0.0/16 and 10.0.0.0/8
respectively. Thus, the response packets from host B do not go through
the router. Which is quite bad.
Actually I've been able to do this by fixing my routes.

However, it could still be useful to bind CORBA to a specific address.


Regards,
Sylvain Gault
Duncan Grisby
2013-08-20 13:42:32 UTC
Permalink
On Mon, 2013-08-19 at 20:39 +0200, Sylvain Gault wrote:

[...]
Post by Sylvain Gault
Is there a way to bind omniORB to a specific address or interface so
that the source address of the messages would be in 10.0.0.0/8?
This is covered in quite a lot of detail in the documentation:

http://omniorb.sourceforge.net/omni41/omniORB/omniORB008.html#toc42

Duncan.
--
-- Duncan Grisby --
-- duncan at grisby.org --
-- http://www.grisby.org --
Sylvain Gault
2013-08-20 14:28:36 UTC
Permalink
Post by Duncan Grisby
[...]
Post by Sylvain Gault
Is there a way to bind omniORB to a specific address or interface so
that the source address of the messages would be in 10.0.0.0/8?
http://omniorb.sourceforge.net/omni41/omniORB/omniORB008.html#toc42
I read this, and this is not what I'm looking for.
I know I can configure the published addresses and the listen addresses
on the server side. I can also configure the endPoint to connect to from
the client side.

But what I'm trying to configure is the local interface of the client
side.

And I can't find it in the documentation.


Sylvain Gault
Duncan Grisby
2013-08-28 10:42:33 UTC
Permalink
On Tue, 2013-08-20 at 16:28 +0200, Sylvain Gault wrote:

[...]
Post by Sylvain Gault
I read this, and this is not what I'm looking for.
I know I can configure the published addresses and the listen addresses
on the server side. I can also configure the endPoint to connect to from
the client side.
But what I'm trying to configure is the local interface of the client
side.
I see. The outgoing interface the client uses is determined by the IP
stack's routing setup. It's not something that omniORB has any control
over. Your operating system probably has a "route" command that lets you
configure it.

Duncan.
--
-- Duncan Grisby --
-- duncan at grisby.org --
-- http://www.grisby.org --
Sylvain Gault
2013-09-05 14:16:17 UTC
Permalink
Post by Duncan Grisby
[...]
Post by Sylvain Gault
I read this, and this is not what I'm looking for.
I know I can configure the published addresses and the listen addresses
on the server side. I can also configure the endPoint to connect to from
the client side.
But what I'm trying to configure is the local interface of the client
side.
I see. The outgoing interface the client uses is determined by the IP
stack's routing setup. It's not something that omniORB has any control
over. Your operating system probably has a "route" command that lets you
configure it.
Actually, it can do something about it. The bind(2) function can be used
on client-side sockets to specify a local address when the system have
several addresses.


Sylvain
Duncan Grisby
2013-09-05 22:25:37 UTC
Permalink
Post by Sylvain Gault
Post by Duncan Grisby
I see. The outgoing interface the client uses is determined by the IP
stack's routing setup. It's not something that omniORB has any control
over. Your operating system probably has a "route" command that lets you
configure it.
Actually, it can do something about it. The bind(2) function can be used
on client-side sockets to specify a local address when the system have
several addresses.
Sorry, I didn't mean to suggest that omniORB couldn't possibly do
anything about it, merely that it has no code to do so at present.
Further, I don't think it's appropriate for a client program to make
such choices -- TCP stacks have routing tables for this purpose, and it
is not a good idea for a client process to try to second-guess the
routing setup.

Cheers,

Duncan.
--
-- Duncan Grisby --
-- duncan at grisby.org --
-- http://www.grisby.org --
Loading...