Gary Faulkner
07/15/2008 2:46 PM
post10558
|
I'm wondering what support qnet might have for routing packets (in the io-pkt world, of course).
Specifically, if I have a network diagram (as in the one attached), how do i make sure that qnet packets get routed from
one node to the other?
I've tried starting qnet as follows:
mount -T io-pkt -o bind=ip,bind=mos0 /proc/boot/lsm-qnet.so
but the packets still don't get routed.
|
|
|
Robert Craig
07/15/2008 3:18 PM
post10561
|
Hi Gary:
As I'm assuming you know, QNET Ethernet packets aren't routed so
you have to use bind=ip (for anyone who may not know). I'm a bit
confused about the second bind=mos0 option. This suggests that you're
trying to bind to both Ethernet and IP at the same time (which should
work, but seems a bit peculiar). The other thing you'll want to do is
add a "resolv=dns" option to allow name resolution to go through the DNS
server. This should really happen by default when using IP, but it
doesn't.
Once the options are correct, what happens now is standard IP routing.
I'm assuming that the two nodes are on different subnets (otherwise the
routers don't make sense). To route packets from one node to the other,
each node needs to have a default route set to that of their respective
routers. Each router also needs to have a route set to point the subnet
of the other node at the other nodes router (confusing enough)?
If the routers are acting as DHCP servers and the nodes are receiving
their addresses via DHCP, then the default routes are set up by DHCP.
If not, you need to add them by hand (route add default x.x.x.x).
If the nodes can ping each other, then this should be all that you need
to do to get qnet working over IP.
If you want to have names for the qnet nodes instead of IP addresses and
the nodes aren't in a DNS server somewhere then you need to set up your
resolv.conf to use /etc/hosts for name resolution instead of trying to
reach a DNS server. You just have to add a "lookup file" option to
/etc/resolv.conf to make this work. You can also adjust the _CS_RESOLVE
configuration string (e.g. setconf _CS_RESOLVE lookup_file ).
Hope this helps...
Robert
-----Original Message-----
From: Gary Faulkner [mailto:gary.faulkner@ucontrol.com]
Sent: Tuesday, July 15, 2008 2:47 PM
To: general-networking
Subject: routing qnet packets
I'm wondering what support qnet might have for routing packets (in the
io-pkt world, of course).
Specifically, if I have a network diagram (as in the one attached), how
do i make sure that qnet packets get routed from one node to the other?
I've tried starting qnet as follows:
mount -T io-pkt -o bind=ip,bind=mos0 /proc/boot/lsm-qnet.so
but the packets still don't get routed.
_______________________________________________
General
http://community.qnx.com/sf/go/post10558
|
|
|
Gary Faulkner
|
Re: RE: routing qnet packets
|
Gary Faulkner
07/15/2008 5:19 PM
post10569
|
Re: RE: routing qnet packets
Thanks Robert!!
First, i *was* using bind=mos0 because when qnet started up, it complained that it was going to ignore that interface if
I only gave it the bind=ip.
I now see what you're talking about though.
However, I guess this leads to another question for me:
I startup qnet as follows (now):
mount -T io-pkt -o bind=ip,resolve=dns /proc/boot/lsm-qnet.so
and it seems to start just fine, and I get the /net directory created.
However, a simple test of
ls /net/127.0.0.1/ returns
ls: No such process (/net/127.0.0.1/)
and in sloginfo:
qnet(QOS): nd_change_notify(): Node Down: nd 3 127.0.0.1
I also tried it's non-localhost ip address (in my case, 192.168.12.100):
ls /net/192.168.12.100/
ls: Host is down (/net/192.168.12.100/)
# sloginfo -c
Time Sev Major Minor Args
Jul 15 16:18:30 7 15 0 qnet(L4): l4_resolve_node_up_ip_ionet(): nd 5 L4 0 has IP address 640CA8C0 in ndb
Jul 15 16:18:30 7 15 0 qnet(QOS): nd_change_notify(): Node Up: nd 5 192.168.12.100
Jul 15 16:18:30 7 15 0 qnet(QOS): tx_xmit_init_conn_pkt(): ndb_query_nd() failed for src nd 0
Jul 15 16:18:30 7 15 0 qnet(QOS): tx_complete(): callback for nd 5 to layer 0 with errno 264
Jul 15 16:18:30 7 15 0 qnet(kif): kif_server_outbound_failed(): NTONET_CONNECT server busy 19b1d0
Jul 15 16:18:30 7 15 0 qnet(QOS): nd_change_notify(): Node Down: nd 5 192.168.12.100
so... I'm just wondering what I'm missing here. I'm sure it's something simple.
|
|
|
Andrew Boyd(deleted)
|
RE: RE: routing qnet packets
|
Andrew Boyd(deleted)
07/16/2008 10:21 AM
post10599
|
RE: RE: routing qnet packets
From: Gary Faulkner [mailto:gary.faulkner@ucontrol.com]
> First, i *was* using bind=mos0 because when qnet started up,
> it complained that it was going to ignore that interface if
> I only gave it the bind=ip.
Assuming that mos0 is your (single?) ethernet interface,
Specifying both bind=ip and bind=mos0 should start two
L4's and allow you to talk to both routed machines
and also machines only on your local network.
> mount -T io-pkt -o bind=ip,resolve=dns /proc/boot/lsm-qnet.so
looks ok
> ls /net/127.0.0.1/
that can never work, sorry - you need a different hostname,
not localhost.
It looks like a resolver problem. Assuming you are on
"host1", do the following:
# ping host2
If that works, then "ls /net/host2" should work.
--
aboyd
|
|
|
Gary Faulkner
|
Re: RE: RE: routing qnet packets
|
Gary Faulkner
07/16/2008 10:54 AM
post10606
|
Re: RE: RE: routing qnet packets
Comments inline...
> From: Gary Faulkner [mailto:gary.faulkner@ucontrol.com]
>
> > First, i *was* using bind=mos0 because when qnet started up,
> > it complained that it was going to ignore that interface if
> > I only gave it the bind=ip.
>
> Assuming that mos0 is your (single?) ethernet interface,
> Specifying both bind=ip and bind=mos0 should start two
> L4's and allow you to talk to both routed machines
> and also machines only on your local network.
yes, this is correct; realistically, i'll never have hosts on my local network... so I can drop the bind=mos0.
> that can never work, sorry - you need a different hostname,
> not localhost.
So, if my actual ip address of the local node is 192.168.12.100, then a ls /net/192.168.12.100 would never work?
> It looks like a resolver problem. Assuming you are on
> "host1", do the following:
>
> # ping host2
>
> If that works, then "ls /net/host2" should work.
>
> --
> aboyd
So... give the network diagram that I have above, i have two hosts. Router 1 NATs host1, and router 2 NATs host2.
Internally, they both have the same actual IP address (192.168.12.100). But, they're external IP addresses are (of
course) different... one is at 192.168.99.166, and the other is at 192.168.99.232.
I can ping between them just fine.
However, I cannot get qnet to work between them.
Is there a specific port that qnet needs to have forwarded??
|
|
|
Andrew Boyd(deleted)
|
RE: RE: RE: routing qnet packets
|
Andrew Boyd(deleted)
07/16/2008 10:59 AM
post10607
|
RE: RE: RE: routing qnet packets
From: Gary Faulkner [mailto:gary.faulkner@ucontrol.com]
> i'll never have hosts on my local network... so I can
> drop the bind=mos0.
ok
> if my actual ip address of the local node is 192.168.12.100,
> then a ls /net/192.168.12.100 would never work?
right.
Try adding host1/192.168.99.166 and host2/192.168.99.232
to your /etc/hosts file on both machines. Make sure you
specify the domain there as well, and make sure that
# getconf _CS_DOMAIN
And
# hostname
returns what you think it should on both machines.
Then restart io-pkt (qnet) on both sides and try it
again.
--
aboyd
So... give the network diagram that I have above, i have two hosts.
Router 1 NATs host1, and router 2 NATs host2. Internally, they both
have the same actual IP address (192.168.12.100). But, they're external
IP addresses are (of course) different... one is at 192.168.99.166, and
the other is at 192.168.99.232.
I can ping between them just fine.
However, I cannot get qnet to work between them.
Is there a specific port that qnet needs to have forwarded??
_______________________________________________
General
http://community.qnx.com/sf/go/post10606
|
|
|
|