I am writing an application using evc4 for a board running ce.net 4.2
that sits between two existing devices. Originally, the 2 devices
communicated directly over a serial link using tcp/ip connected by ppp
RAS Server/Client, with both devices specifying their fixed IP
addresses.
This new project specifies :
a) the ce.net device to connect to both devices and transparently
route the packets between them
b) this should be done without any change to the software on legacy
device #2, and keeping the IP addresses unchanged.
Original setup :
device #1 Fixed IPAddress 100.0.0.1 RAS Server (O/S QNX)
device #2 Fixed IPAddress 100.0.0.2 RAS Client (O/S Windows 2000)
New setup :
device #1 Fixed IPAddress 100.0.0.1 RAS Server (O/S QNX)
<ce.net, com #1> IP Address 100.0.0.3 RAS Client of device 1
<ce.net, com #2> IP Address 100.0.0.x RAS Server to device 2
device #2 Fixed IPAddress 100.0.0.2 RAS Client (O/S Windows 2000)
The connection to legacy device #1 is fine, on bootup, the application
connects as a RAS client to device #1, (The RAS dial up entry on the
ce.net machine specifies its IP address as 100.0.0.3, & device #1
accepts this)
The problems lie with the ce.net RAS Server and the connection to
legacy device #2
1. RAS Server does not allow client to specify an IP address
The RAS pbk entry on device 2 specifies an IP address of 100.0.0.2,
which is immediately rejected by ce.net as it does not allow RAS
Clients to specify an IP address.
As I understand it, future versions of ce may support specified RAS
client addresses, but currently, only automatic allocation is
supported. If we could solve this problem, and find a way to force
ce.net to accept the specified address, everything would be ok
2. Cannot use automatic allocation without duplicating the address
100.0.0.1
As a quick workaround, I changed the pbk entry to automatically accept
an IP address, and concentrated on making sure it is allocated
100.0.0.2 by the ce.net device.
The problem here, is that the only way I can get device 2 to have the
IP address of 100.0.0.2, is by having a ce.net RAS start address of
100.0.0.1. (It seems that the 1st address is always taken by the ce
RAS server),
which is causing routing problems as the address 100.0.0.1 is already
used by device #1.
Having spent several days trying to rig the routing tables, I have got
a ping to travel from Device#1 -> ce.net -> Device#2 and back to the
ce.net machine, but can't get it to arrive back at Device#1.
I have had everything connecting, tested and working fine, using
addresses 100.0.0.4 (ce.net RAS server) and 100.0.0.5 (legacy device
#2 RAS client), but cannot find a way around either of these problems
while keeping the
address of device#2 as 100.0.0.2.
I've pretty much run out of ideas, have tried every IPHelper Function
I thought was applicable but it is getting like the problem of
connecting the 3 utilities to the 3 separate houses without crossing
pipes.
One possible suggestion was to enable DHCP, intercept the DHCP
requests and return the IP addresses we need, but apart from requiring
the DDK (which I don't have), is probably beyond my capability for the
time being
So, if anyone could help with any of these issues, I would be
grateful:
a) any way to force the existing ce.net RAS server to accept a
specified address ?
b) change the order / step of automatic address allocation, so
device#2 could have the address 100.0.0.2, without forcing the server
to have 100.0.0.1 ?
c) fixing the routing tables to work around the duplicate ip address,
and get round the problem
d) a simple way of intercepting DHCP requests and returning the
desired IP addresses ?
e) an alternative RAS server for ce.net ?
Many thanks for your help,
(E-Mail Removed)