IP routing is a common source of problems with products such as Solstice PPP, which implement IP connections over PPP links. To detect problems with IP routing:
Check the protocol status, using ifconfig(1M)
Check the IP connectivity, using ping(1M)
Check the routing tables, using netstat(1M)
Check the packet flow, using snoop(1M)
Use ifconfig(1M) to check that the IP interfaces for Solstice PPP are configured, by typing:
prompt# /usr/sbin/ifconfig -a lo0: flags=849<UP,LOOPBACK,RUNNING,MULTICAST> mtu 8232 inet 127.0.0.1 netmask ff000000 le0: flags=863<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 129.x.x.117 netmask ffffff00 broadcast 129.x.x.255 ether 8:0:20:10:c2:b1 ipdptp0: flags=8d0<POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500 inet 129.x.x.117 --> 129.x.x.253 netmask ffffff00 ether 0:0:0:0:0:0 ipdptp1: flags=28d1<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> inet 129.x.x.117 --> 129.x.x.38 netmask ffffff00 ether 0:0:0:0:0:0 |
Use ping(1M) to check that you can reach a remote host, by typing:
prompt# /usr/sbin/ping -r remote_host |
Follow the status of the connection in the file /var/opt/SUNWconn/ppp.log. If the LCP negotiation fails with the message "PPP error on ipdptp1: Negotiation of mandatory options failed", the IP addresses used for the interfaces at each end of the link may not be coherent.
Use netstat(1M) to check the network addresses of the local and remote hosts, by typing:
prompt# /usr/sbin/netstat -i lo0 8232 loopback localhost 4631890 0 4631890 0 0 0 le0 1500 lab local 5370160 15 2153627 273 430451 0 ipdptp0 1500 remote local 0 0 0 0 0 0 |
Check that the local and remote addresses are correct. Hostnames must be resolved as IP addresses in either the local file /etc/hosts, or by a naming service (NIS/NIS+ or DNS). IP interfaces for synchronous links are initialized by Solstice PPP before the naming services are available; therefore the hostname for these files must be resolved in /etc/hosts.
Use netstat(1M) to check the routing table, by typing:
prompt# /usr/sbin/netstat -r |
If the routing table does not include the expected routes, check that the routing daemon in.routed is running on your machine, by typing:
prompt# ps -ef | grep in.routed owner 12481 3812 7 23:06:08 pts/6 0:00 grep in.routed |
Use snoop(1M) to check that packets are being transmitted. For example:
prompt# /usr/sbin/snoop -d ipdptp0 local -> remote RSHELL C port=1017 >0 'H ![ ? local -> remote RSHELL C port=1017 ,(!\nM/ local -> remote RSHELL C port=1017 Y@#K / ]0#Z ] 'Z local -> remote RSHELL C port=1017 .?;-)P3O89, " 2 H8" local -> remote RSHELL C port=1017 @ \#\ . . . |