Problem:
- Product Name: VisiBroker
- Product Version: 5.x
- Product Component: ORB Smart Agent, Location Service
- Platform/OS Version: Windows
Customer has following network configuration:
Network A = 172.16.x.x
Network B = 172.17.x.x
Network C = 192.x.x.x
The Server has two network interfaces, sitting on network B and C. The 192.x.x.x and 172.x.x.x networks cannot see or communicate with each other. Osagent and server objects are on the Server machine, clients reside in both netwok A, B, and C. There are also clients on other subnets of 192 network. The application is unable to access the osagent from network A when the osagent is brought up on both interfaces of the multihomed box and is seeking a solution.
Resolution:
Analysis shows that the osagent uses the INADDR_ANY to select the interface to use to send the UDP message back to the client. It is always returning the primary interface selected by the Operating Systems.
Analysis of osagent log files ( l oa) show that the osagent successfully receives and matches the incoming UDP request from the 172.16.x.x network (most likely due the relaxed network mask) as part of the 172 network. Osagent sends UDP message back containing TCP/IP address and port for communication back to client.
The osagent relys on INADDR_ANY to select the outgoing interface and appears that INADDR_ANY is selecting the 192 interface. On Windows, the behavior of INADDR_ANY is that it appears to always select the default gateway instead of choosing the gateway that the message is addressed to. This behavior of INADDR_ANY in Windows is different from the Unix platforms where the relevant and correct interface would be selected.
There was an enhancement made to osagent in version 6.0. The enhancement allows the UDP client handler to bind to interfaces according to the information in localaddr file (if supplied) instead of the version 5.x osagent UDP client handler binding based simply on the INADDR_ANY.
As a workaround it is recommended that customers facing this scenario should use the VisiBroker 6.0 osagent in conjunction with the localaddr file. No patch can be provided for version 5.2.1 to fix this issue. Please refer to KB article [[knowledge_base: VisiBroker localaddr file FAQ]] for details on how to configure the localaddr for binding multiple network interfaces.
#Security
#VisiBroker




