Qnx across subnets

I am running QNX 6.1.0a. I have read all the posts in the previous “QNX
across subnets” thread. The outcome of that was Xiaodan Tang’s simplified
qnet startup command:

mount -Tio-net -obind=ip,resolve=dns,host=nodeA.domainname npm-qnet.so

This works fine for me within subnets, but will not cross subnets.

I have three single board computers, one having multiple network cards,
which I use as the router. I start io-net on all machines and set the
routing tables to the point where I can ping, ftp and telnet from any
machine to any other machine. I then start qnet on each machine using the
above command. The result is as follows:

From the first node I can see and use /net/node1 and /net/router.
From the second node I can see and use /net/node2 and /net/router.
From the router I can see and use /net/router, /net/node1 and /net/node2.

Trying to force qnet to see a node on the other subnet, using
/net/ip_address, /net/node1, or /net/node1.domainname, gives the error
message “No route to host”. It also sometimes causes io-net to crash.

I have entries in /etc/hosts for router router.domainname, node1
node1.domainname, node2 node2.domainname.

Can anyone suggest anything I may have overlooked?

Thanks,
Stuart Harding

“Stuart Harding” <stuart@intellidesign.com.au> wrote in message
news:acv8s8$nui$1@inn.qnx.com

I am running QNX 6.1.0a. I have read all the posts in the previous “Qnet
across subnets” thread. The outcome of that was Xiaodan Tang’s simplified
qnet startup command:

mount -Tio-net -obind=ip,resolve=dns,host=nodeA.domainname npm-qnet.so

This works fine for me within subnets, but will not cross subnets.

I have three single board computers, one having multiple network cards,
which I use as the router. I start io-net on all machines and set the
routing tables to the point where I can ping, ftp and telnet from any
machine to any other machine. I then start qnet on each machine using the
above command. The result is as follows:

From the first node I can see and use /net/node1 and /net/router.
From the second node I can see and use /net/node2 and /net/router.
From the router I can see and use /net/router, /net/node1 and /net/node2.

Trying to force qnet to see a node on the other subnet, using
/net/ip_address, /net/node1, or /net/node1.domainname, gives the error
message “No route to host”. It also sometimes causes io-net to crash.

I have entries in /etc/hosts for router router.domainname, node1
node1.domainname, node2 node2.domainname.

Can anyone suggest anything I may have overlooked?

Thanks,
Stuart Harding


\

More information:

I have run a packet sniffer on one of the subnets. When I try to force the
first node to see the node on the other subnet, the first node gives out
about six ARP requests to the destination IP address, then io-net crashes.
Can anyone suggest why ARP (an ethernet address resolver) is being used to
locate an IP address for which there is an entry in the routing table?

Stuart

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in message
news:acv8s8$nui$> 1@inn.qnx.com> …
I am running QNX 6.1.0a. I have read all the posts in the previous
“Qnet
across subnets” thread. The outcome of that was Xiaodan Tang’s
simplified
qnet startup command:

mount -Tio-net -obind=ip,resolve=dns,host=nodeA.domainname npm-qnet.so

This works fine for me within subnets, but will not cross subnets.

I have three single board computers, one having multiple network cards,
which I use as the router. I start io-net on all machines and set the
routing tables to the point where I can ping, ftp and telnet from any
machine to any other machine. I then start qnet on each machine using
the
above command. The result is as follows:

From the first node I can see and use /net/node1 and /net/router.
From the second node I can see and use /net/node2 and /net/router.
From the router I can see and use /net/router, /net/node1 and
/net/node2.

Trying to force qnet to see a node on the other subnet, using
/net/ip_address, /net/node1, or /net/node1.domainname, gives the error
message “No route to host”. It also sometimes causes io-net to crash.

I have entries in /etc/hosts for router router.domainname, node1
node1.domainname, node2 node2.domainname.

Can anyone suggest anything I may have overlooked?

Thanks,
Stuart Harding




\

Replying to myself again :slight_smile:

I have finally got qnet running across the subnet.

I did this by adding ARP entries into each node’s arp table directing the IP
address of the remote node to the router’s local ethernet interface.

I still don’t see why the ARP request is going out for the remote IP
address, rather than the router’s IP address, considering that there is an
entry in the routing table for exactly this. Can anyone shed some light on
this?

Cheers,
Stuart


“Stuart Harding” <stuart@intellidesign.com.au> wrote in message
news:ad1u36$oa4$1@inn.qnx.com

More information:

I have run a packet sniffer on one of the subnets. When I try to force
the
first node to see the node on the other subnet, the first node gives out
about six ARP requests to the destination IP address, then io-net crashes.
Can anyone suggest why ARP (an ethernet address resolver) is being used to
locate an IP address for which there is an entry in the routing table?

Stuart

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in message
news:acv8s8$nui$> 1@inn.qnx.com> …
I am running QNX 6.1.0a. I have read all the posts in the previous
“Qnet
across subnets” thread. The outcome of that was Xiaodan Tang’s
simplified
qnet startup command:

mount -Tio-net -obind=ip,resolve=dns,host=nodeA.domainname npm-qnet.so

This works fine for me within subnets, but will not cross subnets.

I have three single board computers, one having multiple network
cards,
which I use as the router. I start io-net on all machines and set the
routing tables to the point where I can ping, ftp and telnet from any
machine to any other machine. I then start qnet on each machine using
the
above command. The result is as follows:

From the first node I can see and use /net/node1 and /net/router.
From the second node I can see and use /net/node2 and /net/router.
From the router I can see and use /net/router, /net/node1 and
/net/node2.

Trying to force qnet to see a node on the other subnet, using
/net/ip_address, /net/node1, or /net/node1.domainname, gives the error
message “No route to host”. It also sometimes causes io-net to crash.

I have entries in /etc/hosts for router router.domainname, node1
node1.domainname, node2 node2.domainname.

Can anyone suggest anything I may have overlooked?

Thanks,
Stuart Harding






\

Stuart Harding <stuart@intellidesign.com.au> wrote:

Replying to myself again > :slight_smile:

I have finally got qnet running across the subnet.

I did this by adding ARP entries into each node’s arp table directing the IP
address of the remote node to the router’s local ethernet interface.

I still don’t see why the ARP request is going out for the remote IP
address, rather than the router’s IP address, considering that there is an
entry in the routing table for exactly this. Can anyone shed some light on
this?

Sorry to reply late.

I don’t quite understand the satuation either. Can you post node1
and node2’s ip address, netmask ? (netstat -ni).

You are saying “ping node2” from node1 IS working, right ?

-xtang

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in message
news:ad1u36$oa4$> 1@inn.qnx.com> …
More information:

I have run a packet sniffer on one of the subnets. When I try to force
the
first node to see the node on the other subnet, the first node gives out
about six ARP requests to the destination IP address, then io-net crashes.
Can anyone suggest why ARP (an ethernet address resolver) is being used to
locate an IP address for which there is an entry in the routing table?

Stuart

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in message
news:acv8s8$nui$> 1@inn.qnx.com> …
I am running QNX 6.1.0a. I have read all the posts in the previous
“Qnet
across subnets” thread. The outcome of that was Xiaodan Tang’s
simplified
qnet startup command:

mount -Tio-net -obind=ip,resolve=dns,host=nodeA.domainname npm-qnet.so

This works fine for me within subnets, but will not cross subnets.

I have three single board computers, one having multiple network
cards,
which I use as the router. I start io-net on all machines and set the
routing tables to the point where I can ping, ftp and telnet from any
machine to any other machine. I then start qnet on each machine using
the
above command. The result is as follows:

From the first node I can see and use /net/node1 and /net/router.
From the second node I can see and use /net/node2 and /net/router.
From the router I can see and use /net/router, /net/node1 and
/net/node2.

Trying to force qnet to see a node on the other subnet, using
/net/ip_address, /net/node1, or /net/node1.domainname, gives the error
message “No route to host”. It also sometimes causes io-net to crash.

I have entries in /etc/hosts for router router.domainname, node1
node1.domainname, node2 node2.domainname.

Can anyone suggest anything I may have overlooked?

Thanks,
Stuart Harding






\

Full network setup on each node is:

node1:
io-net -drtl -ptcpip
ifconfig en0 192.168.0.128 netmask 255.255.255.0
route add 192.168.1.32 192.168.0.21
mount -Tio-net -obind=ip,resolve=dns,host=node1.mydomain npm-qnet.so

node2:
io-net -drtl -ptcpip
ifconfig en0 192.168.1.32 netmask 255.255.255.0
route add 192.168.0.128 192.168.1.21
mount -Tio-net -obind=ip,resolve=dns,host=node2.mydomain npm-qnet.so

router:
io-net -drtl
mount -Tio-net -oforward npm-tcpip.so
ifconfig en0 192.168.0.21 netmask 255.255.255.0
ifconfig en1 192.168.1.21 netmask 255.255.255.0
mount -Tio-net -obind=ip,resolve=dns,host=router.mydomain npm-qnet.so

Each of the nodes and router has the correct /etc/hosts entries to resolve
the other ip addresses. Ping, ftp and telnet will now work between the two
nodes. However, qnet won’t yet cross the subnets - the router can see all
nodes, but each node can only see itself and the router. It will only work
across the subnets if I add the following entries into the arp tables:

node1:
arp -s 192.168.1.32 <ethernet address of router’s 0.21 network card>

node2:
arp -s 192.168.0.128 <ethernet address of router’s 1.21 network card>

Yes, it seems strange that ping, ftp and telnet all work with the routing
table but qnet doesn’t…

Thanks,
Stuart

Xiaodan Tang <xtang@qnx.com> wrote in message
news:ad7vvs$7bq$1@nntp.qnx.com

Stuart Harding <> stuart@intellidesign.com.au> > wrote:
Replying to myself again > :slight_smile:

I have finally got qnet running across the subnet.

I did this by adding ARP entries into each node’s arp table directing
the IP
address of the remote node to the router’s local ethernet interface.

I still don’t see why the ARP request is going out for the remote IP
address, rather than the router’s IP address, considering that there is
an
entry in the routing table for exactly this. Can anyone shed some light
on
this?

Sorry to reply late.

I don’t quite understand the satuation either. Can you post node1
and node2’s ip address, netmask ? (netstat -ni).

You are saying “ping node2” from node1 IS working, right ?

-xtang

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in message
news:ad1u36$oa4$> 1@inn.qnx.com> …
More information:

I have run a packet sniffer on one of the subnets. When I try to force
the
first node to see the node on the other subnet, the first node gives
out
about six ARP requests to the destination IP address, then io-net
crashes.
Can anyone suggest why ARP (an ethernet address resolver) is being used
to
locate an IP address for which there is an entry in the routing table?

Stuart

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in message
news:acv8s8$nui$> 1@inn.qnx.com> …
I am running QNX 6.1.0a. I have read all the posts in the previous
“Qnet
across subnets” thread. The outcome of that was Xiaodan Tang’s
simplified
qnet startup command:

mount -Tio-net -obind=ip,resolve=dns,host=nodeA.domainname
npm-qnet.so

This works fine for me within subnets, but will not cross subnets.

I have three single board computers, one having multiple network
cards,
which I use as the router. I start io-net on all machines and set
the
routing tables to the point where I can ping, ftp and telnet from
any
machine to any other machine. I then start qnet on each machine
using
the
above command. The result is as follows:

From the first node I can see and use /net/node1 and /net/router.
From the second node I can see and use /net/node2 and /net/router.
From the router I can see and use /net/router, /net/node1 and
/net/node2.

Trying to force qnet to see a node on the other subnet, using
/net/ip_address, /net/node1, or /net/node1.domainname, gives the
error
message “No route to host”. It also sometimes causes io-net to
crash.

I have entries in /etc/hosts for router router.domainname, node1
node1.domainname, node2 node2.domainname.

Can anyone suggest anything I may have overlooked?

Thanks,
Stuart Harding

Hi:

I have also tried to get this sort of link going, with no luck. I have used
a setup similar to Stuarts, I’ve played with many combinations of bindings
etc.
I get the impression that tcpip is capable of dealing with more than one
interface but qnet is only name resolving on the last defined interface.

I see the following resolved names. Using Stuarts machine naming.
node1: ls /net shows node1
node2: ls /net shows node2 and router
router: ls /net shows router and node2

Is there anything wrong with Stuarts setup?

Before I set up 3 * 6.2 systems. Is this fixed on 6.2 ?

Andy.

Stuart Harding <sharding@gil.com.au> wrote in message
news:ad9hd0$gh2$1@inn.qnx.com

Full network setup on each node is:

node1:
io-net -drtl -ptcpip
ifconfig en0 192.168.0.128 netmask 255.255.255.0
route add 192.168.1.32 192.168.0.21
mount -Tio-net -obind=ip,resolve=dns,host=node1.mydomain npm-qnet.so

node2:
io-net -drtl -ptcpip
ifconfig en0 192.168.1.32 netmask 255.255.255.0
route add 192.168.0.128 192.168.1.21
mount -Tio-net -obind=ip,resolve=dns,host=node2.mydomain npm-qnet.so

router:
io-net -drtl
mount -Tio-net -oforward npm-tcpip.so
ifconfig en0 192.168.0.21 netmask 255.255.255.0
ifconfig en1 192.168.1.21 netmask 255.255.255.0
mount -Tio-net -obind=ip,resolve=dns,host=router.mydomain npm-qnet.so

Each of the nodes and router has the correct /etc/hosts entries to resolve
the other ip addresses. Ping, ftp and telnet will now work between the two
nodes. However, qnet won’t yet cross the subnets - the router can see all
nodes, but each node can only see itself and the router. It will only
work
across the subnets if I add the following entries into the arp tables:

node1:
arp -s 192.168.1.32 <ethernet address of router’s 0.21 network card

node2:
arp -s 192.168.0.128 <ethernet address of router’s 1.21 network card

Yes, it seems strange that ping, ftp and telnet all work with the routing
table but qnet doesn’t…

Thanks,
Stuart

Xiaodan Tang <> xtang@qnx.com> > wrote in message
news:ad7vvs$7bq$> 1@nntp.qnx.com> …
Stuart Harding <> stuart@intellidesign.com.au> > wrote:
Replying to myself again > :slight_smile:

I have finally got qnet running across the subnet.

I did this by adding ARP entries into each node’s arp table directing
the IP
address of the remote node to the router’s local ethernet interface.

I still don’t see why the ARP request is going out for the remote IP
address, rather than the router’s IP address, considering that there
is
an
entry in the routing table for exactly this. Can anyone shed some
light
on
this?

Sorry to reply late.

I don’t quite understand the satuation either. Can you post node1
and node2’s ip address, netmask ? (netstat -ni).

You are saying “ping node2” from node1 IS working, right ?

-xtang

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in message
news:ad1u36$oa4$> 1@inn.qnx.com> …
More information:

I have run a packet sniffer on one of the subnets. When I try to
force
the
first node to see the node on the other subnet, the first node gives
out
about six ARP requests to the destination IP address, then io-net
crashes.
Can anyone suggest why ARP (an ethernet address resolver) is being
used
to
locate an IP address for which there is an entry in the routing
table?

Stuart

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in message
news:acv8s8$nui$> 1@inn.qnx.com> …
I am running QNX 6.1.0a. I have read all the posts in the
previous
“Qnet
across subnets” thread. The outcome of that was Xiaodan Tang’s
simplified
qnet startup command:

mount -Tio-net -obind=ip,resolve=dns,host=nodeA.domainname
npm-qnet.so

This works fine for me within subnets, but will not cross
subnets.

I have three single board computers, one having multiple network
cards,
which I use as the router. I start io-net on all machines and
set
the
routing tables to the point where I can ping, ftp and telnet from
any
machine to any other machine. I then start qnet on each machine
using
the
above command. The result is as follows:

From the first node I can see and use /net/node1 and /net/router.
From the second node I can see and use /net/node2 and
/net/router.
From the router I can see and use /net/router, /net/node1 and
/net/node2.

Trying to force qnet to see a node on the other subnet, using
/net/ip_address, /net/node1, or /net/node1.domainname, gives the
error
message “No route to host”. It also sometimes causes io-net to
crash.

I have entries in /etc/hosts for router router.domainname, node1
node1.domainname, node2 node2.domainname.

Can anyone suggest anything I may have overlooked?

Thanks,
Stuart Harding

It is very wired that ARP packet is send out. The “only possiable
explaination” I have is that the netmask is not correct or not
working in stack.

Can you post “netstat -ni”, “netstat -nr” output on 3 nodes ?

-xtang

Stuart Harding <sharding@gil.com.au> wrote:

Full network setup on each node is:

node1:
io-net -drtl -ptcpip
ifconfig en0 192.168.0.128 netmask 255.255.255.0
route add 192.168.1.32 192.168.0.21
mount -Tio-net -obind=ip,resolve=dns,host=node1.mydomain npm-qnet.so

node2:
io-net -drtl -ptcpip
ifconfig en0 192.168.1.32 netmask 255.255.255.0
route add 192.168.0.128 192.168.1.21
mount -Tio-net -obind=ip,resolve=dns,host=node2.mydomain npm-qnet.so

router:
io-net -drtl
mount -Tio-net -oforward npm-tcpip.so
ifconfig en0 192.168.0.21 netmask 255.255.255.0
ifconfig en1 192.168.1.21 netmask 255.255.255.0
mount -Tio-net -obind=ip,resolve=dns,host=router.mydomain npm-qnet.so

Each of the nodes and router has the correct /etc/hosts entries to resolve
the other ip addresses. Ping, ftp and telnet will now work between the two
nodes. However, qnet won’t yet cross the subnets - the router can see all
nodes, but each node can only see itself and the router. It will only work
across the subnets if I add the following entries into the arp tables:

node1:
arp -s 192.168.1.32 <ethernet address of router’s 0.21 network card

node2:
arp -s 192.168.0.128 <ethernet address of router’s 1.21 network card

Yes, it seems strange that ping, ftp and telnet all work with the routing
table but qnet doesn’t…

Thanks,
Stuart

Xiaodan Tang <> xtang@qnx.com> > wrote in message
news:ad7vvs$7bq$> 1@nntp.qnx.com> …
Stuart Harding <> stuart@intellidesign.com.au> > wrote:
Replying to myself again > :slight_smile:

I have finally got qnet running across the subnet.

I did this by adding ARP entries into each node’s arp table directing
the IP
address of the remote node to the router’s local ethernet interface.

I still don’t see why the ARP request is going out for the remote IP
address, rather than the router’s IP address, considering that there is
an
entry in the routing table for exactly this. Can anyone shed some light
on
this?

Sorry to reply late.

I don’t quite understand the satuation either. Can you post node1
and node2’s ip address, netmask ? (netstat -ni).

You are saying “ping node2” from node1 IS working, right ?

-xtang

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in message
news:ad1u36$oa4$> 1@inn.qnx.com> …
More information:

I have run a packet sniffer on one of the subnets. When I try to force
the
first node to see the node on the other subnet, the first node gives
out
about six ARP requests to the destination IP address, then io-net
crashes.
Can anyone suggest why ARP (an ethernet address resolver) is being used
to
locate an IP address for which there is an entry in the routing table?

Stuart

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in message
news:acv8s8$nui$> 1@inn.qnx.com> …
I am running QNX 6.1.0a. I have read all the posts in the previous
“Qnet
across subnets” thread. The outcome of that was Xiaodan Tang’s
simplified
qnet startup command:

mount -Tio-net -obind=ip,resolve=dns,host=nodeA.domainname
npm-qnet.so

This works fine for me within subnets, but will not cross subnets.

I have three single board computers, one having multiple network
cards,
which I use as the router. I start io-net on all machines and set
the
routing tables to the point where I can ping, ftp and telnet from
any
machine to any other machine. I then start qnet on each machine
using
the
above command. The result is as follows:

From the first node I can see and use /net/node1 and /net/router.
From the second node I can see and use /net/node2 and /net/router.
From the router I can see and use /net/router, /net/node1 and
/net/node2.

Trying to force qnet to see a node on the other subnet, using
/net/ip_address, /net/node1, or /net/node1.domainname, gives the
error
message “No route to host”. It also sometimes causes io-net to
crash.

I have entries in /etc/hosts for router router.domainname, node1
node1.domainname, node2 node2.domainname.

Can anyone suggest anything I may have overlooked?

Thanks,
Stuart Harding

Andy <andy@symmetry.com.au> wrote:

Hi:

I have also tried to get this sort of link going, with no luck. I have used
a setup similar to Stuarts, I’ve played with many combinations of bindings
etc.
I get the impression that tcpip is capable of dealing with more than one
interface but qnet is only name resolving on the last defined interface.

I see the following resolved names. Using Stuarts machine naming.
node1: ls /net shows node1
node2: ls /net shows node2 and router
router: ls /net shows router and node2

Is there anything wrong with Stuarts setup?

The fact node1 and router didn’t see each other make me believe
they have problems that they are not configured on same subnet.
If you could post “netstat -ni”, “netstat -nr”, we might be able
know something…

Before I set up 3 * 6.2 systems. Is this fixed on 6.2 ?

No, don’t do that on 6.2

-xtang

Andy.

Stuart Harding <> sharding@gil.com.au> > wrote in message
news:ad9hd0$gh2$> 1@inn.qnx.com> …
Full network setup on each node is:

node1:
io-net -drtl -ptcpip
ifconfig en0 192.168.0.128 netmask 255.255.255.0
route add 192.168.1.32 192.168.0.21
mount -Tio-net -obind=ip,resolve=dns,host=node1.mydomain npm-qnet.so

node2:
io-net -drtl -ptcpip
ifconfig en0 192.168.1.32 netmask 255.255.255.0
route add 192.168.0.128 192.168.1.21
mount -Tio-net -obind=ip,resolve=dns,host=node2.mydomain npm-qnet.so

router:
io-net -drtl
mount -Tio-net -oforward npm-tcpip.so
ifconfig en0 192.168.0.21 netmask 255.255.255.0
ifconfig en1 192.168.1.21 netmask 255.255.255.0
mount -Tio-net -obind=ip,resolve=dns,host=router.mydomain npm-qnet.so

Each of the nodes and router has the correct /etc/hosts entries to resolve
the other ip addresses. Ping, ftp and telnet will now work between the two
nodes. However, qnet won’t yet cross the subnets - the router can see all
nodes, but each node can only see itself and the router. It will only
work
across the subnets if I add the following entries into the arp tables:

node1:
arp -s 192.168.1.32 <ethernet address of router’s 0.21 network card

node2:
arp -s 192.168.0.128 <ethernet address of router’s 1.21 network card

Yes, it seems strange that ping, ftp and telnet all work with the routing
table but qnet doesn’t…

Thanks,
Stuart

Xiaodan Tang <> xtang@qnx.com> > wrote in message
news:ad7vvs$7bq$> 1@nntp.qnx.com> …
Stuart Harding <> stuart@intellidesign.com.au> > wrote:
Replying to myself again > :slight_smile:

I have finally got qnet running across the subnet.

I did this by adding ARP entries into each node’s arp table directing
the IP
address of the remote node to the router’s local ethernet interface.

I still don’t see why the ARP request is going out for the remote IP
address, rather than the router’s IP address, considering that there
is
an
entry in the routing table for exactly this. Can anyone shed some
light
on
this?

Sorry to reply late.

I don’t quite understand the satuation either. Can you post node1
and node2’s ip address, netmask ? (netstat -ni).

You are saying “ping node2” from node1 IS working, right ?

-xtang

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in message
news:ad1u36$oa4$> 1@inn.qnx.com> …
More information:

I have run a packet sniffer on one of the subnets. When I try to
force
the
first node to see the node on the other subnet, the first node gives
out
about six ARP requests to the destination IP address, then io-net
crashes.
Can anyone suggest why ARP (an ethernet address resolver) is being
used
to
locate an IP address for which there is an entry in the routing
table?

Stuart

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in message
news:acv8s8$nui$> 1@inn.qnx.com> …
I am running QNX 6.1.0a. I have read all the posts in the
previous
“Qnet
across subnets” thread. The outcome of that was Xiaodan Tang’s
simplified
qnet startup command:

mount -Tio-net -obind=ip,resolve=dns,host=nodeA.domainname
npm-qnet.so

This works fine for me within subnets, but will not cross
subnets.

I have three single board computers, one having multiple network
cards,
which I use as the router. I start io-net on all machines and
set
the
routing tables to the point where I can ping, ftp and telnet from
any
machine to any other machine. I then start qnet on each machine
using
the
above command. The result is as follows:

From the first node I can see and use /net/node1 and /net/router.
From the second node I can see and use /net/node2 and
/net/router.
From the router I can see and use /net/router, /net/node1 and
/net/node2.

Trying to force qnet to see a node on the other subnet, using
/net/ip_address, /net/node1, or /net/node1.domainname, gives the
error
message “No route to host”. It also sometimes causes io-net to
crash.

I have entries in /etc/hosts for router router.domainname, node1
node1.domainname, node2 node2.domainname.

Can anyone suggest anything I may have overlooked?

Thanks,
Stuart Harding

Netstat -in and netstat -rn as requested. Note that ping, ftp, telnet,
fs-nfs2 etc work across the subnets.

/////////////////////////////
Router:
/////////////////////////////

ls /net

node1 node2 router

./netstat -rn

Routing tables

Internet:
Destination Gateway Flags Refs Use Mtu
Interface
127.0.0.1 127.0.0.1 UH 0 0 - lo0
192.168 192.168.0.235 U 1 38 - en0
192.168.0.235 192.168.0.235 UH 0 0 - lo0
192.168.1 192.168.1.235 U 1 202 - en1
192.168.1.235 192.168.1.235 UH 0 0 - lo0

./netstat -in

Name Mtu Network Address Ipkts Ierrs Opkts Oerrs
Coll
lo0 32976 0 0 0 0
0
lo0 32976 127 127.0.0.1 0 0 0 0
0
en0 1500 52:54:4c:19:02:fd 179 0 52 0
0
en0 1500 192.168 192.168.0.235 179 0 52 0
0
en1 1500 52:54:4c:19:03:01 211 0 216 0
0
en1 1500 192.168.1 192.168.1.235 211 0 216 0
0

/////////////////////////////
Node1:
/////////////////////////////

ls /net

node1 router

netstat -rn

Routing tables

Internet:
Destination Gateway Flags Refs Use Mtu
Interface
default 192.168.1.235 UGS 1 3 - en0
127.0.0.1 127.0.0.1 UH 0 0 - lo0
192.168.1 192.168.1.132 U 2 427 - en0
192.168.1.132 192.168.1.132 UH 0 0 - lo0

netstat -in

Name Mtu Network Address Ipkts Ierrs Opkts Oerrs
Coll
lo0 32976 0 0 0 0
0
lo0 32976 127 127.0.0.1 0 0 0 0
0
en0 1500 00:d0:c9:42:28:07 606 0 617 0
0
en0 1500 192.168.1 192.168.1.132 606 0 617 0
0

ping 192.168.0.128

PING 192.168.0.128 (192.168.0.128): 56 data bytes
64 bytes from 192.168.0.128: icmp_seq=0 ttl=254 time=2 ms

/////////////////////////////
Node2:
/////////////////////////////

ls /net

node2 router

netstat -rn

Routing tables

Internet:
Destination Gateway Flags Refs Use Mtu
Interface
default 192.168.0.1 UG 0 0 - en0
127.0.0.1 127.0.0.1 UH 0 4 - lo0
192.168 192.168.0.128 U 13 391225 - en0
192.168.0.128 192.168.0.128 UH 0 0 - lo0
192.168.1 192.168.0.235 UGS 0 16 - en0

netstat -in

Name Mtu Network Address Ipkts Ierrs Opkts Oerrs
Coll
lo0 32976 4 0 4 0
0
lo0 32976 127 127.0.0.1 4 0 4 0
0
en0 1500 c0:80:ff:bf:c1:a8 576485 0 391871 0
0
en0 1500 192.168 192.168.0.128 576485 0 391871 0
0

ping node1

PING node1.qnet (192.168.1.132): 56 data bytes
64 bytes from 192.168.1.132: icmp_seq=0 ttl=254 time=2 ms

  • Stuart

“Xiaodan Tang” <xtang@qnx.com> wrote in message
news:ag47p9$cnq$1@nntp.qnx.com

It is very wired that ARP packet is send out. The “only possiable
explaination” I have is that the netmask is not correct or not
working in stack.

Can you post “netstat -ni”, “netstat -nr” output on 3 nodes ?

-xtang

Stuart Harding <> sharding@gil.com.au> > wrote:
Full network setup on each node is:

node1:
io-net -drtl -ptcpip
ifconfig en0 192.168.0.128 netmask 255.255.255.0
route add 192.168.1.32 192.168.0.21
mount -Tio-net -obind=ip,resolve=dns,host=node1.mydomain npm-qnet.so

node2:
io-net -drtl -ptcpip
ifconfig en0 192.168.1.32 netmask 255.255.255.0
route add 192.168.0.128 192.168.1.21
mount -Tio-net -obind=ip,resolve=dns,host=node2.mydomain npm-qnet.so

router:
io-net -drtl
mount -Tio-net -oforward npm-tcpip.so
ifconfig en0 192.168.0.21 netmask 255.255.255.0
ifconfig en1 192.168.1.21 netmask 255.255.255.0
mount -Tio-net -obind=ip,resolve=dns,host=router.mydomain npm-qnet.so

Each of the nodes and router has the correct /etc/hosts entries to
resolve
the other ip addresses. Ping, ftp and telnet will now work between the
two
nodes. However, qnet won’t yet cross the subnets - the router can see
all
nodes, but each node can only see itself and the router. It will only
work
across the subnets if I add the following entries into the arp tables:

node1:
arp -s 192.168.1.32 <ethernet address of router’s 0.21 network card

node2:
arp -s 192.168.0.128 <ethernet address of router’s 1.21 network card

Yes, it seems strange that ping, ftp and telnet all work with the
routing
table but qnet doesn’t…

Thanks,
Stuart

Xiaodan Tang <> xtang@qnx.com> > wrote in message
news:ad7vvs$7bq$> 1@nntp.qnx.com> …
Stuart Harding <> stuart@intellidesign.com.au> > wrote:
Replying to myself again > :slight_smile:

I have finally got qnet running across the subnet.

I did this by adding ARP entries into each node’s arp table directing
the IP
address of the remote node to the router’s local ethernet interface.

I still don’t see why the ARP request is going out for the remote IP
address, rather than the router’s IP address, considering that there
is
an
entry in the routing table for exactly this. Can anyone shed some
light
on
this?

Sorry to reply late.

I don’t quite understand the satuation either. Can you post node1
and node2’s ip address, netmask ? (netstat -ni).

You are saying “ping node2” from node1 IS working, right ?

-xtang

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in message
news:ad1u36$oa4$> 1@inn.qnx.com> …
More information:

I have run a packet sniffer on one of the subnets. When I try to
force
the
first node to see the node on the other subnet, the first node gives
out
about six ARP requests to the destination IP address, then io-net
crashes.
Can anyone suggest why ARP (an ethernet address resolver) is being
used
to
locate an IP address for which there is an entry in the routing
table?

Stuart

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in message
news:acv8s8$nui$> 1@inn.qnx.com> …
I am running QNX 6.1.0a. I have read all the posts in the
previous
“Qnet
across subnets” thread. The outcome of that was Xiaodan Tang’s
simplified
qnet startup command:

mount -Tio-net -obind=ip,resolve=dns,host=nodeA.domainname
npm-qnet.so

This works fine for me within subnets, but will not cross
subnets.

I have three single board computers, one having multiple network
cards,
which I use as the router. I start io-net on all machines and
set
the
routing tables to the point where I can ping, ftp and telnet
from
any
machine to any other machine. I then start qnet on each machine
using
the
above command. The result is as follows:

From the first node I can see and use /net/node1 and
/net/router.
From the second node I can see and use /net/node2 and
/net/router.
From the router I can see and use /net/router, /net/node1 and
/net/node2.

Trying to force qnet to see a node on the other subnet, using
/net/ip_address, /net/node1, or /net/node1.domainname, gives the
error
message “No route to host”. It also sometimes causes io-net to
crash.

I have entries in /etc/hosts for router router.domainname, node1
node1.domainname, node2 node2.domainname.

Can anyone suggest anything I may have overlooked?

Thanks,
Stuart Harding

Looks like the stack have problem with “192.168.0” network.
change it to something like “192.168.2” should fix your problem.

-xtang

Stuart Harding <stuart@intellidesign.com.au> wrote:

Netstat -in and netstat -rn as requested. Note that ping, ftp, telnet,
fs-nfs2 etc work across the subnets.

/////////////////////////////
Router:
/////////////////////////////

ls /net

node1 node2 router

./netstat -rn

Routing tables

Internet:
Destination Gateway Flags Refs Use Mtu
Interface
127.0.0.1 127.0.0.1 UH 0 0 - lo0
192.168 192.168.0.235 U 1 38 - en0
192.168.0.235 192.168.0.235 UH 0 0 - lo0
192.168.1 192.168.1.235 U 1 202 - en1
192.168.1.235 192.168.1.235 UH 0 0 - lo0

./netstat -in

Name Mtu Network Address Ipkts Ierrs Opkts Oerrs
Coll
lo0 32976 0 0 0 0
0
lo0 32976 127 127.0.0.1 0 0 0 0
0
en0 1500 52:54:4c:19:02:fd 179 0 52 0
0
en0 1500 192.168 192.168.0.235 179 0 52 0
0
en1 1500 52:54:4c:19:03:01 211 0 216 0
0
en1 1500 192.168.1 192.168.1.235 211 0 216 0
0

/////////////////////////////
Node1:
/////////////////////////////

ls /net

node1 router

netstat -rn

Routing tables

Internet:
Destination Gateway Flags Refs Use Mtu
Interface
default 192.168.1.235 UGS 1 3 - en0
127.0.0.1 127.0.0.1 UH 0 0 - lo0
192.168.1 192.168.1.132 U 2 427 - en0
192.168.1.132 192.168.1.132 UH 0 0 - lo0

netstat -in

Name Mtu Network Address Ipkts Ierrs Opkts Oerrs
Coll
lo0 32976 0 0 0 0
0
lo0 32976 127 127.0.0.1 0 0 0 0
0
en0 1500 00:d0:c9:42:28:07 606 0 617 0
0
en0 1500 192.168.1 192.168.1.132 606 0 617 0
0

ping 192.168.0.128

PING 192.168.0.128 (192.168.0.128): 56 data bytes
64 bytes from 192.168.0.128: icmp_seq=0 ttl=254 time=2 ms

/////////////////////////////
Node2:
/////////////////////////////

ls /net

node2 router

netstat -rn

Routing tables

Internet:
Destination Gateway Flags Refs Use Mtu
Interface
default 192.168.0.1 UG 0 0 - en0
127.0.0.1 127.0.0.1 UH 0 4 - lo0
192.168 192.168.0.128 U 13 391225 - en0
192.168.0.128 192.168.0.128 UH 0 0 - lo0
192.168.1 192.168.0.235 UGS 0 16 - en0

netstat -in

Name Mtu Network Address Ipkts Ierrs Opkts Oerrs
Coll
lo0 32976 4 0 4 0
0
lo0 32976 127 127.0.0.1 4 0 4 0
0
en0 1500 c0:80:ff:bf:c1:a8 576485 0 391871 0
0
en0 1500 192.168 192.168.0.128 576485 0 391871 0
0

ping node1

PING node1.qnet (192.168.1.132): 56 data bytes
64 bytes from 192.168.1.132: icmp_seq=0 ttl=254 time=2 ms

  • Stuart

“Xiaodan Tang” <> xtang@qnx.com> > wrote in message
news:ag47p9$cnq$> 1@nntp.qnx.com> …
It is very wired that ARP packet is send out. The “only possiable
explaination” I have is that the netmask is not correct or not
working in stack.

Can you post “netstat -ni”, “netstat -nr” output on 3 nodes ?

-xtang

Stuart Harding <> sharding@gil.com.au> > wrote:
Full network setup on each node is:

node1:
io-net -drtl -ptcpip
ifconfig en0 192.168.0.128 netmask 255.255.255.0
route add 192.168.1.32 192.168.0.21
mount -Tio-net -obind=ip,resolve=dns,host=node1.mydomain npm-qnet.so

node2:
io-net -drtl -ptcpip
ifconfig en0 192.168.1.32 netmask 255.255.255.0
route add 192.168.0.128 192.168.1.21
mount -Tio-net -obind=ip,resolve=dns,host=node2.mydomain npm-qnet.so

router:
io-net -drtl
mount -Tio-net -oforward npm-tcpip.so
ifconfig en0 192.168.0.21 netmask 255.255.255.0
ifconfig en1 192.168.1.21 netmask 255.255.255.0
mount -Tio-net -obind=ip,resolve=dns,host=router.mydomain npm-qnet.so

Each of the nodes and router has the correct /etc/hosts entries to
resolve
the other ip addresses. Ping, ftp and telnet will now work between the
two
nodes. However, qnet won’t yet cross the subnets - the router can see
all
nodes, but each node can only see itself and the router. It will only
work
across the subnets if I add the following entries into the arp tables:

node1:
arp -s 192.168.1.32 <ethernet address of router’s 0.21 network card

node2:
arp -s 192.168.0.128 <ethernet address of router’s 1.21 network card

Yes, it seems strange that ping, ftp and telnet all work with the
routing
table but qnet doesn’t…

Thanks,
Stuart

Xiaodan Tang <> xtang@qnx.com> > wrote in message
news:ad7vvs$7bq$> 1@nntp.qnx.com> …
Stuart Harding <> stuart@intellidesign.com.au> > wrote:
Replying to myself again > :slight_smile:

I have finally got qnet running across the subnet.

I did this by adding ARP entries into each node’s arp table directing
the IP
address of the remote node to the router’s local ethernet interface.

I still don’t see why the ARP request is going out for the remote IP
address, rather than the router’s IP address, considering that there
is
an
entry in the routing table for exactly this. Can anyone shed some
light
on
this?

Sorry to reply late.

I don’t quite understand the satuation either. Can you post node1
and node2’s ip address, netmask ? (netstat -ni).

You are saying “ping node2” from node1 IS working, right ?

-xtang

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in message
news:ad1u36$oa4$> 1@inn.qnx.com> …
More information:

I have run a packet sniffer on one of the subnets. When I try to
force
the
first node to see the node on the other subnet, the first node gives
out
about six ARP requests to the destination IP address, then io-net
crashes.
Can anyone suggest why ARP (an ethernet address resolver) is being
used
to
locate an IP address for which there is an entry in the routing
table?

Stuart

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in message
news:acv8s8$nui$> 1@inn.qnx.com> …
I am running QNX 6.1.0a. I have read all the posts in the
previous
“Qnet
across subnets” thread. The outcome of that was Xiaodan Tang’s
simplified
qnet startup command:

mount -Tio-net -obind=ip,resolve=dns,host=nodeA.domainname
npm-qnet.so

This works fine for me within subnets, but will not cross
subnets.

I have three single board computers, one having multiple network
cards,
which I use as the router. I start io-net on all machines and
set
the
routing tables to the point where I can ping, ftp and telnet
from
any
machine to any other machine. I then start qnet on each machine
using
the
above command. The result is as follows:

From the first node I can see and use /net/node1 and
/net/router.
From the second node I can see and use /net/node2 and
/net/router.
From the router I can see and use /net/router, /net/node1 and
/net/node2.

Trying to force qnet to see a node on the other subnet, using
/net/ip_address, /net/node1, or /net/node1.domainname, gives the
error
message “No route to host”. It also sometimes causes io-net to
crash.

I have entries in /etc/hosts for router router.domainname, node1
node1.domainname, node2 node2.domainname.

Can anyone suggest anything I may have overlooked?

Thanks,
Stuart Harding

The only problem is in displaying the net number for “192.168.0”. The stack
works fine - remember that ping, ftp, telnet etc all work - I am asking why
qnet doesn’t. I have tried using different nets - it makes no difference.

“Xiaodan Tang” <xtang@qnx.com> wrote in message
news:agepno$c85$1@nntp.qnx.com

Looks like the stack have problem with “192.168.0” network.
change it to something like “192.168.2” should fix your problem.

-xtang

Stuart Harding <> stuart@intellidesign.com.au> > wrote:
Netstat -in and netstat -rn as requested. Note that ping, ftp, telnet,
fs-nfs2 etc work across the subnets.

/////////////////////////////
Router:
/////////////////////////////

ls /net

node1 node2 router

./netstat -rn

Routing tables

Internet:
Destination Gateway Flags Refs Use Mtu
Interface
127.0.0.1 127.0.0.1 UH 0 0 - lo0
192.168 192.168.0.235 U 1 38 - en0
192.168.0.235 192.168.0.235 UH 0 0 - lo0
192.168.1 192.168.1.235 U 1 202 - en1
192.168.1.235 192.168.1.235 UH 0 0 - lo0

./netstat -in

Name Mtu Network Address Ipkts Ierrs Opkts
Oerrs
Coll
lo0 32976 0 0 0
0
0
lo0 32976 127 127.0.0.1 0 0 0
0
0
en0 1500 52:54:4c:19:02:fd 179 0 52
0
0
en0 1500 192.168 192.168.0.235 179 0 52
0
0
en1 1500 52:54:4c:19:03:01 211 0 216
0
0
en1 1500 192.168.1 192.168.1.235 211 0 216
0
0

/////////////////////////////
Node1:
/////////////////////////////

ls /net

node1 router

netstat -rn

Routing tables

Internet:
Destination Gateway Flags Refs Use Mtu
Interface
default 192.168.1.235 UGS 1 3 - en0
127.0.0.1 127.0.0.1 UH 0 0 - lo0
192.168.1 192.168.1.132 U 2 427 - en0
192.168.1.132 192.168.1.132 UH 0 0 - lo0

netstat -in

Name Mtu Network Address Ipkts Ierrs Opkts
Oerrs
Coll
lo0 32976 0 0 0
0
0
lo0 32976 127 127.0.0.1 0 0 0
0
0
en0 1500 00:d0:c9:42:28:07 606 0 617
0
0
en0 1500 192.168.1 192.168.1.132 606 0 617
0
0

ping 192.168.0.128

PING 192.168.0.128 (192.168.0.128): 56 data bytes
64 bytes from 192.168.0.128: icmp_seq=0 ttl=254 time=2 ms

/////////////////////////////
Node2:
/////////////////////////////

ls /net

node2 router

netstat -rn

Routing tables

Internet:
Destination Gateway Flags Refs Use Mtu
Interface
default 192.168.0.1 UG 0 0 - en0
127.0.0.1 127.0.0.1 UH 0 4 - lo0
192.168 192.168.0.128 U 13 391225 - en0
192.168.0.128 192.168.0.128 UH 0 0 - lo0
192.168.1 192.168.0.235 UGS 0 16 - en0

netstat -in

Name Mtu Network Address Ipkts Ierrs Opkts
Oerrs
Coll
lo0 32976 4 0 4
0
0
lo0 32976 127 127.0.0.1 4 0 4
0
0
en0 1500 c0:80:ff:bf:c1:a8 576485 0 391871
0
0
en0 1500 192.168 192.168.0.128 576485 0 391871
0
0

ping node1

PING node1.qnet (192.168.1.132): 56 data bytes
64 bytes from 192.168.1.132: icmp_seq=0 ttl=254 time=2 ms

  • Stuart

“Xiaodan Tang” <> xtang@qnx.com> > wrote in message
news:ag47p9$cnq$> 1@nntp.qnx.com> …
It is very wired that ARP packet is send out. The “only possiable
explaination” I have is that the netmask is not correct or not
working in stack.

Can you post “netstat -ni”, “netstat -nr” output on 3 nodes ?

-xtang

Stuart Harding <> sharding@gil.com.au> > wrote:
Full network setup on each node is:

node1:
io-net -drtl -ptcpip
ifconfig en0 192.168.0.128 netmask 255.255.255.0
route add 192.168.1.32 192.168.0.21
mount -Tio-net -obind=ip,resolve=dns,host=node1.mydomain npm-qnet.so

node2:
io-net -drtl -ptcpip
ifconfig en0 192.168.1.32 netmask 255.255.255.0
route add 192.168.0.128 192.168.1.21
mount -Tio-net -obind=ip,resolve=dns,host=node2.mydomain npm-qnet.so

router:
io-net -drtl
mount -Tio-net -oforward npm-tcpip.so
ifconfig en0 192.168.0.21 netmask 255.255.255.0
ifconfig en1 192.168.1.21 netmask 255.255.255.0
mount -Tio-net -obind=ip,resolve=dns,host=router.mydomain npm-qnet.so

Each of the nodes and router has the correct /etc/hosts entries to
resolve
the other ip addresses. Ping, ftp and telnet will now work between
the
two
nodes. However, qnet won’t yet cross the subnets - the router can
see
all
nodes, but each node can only see itself and the router. It will
only
work
across the subnets if I add the following entries into the arp
tables:

node1:
arp -s 192.168.1.32 <ethernet address of router’s 0.21 network card

node2:
arp -s 192.168.0.128 <ethernet address of router’s 1.21 network card

Yes, it seems strange that ping, ftp and telnet all work with the
routing
table but qnet doesn’t…

Thanks,
Stuart

Xiaodan Tang <> xtang@qnx.com> > wrote in message
news:ad7vvs$7bq$> 1@nntp.qnx.com> …
Stuart Harding <> stuart@intellidesign.com.au> > wrote:
Replying to myself again > :slight_smile:

I have finally got qnet running across the subnet.

I did this by adding ARP entries into each node’s arp table
directing
the IP
address of the remote node to the router’s local ethernet
interface.

I still don’t see why the ARP request is going out for the remote
IP
address, rather than the router’s IP address, considering that
there
is
an
entry in the routing table for exactly this. Can anyone shed some
light
on
this?

Sorry to reply late.

I don’t quite understand the satuation either. Can you post node1
and node2’s ip address, netmask ? (netstat -ni).

You are saying “ping node2” from node1 IS working, right ?

-xtang

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in message
news:ad1u36$oa4$> 1@inn.qnx.com> …
More information:

I have run a packet sniffer on one of the subnets. When I try to
force
the
first node to see the node on the other subnet, the first node
gives
out
about six ARP requests to the destination IP address, then io-net
crashes.
Can anyone suggest why ARP (an ethernet address resolver) is
being
used
to
locate an IP address for which there is an entry in the routing
table?

Stuart

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in message
news:acv8s8$nui$> 1@inn.qnx.com> …
I am running QNX 6.1.0a. I have read all the posts in the
previous
“Qnet
across subnets” thread. The outcome of that was Xiaodan
Tang’s
simplified
qnet startup command:

mount -Tio-net -obind=ip,resolve=dns,host=nodeA.domainname
npm-qnet.so

This works fine for me within subnets, but will not cross
subnets.

I have three single board computers, one having multiple
network
cards,
which I use as the router. I start io-net on all machines
and
set
the
routing tables to the point where I can ping, ftp and telnet
from
any
machine to any other machine. I then start qnet on each
machine
using
the
above command. The result is as follows:

From the first node I can see and use /net/node1 and
/net/router.
From the second node I can see and use /net/node2 and
/net/router.
From the router I can see and use /net/router, /net/node1 and
/net/node2.

Trying to force qnet to see a node on the other subnet, using
/net/ip_address, /net/node1, or /net/node1.domainname, gives
the
error
message “No route to host”. It also sometimes causes io-net
to
crash.

I have entries in /etc/hosts for router router.domainname,
node1
node1.domainname, node2 node2.domainname.

Can anyone suggest anything I may have overlooked?

Thanks,
Stuart Harding
\

Stuart Harding <stuart@intellidesign.com.au> wrote:

The only problem is in displaying the net number for “192.168.0”. The stack
works fine - remember that ping, ftp, telnet etc all work - I am asking why
qnet doesn’t. I have tried using different nets - it makes no difference.

Well, I don’t think the “dispalying the net number” is the problem.
Let me start from beginning.

In one thread you’ve claimed:

I have run a packet sniffer on one of the subnets. When I try to force
the first node to see the node on the other subnet, the first node gives out
about six ARP requests to the destination IP address, then io-net crashes.
Can anyone suggest why ARP (an ethernet address resolver) is being used
to locate an IP address for which there is an entry in the routing table?

The only reason this happened is because node2 think it is on network
“192.168”, and when you ping node1, it think “192.168.1.132” IS on
same network, so ARP is send out, instead of send the packet directly
to “router”.

As you discovered later, when you hacked the arp table on “router”,
you basically forced it do a “proxy arp”, and “cheated” node1 that
“router” is “node2”.

Now, without hacking the arp table, I don’t expect the “ping” will
work, if node1 and node2 are physically seperated, that is,
if node2 CAN NOT see the ARP packets send by node1.

These are totally tcpip configuration, have nothing to do with
QNET.

-xtang

“Xiaodan Tang” <> xtang@qnx.com> > wrote in message
news:agepno$c85$> 1@nntp.qnx.com> …
Looks like the stack have problem with “192.168.0” network.
change it to something like “192.168.2” should fix your problem.

-xtang

Stuart Harding <> stuart@intellidesign.com.au> > wrote:
Netstat -in and netstat -rn as requested. Note that ping, ftp, telnet,
fs-nfs2 etc work across the subnets.

/////////////////////////////
Router:
/////////////////////////////

ls /net

node1 node2 router

./netstat -rn

Routing tables

Internet:
Destination Gateway Flags Refs Use Mtu
Interface
127.0.0.1 127.0.0.1 UH 0 0 - lo0
192.168 192.168.0.235 U 1 38 - en0
192.168.0.235 192.168.0.235 UH 0 0 - lo0
192.168.1 192.168.1.235 U 1 202 - en1
192.168.1.235 192.168.1.235 UH 0 0 - lo0

./netstat -in

Name Mtu Network Address Ipkts Ierrs Opkts
Oerrs
Coll
lo0 32976 0 0 0
0
0
lo0 32976 127 127.0.0.1 0 0 0
0
0
en0 1500 52:54:4c:19:02:fd 179 0 52
0
0
en0 1500 192.168 192.168.0.235 179 0 52
0
0
en1 1500 52:54:4c:19:03:01 211 0 216
0
0
en1 1500 192.168.1 192.168.1.235 211 0 216
0
0

/////////////////////////////
Node1:
/////////////////////////////

ls /net

node1 router

netstat -rn

Routing tables

Internet:
Destination Gateway Flags Refs Use Mtu
Interface
default 192.168.1.235 UGS 1 3 - en0
127.0.0.1 127.0.0.1 UH 0 0 - lo0
192.168.1 192.168.1.132 U 2 427 - en0
192.168.1.132 192.168.1.132 UH 0 0 - lo0

netstat -in

Name Mtu Network Address Ipkts Ierrs Opkts
Oerrs
Coll
lo0 32976 0 0 0
0
0
lo0 32976 127 127.0.0.1 0 0 0
0
0
en0 1500 00:d0:c9:42:28:07 606 0 617
0
0
en0 1500 192.168.1 192.168.1.132 606 0 617
0
0

ping 192.168.0.128

PING 192.168.0.128 (192.168.0.128): 56 data bytes
64 bytes from 192.168.0.128: icmp_seq=0 ttl=254 time=2 ms

/////////////////////////////
Node2:
/////////////////////////////

ls /net

node2 router

netstat -rn

Routing tables

Internet:
Destination Gateway Flags Refs Use Mtu
Interface
default 192.168.0.1 UG 0 0 - en0
127.0.0.1 127.0.0.1 UH 0 4 - lo0
192.168 192.168.0.128 U 13 391225 - en0
192.168.0.128 192.168.0.128 UH 0 0 - lo0
192.168.1 192.168.0.235 UGS 0 16 - en0

netstat -in

Name Mtu Network Address Ipkts Ierrs Opkts
Oerrs
Coll
lo0 32976 4 0 4
0
0
lo0 32976 127 127.0.0.1 4 0 4
0
0
en0 1500 c0:80:ff:bf:c1:a8 576485 0 391871
0
0
en0 1500 192.168 192.168.0.128 576485 0 391871
0
0

ping node1

PING node1.qnet (192.168.1.132): 56 data bytes
64 bytes from 192.168.1.132: icmp_seq=0 ttl=254 time=2 ms

  • Stuart

“Xiaodan Tang” <> xtang@qnx.com> > wrote in message
news:ag47p9$cnq$> 1@nntp.qnx.com> …
It is very wired that ARP packet is send out. The “only possiable
explaination” I have is that the netmask is not correct or not
working in stack.

Can you post “netstat -ni”, “netstat -nr” output on 3 nodes ?

-xtang

Stuart Harding <> sharding@gil.com.au> > wrote:
Full network setup on each node is:

node1:
io-net -drtl -ptcpip
ifconfig en0 192.168.0.128 netmask 255.255.255.0
route add 192.168.1.32 192.168.0.21
mount -Tio-net -obind=ip,resolve=dns,host=node1.mydomain npm-qnet.so

node2:
io-net -drtl -ptcpip
ifconfig en0 192.168.1.32 netmask 255.255.255.0
route add 192.168.0.128 192.168.1.21
mount -Tio-net -obind=ip,resolve=dns,host=node2.mydomain npm-qnet.so

router:
io-net -drtl
mount -Tio-net -oforward npm-tcpip.so
ifconfig en0 192.168.0.21 netmask 255.255.255.0
ifconfig en1 192.168.1.21 netmask 255.255.255.0
mount -Tio-net -obind=ip,resolve=dns,host=router.mydomain npm-qnet.so

Each of the nodes and router has the correct /etc/hosts entries to
resolve
the other ip addresses. Ping, ftp and telnet will now work between
the
two
nodes. However, qnet won’t yet cross the subnets - the router can
see
all
nodes, but each node can only see itself and the router. It will
only
work
across the subnets if I add the following entries into the arp
tables:

node1:
arp -s 192.168.1.32 <ethernet address of router’s 0.21 network card

node2:
arp -s 192.168.0.128 <ethernet address of router’s 1.21 network card

Yes, it seems strange that ping, ftp and telnet all work with the
routing
table but qnet doesn’t…

Thanks,
Stuart

Xiaodan Tang <> xtang@qnx.com> > wrote in message
news:ad7vvs$7bq$> 1@nntp.qnx.com> …
Stuart Harding <> stuart@intellidesign.com.au> > wrote:
Replying to myself again > :slight_smile:

I have finally got qnet running across the subnet.

I did this by adding ARP entries into each node’s arp table
directing
the IP
address of the remote node to the router’s local ethernet
interface.

I still don’t see why the ARP request is going out for the remote
IP
address, rather than the router’s IP address, considering that
there
is
an
entry in the routing table for exactly this. Can anyone shed some
light
on
this?

Sorry to reply late.

I don’t quite understand the satuation either. Can you post node1
and node2’s ip address, netmask ? (netstat -ni).

You are saying “ping node2” from node1 IS working, right ?

-xtang

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in message
news:ad1u36$oa4$> 1@inn.qnx.com> …
More information:

I have run a packet sniffer on one of the subnets. When I try to
force
the
first node to see the node on the other subnet, the first node
gives
out
about six ARP requests to the destination IP address, then io-net
crashes.
Can anyone suggest why ARP (an ethernet address resolver) is
being
used
to
locate an IP address for which there is an entry in the routing
table?

Stuart

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in message
news:acv8s8$nui$> 1@inn.qnx.com> …
I am running QNX 6.1.0a. I have read all the posts in the
previous
“Qnet
across subnets” thread. The outcome of that was Xiaodan
Tang’s
simplified
qnet startup command:

mount -Tio-net -obind=ip,resolve=dns,host=nodeA.domainname
npm-qnet.so

This works fine for me within subnets, but will not cross
subnets.

I have three single board computers, one having multiple
network
cards,
which I use as the router. I start io-net on all machines
and
set
the
routing tables to the point where I can ping, ftp and telnet
from
any
machine to any other machine. I then start qnet on each
machine
using
the
above command. The result is as follows:

From the first node I can see and use /net/node1 and
/net/router.
From the second node I can see and use /net/node2 and
/net/router.
From the router I can see and use /net/router, /net/node1 and
/net/node2.

Trying to force qnet to see a node on the other subnet, using
/net/ip_address, /net/node1, or /net/node1.domainname, gives
the
error
message “No route to host”. It also sometimes causes io-net
to
crash.

I have entries in /etc/hosts for router router.domainname,
node1
node1.domainname, node2 node2.domainname.

Can anyone suggest anything I may have overlooked?

Thanks,
Stuart Harding
\

Xiaodan:
As requested. The netstat -rn and netstat -ni outputs. My case is similar
to Stuarts- I can ping/telnet everything, from one network to the other.
When it comes to qnet it seems that a qnet on 10… cannot see one on 172…
and vice versa. I have not got as far as Stuart with using arp to get qnet
visability.

TIA Andy.


Routing tables

Internet:
Destination Gateway Flags Refs Use Mtu
Interface
default 10.1.1.10 UGS 0 3 - en0
10.1.1/27 10.1.1.11 U 1 0 - en0
10.1.1.11 10.1.1.11 UH 0 0 - lo0
127.0.0.1 127.0.0.1 UH 0 0 - lo0
172.24.25/24 172.24.25.1 U 0 0 - en1
172.24.25.1 172.24.25.1 UH 0 0 - lo0
Name Mtu Network Address Ipkts Ierrs Opkts Oerrs
Coll
lo0 32976 0 0 0 0
0
lo0 32976 127 127.0.0.1 0 0 0 0
0
en0 1500 00:40:33:2e:49:92 9 0 7 0
0
en0 1500 10.1.1/27 10.1.1.11 9 0 7 0
0
en1 1500 00:a0:c9:70:0f:49 0 0 4 0
0
en1 1500 172.24.25/24 172.24.25.1 0 0 4 0
0

Xiaodan Tang <xtang@qnx.com> wrote in message
news:ag47sf$cnq$2@nntp.qnx.com

Andy <> andy@symmetry.com.au> > wrote:
Hi:

I have also tried to get this sort of link going, with no luck. I have
used
a setup similar to Stuarts, I’ve played with many combinations of
bindings
etc.
I get the impression that tcpip is capable of dealing with more than one
interface but qnet is only name resolving on the last defined interface.

I see the following resolved names. Using Stuarts machine naming.
node1: ls /net shows node1
node2: ls /net shows node2 and router
router: ls /net shows router and node2

Is there anything wrong with Stuarts setup?

The fact node1 and router didn’t see each other make me believe
they have problems that they are not configured on same subnet.
If you could post “netstat -ni”, “netstat -nr”, we might be able
know something…

Before I set up 3 * 6.2 systems. Is this fixed on 6.2 ?

No, don’t do that on 6.2

-xtang
Andy.

Stuart Harding <> sharding@gil.com.au> > wrote in message
news:ad9hd0$gh2$> 1@inn.qnx.com> …
Full network setup on each node is:

node1:
io-net -drtl -ptcpip
ifconfig en0 192.168.0.128 netmask 255.255.255.0
route add 192.168.1.32 192.168.0.21
mount -Tio-net -obind=ip,resolve=dns,host=node1.mydomain npm-qnet.so

node2:
io-net -drtl -ptcpip
ifconfig en0 192.168.1.32 netmask 255.255.255.0
route add 192.168.0.128 192.168.1.21
mount -Tio-net -obind=ip,resolve=dns,host=node2.mydomain npm-qnet.so

router:
io-net -drtl
mount -Tio-net -oforward npm-tcpip.so
ifconfig en0 192.168.0.21 netmask 255.255.255.0
ifconfig en1 192.168.1.21 netmask 255.255.255.0
mount -Tio-net -obind=ip,resolve=dns,host=router.mydomain npm-qnet.so

Each of the nodes and router has the correct /etc/hosts entries to
resolve
the other ip addresses. Ping, ftp and telnet will now work between the
two
nodes. However, qnet won’t yet cross the subnets - the router can see
all
nodes, but each node can only see itself and the router. It will only
work
across the subnets if I add the following entries into the arp tables:

node1:
arp -s 192.168.1.32 <ethernet address of router’s 0.21 network card

node2:
arp -s 192.168.0.128 <ethernet address of router’s 1.21 network card

Yes, it seems strange that ping, ftp and telnet all work with the
routing
table but qnet doesn’t…

Thanks,
Stuart

Xiaodan Tang <> xtang@qnx.com> > wrote in message
news:ad7vvs$7bq$> 1@nntp.qnx.com> …
Stuart Harding <> stuart@intellidesign.com.au> > wrote:
Replying to myself again > :slight_smile:

I have finally got qnet running across the subnet.

I did this by adding ARP entries into each node’s arp table
directing
the IP
address of the remote node to the router’s local ethernet
interface.

I still don’t see why the ARP request is going out for the remote
IP
address, rather than the router’s IP address, considering that
there
is
an
entry in the routing table for exactly this. Can anyone shed some
light
on
this?

Sorry to reply late.

I don’t quite understand the satuation either. Can you post node1
and node2’s ip address, netmask ? (netstat -ni).

You are saying “ping node2” from node1 IS working, right ?

-xtang

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in message
news:ad1u36$oa4$> 1@inn.qnx.com> …
More information:

I have run a packet sniffer on one of the subnets. When I try to
force
the
first node to see the node on the other subnet, the first node
gives
out
about six ARP requests to the destination IP address, then io-net
crashes.
Can anyone suggest why ARP (an ethernet address resolver) is being
used
to
locate an IP address for which there is an entry in the routing
table?

Stuart

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in message
news:acv8s8$nui$> 1@inn.qnx.com> …
I am running QNX 6.1.0a. I have read all the posts in the
previous
“Qnet
across subnets” thread. The outcome of that was Xiaodan
Tang’s
simplified
qnet startup command:

mount -Tio-net -obind=ip,resolve=dns,host=nodeA.domainname
npm-qnet.so

This works fine for me within subnets, but will not cross
subnets.

I have three single board computers, one having multiple
network
cards,
which I use as the router. I start io-net on all machines and
set
the
routing tables to the point where I can ping, ftp and telnet
from
any
machine to any other machine. I then start qnet on each
machine
using
the
above command. The result is as follows:

From the first node I can see and use /net/node1 and
/net/router.
From the second node I can see and use /net/node2 and
/net/router.
From the router I can see and use /net/router, /net/node1 and
/net/node2.

Trying to force qnet to see a node on the other subnet, using
/net/ip_address, /net/node1, or /net/node1.domainname, gives
the
error
message “No route to host”. It also sometimes causes io-net
to
crash.

I have entries in /etc/hosts for router router.domainname,
node1
node1.domainname, node2 node2.domainname.

Can anyone suggest anything I may have overlooked?

Thanks,
Stuart Harding
\

“Xiaodan Tang” <xtang@qnx.com> wrote:

Now, without hacking the arp table, I don’t expect the “ping” will
work, if node1 and node2 are physically seperated, that is,
if node2 CAN NOT see the ARP packets send by node1.

node1 and node2 are physically separated by the router node in the middle.
When I set up the routing tables as below, ping, ftp, telnet etc. work as
they should - they use the routing table to find the destination.
Qnet does not work at this stage - it is not using the routing table to
find the destination. If I hack the arp table to “cheat” node1 that node2
is router, then qnet starts working.
Is there a “local” flag that can be set when a program sends a packet to the
tcpip stack, which forces it to ignore the routing table? Why would ping,
ftp, telnet etc work fine across the subnets, but qnet not?

“Xiaodan Tang” <xtang@qnx.com> wrote in message
news:agg2cr$cgf$1@nntp.qnx.com

Stuart Harding <> stuart@intellidesign.com.au> > wrote:
The only problem is in displaying the net number for “192.168.0”. The
stack
works fine - remember that ping, ftp, telnet etc all work - I am asking
why
qnet doesn’t. I have tried using different nets - it makes no
difference.

Well, I don’t think the “dispalying the net number” is the problem.
Let me start from beginning.

In one thread you’ve claimed:

I have run a packet sniffer on one of the subnets. When I try to force
the first node to see the node on the other subnet, the first node gives
out
about six ARP requests to the destination IP address, then io-net
crashes.
Can anyone suggest why ARP (an ethernet address resolver) is being used
to locate an IP address for which there is an entry in the routing table?

The only reason this happened is because node2 think it is on network
“192.168”, and when you ping node1, it think “192.168.1.132” IS on
same network, so ARP is send out, instead of send the packet directly
to “router”.

As you discovered later, when you hacked the arp table on “router”,
you basically forced it do a “proxy arp”, and “cheated” node1 that
“router” is “node2”.

Now, without hacking the arp table, I don’t expect the “ping” will
work, if node1 and node2 are physically seperated, that is,
if node2 CAN NOT see the ARP packets send by node1.

These are totally tcpip configuration, have nothing to do with
QNET.

-xtang

“Xiaodan Tang” <> xtang@qnx.com> > wrote in message
news:agepno$c85$> 1@nntp.qnx.com> …
Looks like the stack have problem with “192.168.0” network.
change it to something like “192.168.2” should fix your problem.

-xtang

Stuart Harding <> stuart@intellidesign.com.au> > wrote:
Netstat -in and netstat -rn as requested. Note that ping, ftp,
telnet,
fs-nfs2 etc work across the subnets.

/////////////////////////////
Router:
/////////////////////////////

ls /net

node1 node2 router

./netstat -rn

Routing tables

Internet:
Destination Gateway Flags Refs Use Mtu
Interface
127.0.0.1 127.0.0.1 UH 0 0 -
lo0
192.168 192.168.0.235 U 1 38 -
en0
192.168.0.235 192.168.0.235 UH 0 0 -
lo0
192.168.1 192.168.1.235 U 1 202 -
en1
192.168.1.235 192.168.1.235 UH 0 0 -
lo0

./netstat -in

Name Mtu Network Address Ipkts Ierrs Opkts
Oerrs
Coll
lo0 32976 0 0 0
0
0
lo0 32976 127 127.0.0.1 0 0 0
0
0
en0 1500 52:54:4c:19:02:fd 179 0 52
0
0
en0 1500 192.168 192.168.0.235 179 0 52
0
0
en1 1500 52:54:4c:19:03:01 211 0 216
0
0
en1 1500 192.168.1 192.168.1.235 211 0 216
0
0

/////////////////////////////
Node1:
/////////////////////////////

ls /net

node1 router

netstat -rn

Routing tables

Internet:
Destination Gateway Flags Refs Use Mtu
Interface
default 192.168.1.235 UGS 1 3 -
en0
127.0.0.1 127.0.0.1 UH 0 0 -
lo0
192.168.1 192.168.1.132 U 2 427 -
en0
192.168.1.132 192.168.1.132 UH 0 0 -
lo0

netstat -in

Name Mtu Network Address Ipkts Ierrs Opkts
Oerrs
Coll
lo0 32976 0 0 0
0
0
lo0 32976 127 127.0.0.1 0 0 0
0
0
en0 1500 00:d0:c9:42:28:07 606 0 617
0
0
en0 1500 192.168.1 192.168.1.132 606 0 617
0
0

ping 192.168.0.128

PING 192.168.0.128 (192.168.0.128): 56 data bytes
64 bytes from 192.168.0.128: icmp_seq=0 ttl=254 time=2 ms

/////////////////////////////
Node2:
/////////////////////////////

ls /net

node2 router

netstat -rn

Routing tables

Internet:
Destination Gateway Flags Refs Use Mtu
Interface
default 192.168.0.1 UG 0 0 -
en0
127.0.0.1 127.0.0.1 UH 0 4 -
lo0
192.168 192.168.0.128 U 13 391225 -
en0
192.168.0.128 192.168.0.128 UH 0 0 -
lo0
192.168.1 192.168.0.235 UGS 0 16 -
en0

netstat -in

Name Mtu Network Address Ipkts Ierrs Opkts
Oerrs
Coll
lo0 32976 4 0 4
0
0
lo0 32976 127 127.0.0.1 4 0 4
0
0
en0 1500 c0:80:ff:bf:c1:a8 576485 0 391871
0
0
en0 1500 192.168 192.168.0.128 576485 0 391871
0
0

ping node1

PING node1.qnet (192.168.1.132): 56 data bytes
64 bytes from 192.168.1.132: icmp_seq=0 ttl=254 time=2 ms

  • Stuart

“Xiaodan Tang” <> xtang@qnx.com> > wrote in message
news:ag47p9$cnq$> 1@nntp.qnx.com> …
It is very wired that ARP packet is send out. The “only possiable
explaination” I have is that the netmask is not correct or not
working in stack.

Can you post “netstat -ni”, “netstat -nr” output on 3 nodes ?

-xtang

Stuart Harding <> sharding@gil.com.au> > wrote:
Full network setup on each node is:

node1:
io-net -drtl -ptcpip
ifconfig en0 192.168.0.128 netmask 255.255.255.0
route add 192.168.1.32 192.168.0.21
mount -Tio-net -obind=ip,resolve=dns,host=node1.mydomain
npm-qnet.so

node2:
io-net -drtl -ptcpip
ifconfig en0 192.168.1.32 netmask 255.255.255.0
route add 192.168.0.128 192.168.1.21
mount -Tio-net -obind=ip,resolve=dns,host=node2.mydomain
npm-qnet.so

router:
io-net -drtl
mount -Tio-net -oforward npm-tcpip.so
ifconfig en0 192.168.0.21 netmask 255.255.255.0
ifconfig en1 192.168.1.21 netmask 255.255.255.0
mount -Tio-net -obind=ip,resolve=dns,host=router.mydomain
npm-qnet.so

Each of the nodes and router has the correct /etc/hosts entries to
resolve
the other ip addresses. Ping, ftp and telnet will now work between
the
two
nodes. However, qnet won’t yet cross the subnets - the router can
see
all
nodes, but each node can only see itself and the router. It will
only
work
across the subnets if I add the following entries into the arp
tables:

node1:
arp -s 192.168.1.32 <ethernet address of router’s 0.21 network
card

node2:
arp -s 192.168.0.128 <ethernet address of router’s 1.21 network
card

Yes, it seems strange that ping, ftp and telnet all work with the
routing
table but qnet doesn’t…

Thanks,
Stuart

Xiaodan Tang <> xtang@qnx.com> > wrote in message
news:ad7vvs$7bq$> 1@nntp.qnx.com> …
Stuart Harding <> stuart@intellidesign.com.au> > wrote:
Replying to myself again > :slight_smile:

I have finally got qnet running across the subnet.

I did this by adding ARP entries into each node’s arp table
directing
the IP
address of the remote node to the router’s local ethernet
interface.

I still don’t see why the ARP request is going out for the
remote
IP
address, rather than the router’s IP address, considering that
there
is
an
entry in the routing table for exactly this. Can anyone shed
some
light
on
this?

Sorry to reply late.

I don’t quite understand the satuation either. Can you post node1
and node2’s ip address, netmask ? (netstat -ni).

You are saying “ping node2” from node1 IS working, right ?

-xtang

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in message
news:ad1u36$oa4$> 1@inn.qnx.com> …
More information:

I have run a packet sniffer on one of the subnets. When I try
to
force
the
first node to see the node on the other subnet, the first node
gives
out
about six ARP requests to the destination IP address, then
io-net
crashes.
Can anyone suggest why ARP (an ethernet address resolver) is
being
used
to
locate an IP address for which there is an entry in the
routing
table?

Stuart

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in
message
news:acv8s8$nui$> 1@inn.qnx.com> …
I am running QNX 6.1.0a. I have read all the posts in the
previous
“Qnet
across subnets” thread. The outcome of that was Xiaodan
Tang’s
simplified
qnet startup command:

mount -Tio-net -obind=ip,resolve=dns,host=nodeA.domainname
npm-qnet.so

This works fine for me within subnets, but will not cross
subnets.

I have three single board computers, one having multiple
network
cards,
which I use as the router. I start io-net on all machines
and
set
the
routing tables to the point where I can ping, ftp and
telnet
from
any
machine to any other machine. I then start qnet on each
machine
using
the
above command. The result is as follows:

From the first node I can see and use /net/node1 and
/net/router.
From the second node I can see and use /net/node2 and
/net/router.
From the router I can see and use /net/router, /net/node1
and
/net/node2.

Trying to force qnet to see a node on the other subnet,
using
/net/ip_address, /net/node1, or /net/node1.domainname,
gives
the
error
message “No route to host”. It also sometimes causes
io-net
to
crash.

I have entries in /etc/hosts for router router.domainname,
node1
node1.domainname, node2 node2.domainname.

Can anyone suggest anything I may have overlooked?

Thanks,
Stuart Harding


\

Can we see “netstat -nr”, “netstat -ni” on all 3 nodes ?
And all 3 nodes are 6.1 right?

-xtang

Andy <andy@symmetry.com.au> wrote:

Xiaodan:
As requested. The netstat -rn and netstat -ni outputs. My case is similar
to Stuarts- I can ping/telnet everything, from one network to the other.
When it comes to qnet it seems that a qnet on 10… cannot see one on 172…
and vice versa. I have not got as far as Stuart with using arp to get qnet
visability.

TIA Andy.



Routing tables

Internet:
Destination Gateway Flags Refs Use Mtu
Interface
default 10.1.1.10 UGS 0 3 - en0
10.1.1/27 10.1.1.11 U 1 0 - en0
10.1.1.11 10.1.1.11 UH 0 0 - lo0
127.0.0.1 127.0.0.1 UH 0 0 - lo0
172.24.25/24 172.24.25.1 U 0 0 - en1
172.24.25.1 172.24.25.1 UH 0 0 - lo0
Name Mtu Network Address Ipkts Ierrs Opkts Oerrs
Coll
lo0 32976 0 0 0 0
0
lo0 32976 127 127.0.0.1 0 0 0 0
0
en0 1500 00:40:33:2e:49:92 9 0 7 0
0
en0 1500 10.1.1/27 10.1.1.11 9 0 7 0
0
en1 1500 00:a0:c9:70:0f:49 0 0 4 0
0
en1 1500 172.24.25/24 172.24.25.1 0 0 4 0
0

Xiaodan Tang <> xtang@qnx.com> > wrote in message
news:ag47sf$cnq$> 2@nntp.qnx.com> …
Andy <> andy@symmetry.com.au> > wrote:
Hi:

I have also tried to get this sort of link going, with no luck. I have
used
a setup similar to Stuarts, I’ve played with many combinations of
bindings
etc.
I get the impression that tcpip is capable of dealing with more than one
interface but qnet is only name resolving on the last defined interface.

I see the following resolved names. Using Stuarts machine naming.
node1: ls /net shows node1
node2: ls /net shows node2 and router
router: ls /net shows router and node2

Is there anything wrong with Stuarts setup?

The fact node1 and router didn’t see each other make me believe
they have problems that they are not configured on same subnet.
If you could post “netstat -ni”, “netstat -nr”, we might be able
know something…

Before I set up 3 * 6.2 systems. Is this fixed on 6.2 ?

No, don’t do that on 6.2

-xtang
Andy.

Stuart Harding <> sharding@gil.com.au> > wrote in message
news:ad9hd0$gh2$> 1@inn.qnx.com> …
Full network setup on each node is:

node1:
io-net -drtl -ptcpip
ifconfig en0 192.168.0.128 netmask 255.255.255.0
route add 192.168.1.32 192.168.0.21
mount -Tio-net -obind=ip,resolve=dns,host=node1.mydomain npm-qnet.so

node2:
io-net -drtl -ptcpip
ifconfig en0 192.168.1.32 netmask 255.255.255.0
route add 192.168.0.128 192.168.1.21
mount -Tio-net -obind=ip,resolve=dns,host=node2.mydomain npm-qnet.so

router:
io-net -drtl
mount -Tio-net -oforward npm-tcpip.so
ifconfig en0 192.168.0.21 netmask 255.255.255.0
ifconfig en1 192.168.1.21 netmask 255.255.255.0
mount -Tio-net -obind=ip,resolve=dns,host=router.mydomain npm-qnet.so

Each of the nodes and router has the correct /etc/hosts entries to
resolve
the other ip addresses. Ping, ftp and telnet will now work between the
two
nodes. However, qnet won’t yet cross the subnets - the router can see
all
nodes, but each node can only see itself and the router. It will only
work
across the subnets if I add the following entries into the arp tables:

node1:
arp -s 192.168.1.32 <ethernet address of router’s 0.21 network card

node2:
arp -s 192.168.0.128 <ethernet address of router’s 1.21 network card

Yes, it seems strange that ping, ftp and telnet all work with the
routing
table but qnet doesn’t…

Thanks,
Stuart

Xiaodan Tang <> xtang@qnx.com> > wrote in message
news:ad7vvs$7bq$> 1@nntp.qnx.com> …
Stuart Harding <> stuart@intellidesign.com.au> > wrote:
Replying to myself again > :slight_smile:

I have finally got qnet running across the subnet.

I did this by adding ARP entries into each node’s arp table
directing
the IP
address of the remote node to the router’s local ethernet
interface.

I still don’t see why the ARP request is going out for the remote
IP
address, rather than the router’s IP address, considering that
there
is
an
entry in the routing table for exactly this. Can anyone shed some
light
on
this?

Sorry to reply late.

I don’t quite understand the satuation either. Can you post node1
and node2’s ip address, netmask ? (netstat -ni).

You are saying “ping node2” from node1 IS working, right ?

-xtang

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in message
news:ad1u36$oa4$> 1@inn.qnx.com> …
More information:

I have run a packet sniffer on one of the subnets. When I try to
force
the
first node to see the node on the other subnet, the first node
gives
out
about six ARP requests to the destination IP address, then io-net
crashes.
Can anyone suggest why ARP (an ethernet address resolver) is being
used
to
locate an IP address for which there is an entry in the routing
table?

Stuart

“Stuart Harding” <> stuart@intellidesign.com.au> > wrote in message
news:acv8s8$nui$> 1@inn.qnx.com> …
I am running QNX 6.1.0a. I have read all the posts in the
previous
“Qnet
across subnets” thread. The outcome of that was Xiaodan
Tang’s
simplified
qnet startup command:

mount -Tio-net -obind=ip,resolve=dns,host=nodeA.domainname
npm-qnet.so

This works fine for me within subnets, but will not cross
subnets.

I have three single board computers, one having multiple
network
cards,
which I use as the router. I start io-net on all machines and
set
the
routing tables to the point where I can ping, ftp and telnet
from
any
machine to any other machine. I then start qnet on each
machine
using
the
above command. The result is as follows:

From the first node I can see and use /net/node1 and
/net/router.
From the second node I can see and use /net/node2 and
/net/router.
From the router I can see and use /net/router, /net/node1 and
/net/node2.

Trying to force qnet to see a node on the other subnet, using
/net/ip_address, /net/node1, or /net/node1.domainname, gives
the
error
message “No route to host”. It also sometimes causes io-net
to
crash.

I have entries in /etc/hosts for router router.domainname,
node1
node1.domainname, node2 node2.domainname.

Can anyone suggest anything I may have overlooked?

Thanks,
Stuart Harding
\

Stuart Harding <stuart@intellidesign.com.au> wrote:

“Xiaodan Tang” <> xtang@qnx.com> > wrote:
Now, without hacking the arp table, I don’t expect the “ping” will
work, if node1 and node2 are physically seperated, that is,
if node2 CAN NOT see the ARP packets send by node1.

node1 and node2 are physically separated by the router node in the middle.
When I set up the routing tables as below, ping, ftp, telnet etc. work as
they should - they use the routing table to find the destination.
Qnet does not work at this stage - it is not using the routing table to
find the destination. If I hack the arp table to “cheat” node1 that node2
is router, then qnet starts working.
Is there a “local” flag that can be set when a program sends a packet to the
tcpip stack, which forces it to ignore the routing table? Why would ping,
ftp, telnet etc work fine across the subnets, but qnet not?

Would you please do this:

  1. restart io-net on 3 nodes, WITHOUT qnet, so we strickly talking
    about tcpip

  2. before any tcpip activity, do a “netstat -nr” on node1 (the one have
    192.168.0 address), and “netstat -ni”, and “arp -na”

  3. then on this node1 do a “ping -c1 192.168.1.x” to send only one ping packet
    to node2. I suppose this works.

  4. then do “netstat -nr”, “netstat -ni” and “arp -na” again on node1.

Is there a new entry in “arp -na” output? Is there a new entry in
“netstat -nr” output ?

-xtang

Xiaodan wrote:

Would you please do this:

  1. restart io-net on 3 nodes, WITHOUT qnet, so we strickly talking
    about tcpip

  2. before any tcpip activity, do a “netstat -nr” on node1 (the one have
    192.168.0 address), and “netstat -ni”, and “arp -na”

  3. then on this node1 do a “ping -c1 192.168.1.x” to send only one ping
    packet
    to node2. I suppose this works.

This doesn’t work. I don’t have a dynamic routing protocol - I need to
set up the route manually. After I set up the route manually, this works.

  1. then do “netstat -nr”, “netstat -ni” and “arp -na” again on node1.
    Is there a new entry in “arp -na” output? Is there a new entry in
    “netstat -nr” output ?

New entry in “netstat -nr” is the manual entry I made. No new entries in
“arp -na”, as the node is not on the same subnet.

I have found two things of interest in the docs - SO_DONTROUTE and
MSG_DONTROUTE, both of which would explain my problem. Could it be that
qnet is using one of these for some reason?

Cheers,
Stuart

“Xiaodan Tang” <xtang@qnx.com> wrote in message
news:aghhj5$fhl$3@nntp.qnx.com

Stuart Harding <> stuart@intellidesign.com.au> > wrote:
“Xiaodan Tang” <> xtang@qnx.com> > wrote:
Now, without hacking the arp table, I don’t expect the “ping” will
work, if node1 and node2 are physically seperated, that is,
if node2 CAN NOT see the ARP packets send by node1.

node1 and node2 are physically separated by the router node in the
middle.
When I set up the routing tables as below, ping, ftp, telnet etc. work
as
they should - they use the routing table to find the destination.
Qnet does not work at this stage - it is not using the routing table
to
find the destination. If I hack the arp table to “cheat” node1 that
node2
is router, then qnet starts working.
Is there a “local” flag that can be set when a program sends a packet to
the
tcpip stack, which forces it to ignore the routing table? Why would
ping,
ftp, telnet etc work fine across the subnets, but qnet not?

Would you please do this:

  1. restart io-net on 3 nodes, WITHOUT qnet, so we strickly talking
    about tcpip

  2. before any tcpip activity, do a “netstat -nr” on node1 (the one have
    192.168.0 address), and “netstat -ni”, and “arp -na”

  3. then on this node1 do a “ping -c1 192.168.1.x” to send only one ping
    packet
    to node2. I suppose this works.

  4. then do “netstat -nr”, “netstat -ni” and “arp -na” again on node1.

Is there a new entry in “arp -na” output? Is there a new entry in
“netstat -nr” output ?

-xtang

Stuart Harding <stuart@intellidesign.com.au> wrote:

Xiaodan wrote:
Would you please do this:

  1. restart io-net on 3 nodes, WITHOUT qnet, so we strickly talking
    about tcpip

  2. before any tcpip activity, do a “netstat -nr” on node1 (the one have
    192.168.0 address), and “netstat -ni”, and “arp -na”

  3. then on this node1 do a “ping -c1 192.168.1.x” to send only one ping
    packet
    to node2. I suppose this works.

This doesn’t work. I don’t have a dynamic routing protocol - I need to
set up the route manually. After I set up the route manually, this works.

  1. then do “netstat -nr”, “netstat -ni” and “arp -na” again on node1.
    Is there a new entry in “arp -na” output? Is there a new entry in
    “netstat -nr” output ?

New entry in “netstat -nr” is the manual entry I made. No new entries in
“arp -na”, as the node is not on the same subnet.

And after this ping working, if you do the mount on node1 and node2,
qnet is not working?

mount -Tio-net -obind=ip,resolve=dns,hostname=node1 npm-qnet.so
mount -Tio-net -obind=ip,resolve=dns,hostname=node2 npm-qnet.so

Hm, I really would like to see a packet sniffer of the traffic of
that one ping, and the QNET output…

I have found two things of interest in the docs - SO_DONTROUTE and
MSG_DONTROUTE, both of which would explain my problem. Could it be that
qnet is using one of these for some reason?

No. QNET do not using socket to transfer data.

-xtang

Cheers,
Stuart

“Xiaodan Tang” <> xtang@qnx.com> > wrote in message
news:aghhj5$fhl$> 3@nntp.qnx.com> …
Stuart Harding <> stuart@intellidesign.com.au> > wrote:
“Xiaodan Tang” <> xtang@qnx.com> > wrote:
Now, without hacking the arp table, I don’t expect the “ping” will
work, if node1 and node2 are physically seperated, that is,
if node2 CAN NOT see the ARP packets send by node1.

node1 and node2 are physically separated by the router node in the
middle.
When I set up the routing tables as below, ping, ftp, telnet etc. work
as
they should - they use the routing table to find the destination.
Qnet does not work at this stage - it is not using the routing table
to
find the destination. If I hack the arp table to “cheat” node1 that
node2
is router, then qnet starts working.
Is there a “local” flag that can be set when a program sends a packet to
the
tcpip stack, which forces it to ignore the routing table? Why would
ping,
ftp, telnet etc work fine across the subnets, but qnet not?

Would you please do this:

  1. restart io-net on 3 nodes, WITHOUT qnet, so we strickly talking
    about tcpip

  2. before any tcpip activity, do a “netstat -nr” on node1 (the one have
    192.168.0 address), and “netstat -ni”, and “arp -na”

  3. then on this node1 do a “ping -c1 192.168.1.x” to send only one ping
    packet
    to node2. I suppose this works.

  4. then do “netstat -nr”, “netstat -ni” and “arp -na” again on node1.

Is there a new entry in “arp -na” output? Is there a new entry in
“netstat -nr” output ?

-xtang