Discussion:
VMware: Can't use DNS because cs fails?
(too old to reply)
Ilmari Vacklin
2013-06-24 09:09:51 UTC
Permalink
Hi all,

After setting up networking with

ip/ipconfig
ndb/dns -r

DHCP does its magic and I have working IP and TCP. However, I can't resolve DNS addresses:

term% ip/ping google.com
ip/ping: couldn't dial icmp!google.com!1: cs: temporary problem: dns: dns failure

Pinging an IP works:

term% ip/ping 8.8.4.4
sending 32 64 byte messages 1000 ms apart to icmp!8.8.4.4!1
0: rtt 1025351 µs, avg rtt 1025351 µs, ttl = 128
1: rtt 25669 µs, avg rtt 525510 µs, ttl = 128
2: rtt 29573 µs, avg rtt 360197 µs, ttl = 128

ndb/dnsquery gives me this error:

term% ndb/dnsquery
www.google.com
!dns: dns failure

Looking in /net/ndb, my network looks like this:

ip=127.0.0.1 ipmask=/104 ipgw=::
sys=gnot
sys=gnot
dom=gnot.localdomain
dns=192.168.220.2

I don't know if that's correct.

Debugging further, it turns out I can query my DNS server directly:

term% ndb/dnsdebug @192.168.220.2 www.google.com
31846.1: sending to 192.168.220.2/192.168.220.2 www.google.com ip
31846: rcvd OK from 192.168.220.2 ( recurse can_recurse)
[...snip...]

I put cs into debug mode with `echo debug > /net/cs` and look in `/sys/log/cs`. I see the following:

term% cat /sys/log/cs
gnot Jun 24 13:48:16 debug 1
gnot Jun 24 13:48:16 Rwrite tag 2 count 6 11
gnot Jun 24 13:48:16 Tclunk tag 2 fid 232
gnot Jun 24 13:48:16 Rclunk tag 2 7
gnot Jun 24 13:48:29 Twalk tag 2 fid 124 newfid 225 nwname 1 0:cs
gnot Jun 24 13:48:29 Rwalk tag 2 nwqid 1 0:(0000000000000001 25 ) 22
gnot Jun 24 13:48:29 Topen tag 2 fid 225 mode 2
gnot Jun 24 13:48:29 Ropen tag 2 qid (0000000000000001 25 ) iounit 0 24
gnot Jun 24 13:48:29 Twrite tag 2 fid 225 offset 0 count 14 'www.google.com'
gnot Jun 24 13:48:29 write www.google.com
gnot Jun 24 13:48:29 Rerror tag 2 ename cs: can't translate service 36
gnot Jun 24 13:48:29 Tclunk tag 2 fid 225
gnot Jun 24 13:48:29 Rclunk tag 2 7
gnot Jun 24 13:50:19 Twalk tag 2 fid 124 newfid 229 nwname 1 0:cs
gnot Jun 24 13:50:19 Rwalk tag 2 nwqid 1 0:(0000000000000001 26 ) 22
gnot Jun 24 13:50:19 Topen tag 2 fid 229 mode 2
gnot Jun 24 13:50:19 Ropen tag 2 qid (0000000000000001 26 ) iounit 0 24
gnot Jun 24 13:50:19 Twrite tag 2 fid 229 offset 0 count 20 '!sys=google.com ip=*'
gnot Jun 24 13:50:19 Rerror tag 2 ename cs: no match 21
gnot Jun 24 13:50:19 Tclunk tag 2 fid 229
gnot Jun 24 13:50:19 Rclunk tag 2 7
gnot Jun 24 13:50:19 Twalk tag 2 fid 124 newfid 229 nwname 1 0:cs
gnot Jun 24 13:50:19 Rwalk tag 2 nwqid 1 0:(0000000000000001 27 ) 22
gnot Jun 24 13:50:19 Topen tag 2 fid 229 mode 2
gnot Jun 24 13:50:19 Ropen tag 2 qid (0000000000000001 27 ) iounit 0 24
gnot Jun 24 13:50:19 Twrite tag 2 fid 229 offset 0 count 20 '!dom=google.com ip=*'
gnot Jun 24 13:50:19 slave 294
gnot Jun 24 13:50:19 Rerror tag 2 ename cs: no match 21
gnot Jun 24 13:50:19 slave death 294
gnot Jun 24 13:50:19 Tclunk tag 2 fid 229
gnot Jun 24 13:50:19 Rclunk tag 2 7
gnot Jun 24 13:50:19 Twalk tag 2 fid 124 newfid 229 nwname 1 0:cs
gnot Jun 24 13:50:19 Rwalk tag 2 nwqid 1 0:(0000000000000001 28 ) 22
gnot Jun 24 13:50:19 Topen tag 2 fid 229 mode 2
gnot Jun 24 13:50:19 Ropen tag 2 qid (0000000000000001 28 ) iounit 0 24
gnot Jun 24 13:50:19 Twrite tag 2 fid 229 offset 0 count 22 '!sys=google.com ipv6=*'
gnot Jun 24 13:50:19 Rerror tag 2 ename cs: no match 21
gnot Jun 24 13:50:19 Tclunk tag 2 fid 229
gnot Jun 24 13:50:19 Rclunk tag 2 7
gnot Jun 24 13:50:19 Twalk tag 2 fid 124 newfid 229 nwname 1 0:cs
gnot Jun 24 13:50:19 Rwalk tag 2 nwqid 1 0:(0000000000000001 29 ) 22
gnot Jun 24 13:50:19 Topen tag 2 fid 229 mode 2
gnot Jun 24 13:50:19 Ropen tag 2 qid (0000000000000001 29 ) iounit 0 24
gnot Jun 24 13:50:19 Twrite tag 2 fid 229 offset 0 count 22 '!dom=google.com ipv6=*'
gnot Jun 24 13:50:19 slave 295
gnot Jun 24 13:50:19 Rerror tag 2 ename cs: no match 21
gnot Jun 24 13:50:19 slave death 295
gnot Jun 24 13:50:19 Tclunk tag 2 fid 229
gnot Jun 24 13:50:19 Rclunk tag 2 7
gnot Jun 24 13:50:19 Twalk tag 2 fid 124 newfid 229 nwname 1 0:cs
gnot Jun 24 13:50:19 Rwalk tag 2 nwqid 1 0:(0000000000000001 30 ) 22
gnot Jun 24 13:50:19 Topen tag 2 fid 229 mode 2
gnot Jun 24 13:50:19 Ropen tag 2 qid (0000000000000001 30 ) iounit 0 24
gnot Jun 24 13:50:19 Twrite tag 2 fid 229 offset 0 count 17 'icmp!google.com!1'
gnot Jun 24 13:50:19 write icmp!google.com!1
gnot Jun 24 13:50:19 slave 296
gnot Jun 24 13:50:19 Rerror tag 2 ename cs: temporary problem: dns: dns failure 48
gnot Jun 24 13:50:19 slave death 296
gnot Jun 24 13:50:19 Tclunk tag 2 fid 229
gnot Jun 24 13:50:19 Rclunk tag 2 7
gnot Jun 24 13:50:26 Twalk tag 1 fid 124 newfid 234 nwname 1 0:cs
gnot Jun 24 13:50:26 Rwalk tag 1 nwqid 1 0:(0000000000000001 31 ) 22
gnot Jun 24 13:50:26 Topen tag 1 fid 234 mode 2
gnot Jun 24 13:50:26 Ropen tag 1 qid (0000000000000001 31 ) iounit 0 24
gnot Jun 24 13:50:26 Twrite tag 1 fid 234 offset 0 count 8 'udp!*!68'
gnot Jun 24 13:50:26 write udp!*!68
gnot Jun 24 13:50:26 Rwrite tag 1 count 8 11
gnot Jun 24 13:50:26 Tread tag 1 fid 234 offset 0 count 255
gnot Jun 24 13:50:26 Rread tag 1 count 17 '/net/udp/clone 68' 28
gnot Jun 24 13:50:26 Tclunk tag 1 fid 234
gnot Jun 24 13:50:26 Rclunk tag 1 7
gnot Jun 24 13:50:59 Twalk tag 2 fid 124 newfid 236 nwname 1 0:dns
gnot Jun 24 13:50:59 Rerror tag 2 ename cs: file does not exist 32
gnot Jun 24 13:51:01 Twalk tag 2 fid 124 newfid 236 nwname 1 0:dns
gnot Jun 24 13:51:01 Rerror tag 2 ename cs: file does not exist 32
gnot Jun 24 13:51:36 Twalk tag 2 fid 124 newfid 229 nwname 1 0:cs
gnot Jun 24 13:51:36 Rwalk tag 2 nwqid 1 0:(0000000000000001 34 ) 22
gnot Jun 24 13:51:36 Topen tag 2 fid 229 mode 2
gnot Jun 24 13:51:36 Ropen tag 2 qid (0000000000000001 34 ) iounit 0 24
gnot Jun 24 13:51:36 Twrite tag 2 fid 229 offset 0 count 14 'icmp!8.8.4.4!1'
gnot Jun 24 13:51:36 write icmp!8.8.4.4!1
gnot Jun 24 13:51:36 Rwrite tag 2 count 14 11
gnot Jun 24 13:51:36 Tread tag 2 fid 229 offset 0 count 5118
gnot Jun 24 13:51:36 Rread tag 2 count 25 '/net/icmp/clone 8.8.4.4!1' 36
gnot Jun 24 13:51:36 Tread tag 2 fid 229 offset 25 count 5092
gnot Jun 24 13:51:36 Rread tag 2 count 0 <no data> 11
gnot Jun 24 13:51:36 Tclunk tag 2 fid 229
gnot Jun 24 13:51:36 Rclunk tag 2 7
gnot Jun 24 13:54:01 Twalk tag 3 fid 124 newfid 229 nwname 1 0:dns
gnot Jun 24 13:54:01 Rerror tag 3 ename cs: file does not exist 32

Unfortunately I don't know how to read this, so I'm stumped. Any clues what might be going on? I get the same behaviour with both the NAT and Bridged modes in VMware.
erik quanstrom
2013-06-24 13:07:35 UTC
Permalink
Post by Ilmari Vacklin
sys=gnot
sys=gnot
dom=gnot.localdomain
dns=192.168.220.2
I don't know if that's correct.
i think this is the issue. if the ip network is 127.0.0.1/104,
then the gateway (:: = 0:0:0:0:0:0:0:0) is not on the
same network. so 192.168.220.2 can't be reached.

by the way, for reasons that escape me, 127.0.0.1 has
a mask of /8. not sure why the local host needs 16777214
ip addresses.
Post by Ilmari Vacklin
31846.1: sending to 192.168.220.2/192.168.220.2 www.google.com ip
31846: rcvd OK from 192.168.220.2 ( recurse can_recurse)
[...snip...]
this looks like a bug. what is the contents of /net/iproute?

- erik
Bakul Shah
2013-06-24 17:39:17 UTC
Permalink
Post by erik quanstrom
Post by Ilmari Vacklin
sys=gnot
sys=gnot
dom=gnot.localdomain
dns=192.168.220.2
I don't know if that's correct.
i think this is the issue. if the ip network is 127.0.0.1/104,
then the gateway (:: = 0:0:0:0:0:0:0:0) is not on the
same network. so 192.168.220.2 can't be reached.
/104 mask for IPv4 doesn't make sense. Can be at most /32.
Post by erik quanstrom
by the way, for reasons that escape me, 127.0.0.1 has
a mask of /8. not sure why the local host needs 16777214
ip addresses.
See rfc1122 - the host requirements rfc - it documented existing practices (as of 1989). Probably because it was quicker to look up in the days of class based addressing, when 32 bit addressing was considered plentiful. 127.x.x.x is a class A address.
Ilmari Vacklin
2013-06-24 18:18:54 UTC
Permalink
Post by Ilmari Vacklin
sys=gnot
sys=gnot
dom=gnot.localdomain
dns=192.168.220.2
I don't know if that's correct.
i think this is the issue. if the ip network is 127.0.0.1/104,
then the gateway (:: = 0:0:0:0:0:0:0:0) is not on the
same network. so 192.168.220.2 can't be reached.
Thank you. That makes sense. It's unclear to me why /net/ndb is like it is. I had the idea that ipconfig would set everything up for me. Perhaps I was wrong?

In other words: After installing a new Plan 9 instance (in VMware), what should I do to get it online?
Post by Ilmari Vacklin
31846.1: sending to 192.168.220.2/192.168.220.2 www.google.com ip
31846: rcvd OK from 192.168.220.2 ( recurse can_recurse)
[...snip...]
this looks like a bug. what is the contents of /net/iproute?
/net/iproute:

term% cat /net/iproute
0.0.0.0 /96 192.168.220.2 4 none -
192.168.220.0 /120 192.168.220.0 4i ifc 1
192.168.220.0 /128 192.168.220.0 4b ifc -
192.168.220.128 /128 192.168.220.128 4u ifc 1
192.168.220.255 /128 192.168.220.255 4b ifc -
127.0.0.0 /104 127.0.0.0 4i ifc -
127.0.0.0 /128 127.0.0.0 4b ifc -
127.0.0.1 /128 127.0.0.1 4u ifc -
127.255.255.255 /128 127.255.255.255 4b ifc -
255.255.255.255 /128 255.255.255.255 4b ifc 1
erik quanstrom
2013-06-24 19:46:23 UTC
Permalink
Post by Ilmari Vacklin
192.168.220.0 /120 192.168.220.0 4i ifc 1
192.168.220.0 /128 192.168.220.0 4b ifc -
192.168.220.128 /128 192.168.220.128 4u ifc 1
192.168.220.255 /128 192.168.220.255 4b ifc -
from this it looks like you have an address of /120
(or /24 in ip4 style) so you probablly want an ipnet
entry and a host entry, as in

ipnet=mynet ip=192.168.220.0 ipmask=/120
fs=my-fs-name
gw=my-gateway-name
auth=my-auth-name
dns=192.168.220.2
dnsdomain=my-dns-domain
ipgw=192.168.220.2

ip=192.168.220.128 sys=myhost
dom=myhost.mydom

there may be some other bits i'm forgetting.

- erik

Loading...