Network2/Diagnosis: Difference between revisions

From OLPC
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 1: Line 1:
{{Network2 header}}
{{Network2 header}}
Prerequisite concepts: [[Network2/Concept/Diagnostic|diagnostic]], [[Network2/Concept/Link|link]], [[Network2/Concept/Address|address]], [[Network2/Concept/Name|name]], [[Network2/Concept/Route|route]], [[Network2/Concept/Socket|socket]], [[Network2/Concept/Packet log|packet log]], [[Network2/Concept/Dig|dig]], [[Network2/Concept/Ping|ping]], [[Network2/Concept/Traceroute|traceroute]], [[Network2/Concept/Netcat|netcat]], [[Network2/Concept/Bandwidth test|bandwidth test]]

Start recording a typescript so that we can see what you did.
Start recording a typescript so that we can see what you did.



Revision as of 06:14, 29 July 2009

Prerequisite concepts: diagnostic, link, address, name, route, socket, packet log, dig, ping, traceroute, netcat, bandwidth test

Start recording a typescript so that we can see what you did.

TESTDIR=`pwd`/testing
mkdir -p $TESTDIR && cd TESTDIR
script
ulimit -c unlimited

Check that you've got the right DNS name for the person you want to talk to.

NAME=the.right.person
echo $NAME > peer

Dump your addresses, routes, and perhaps your open connections.

hostname --fqdn | tee host
ip addr show | tee addrs
ip route show | tee ipv4_routes
ip -6 route show | tee ipv6_routes
netstat -anp | tee conns

If you have wireless devices,

iwconfig | tee iwconfig
iwlist scan | tee iwlist_scan

Fire up tcpdump:

tcpdump -w packets -s0 &

Resolve that name to addresses. Check that the addresses seem sane.

dnshash lookup $NAME | tee peer_addrs_dnshash
dig $NAME | tee peer_addrs_dig

See who's answering broadcasts:

ping6 -I $IFACE ff02::1

Route to the addresses:

ping6 -I $IFACE $ADDR | tee ping
traceroute6 $ADDR | tee traceroute
tracepath6 $ADDR | tee tracepath

Connect to the address:

nc6 $ADDR $PORT
# echo "SSH-2.0-Hi" | nc6 $ADDR 22
# printf "GET / HTTP/1.0\r\n\r\n" | nc6 $ADDR 80
# ssh $ADDR
# curl -I http://$ADDR/
# ...

Conduct a bandwidth test:

iperf -c -V $ADDR

Collect logs from your application and send them to developers:

kill -SIGINT %1
cd ..
tar c $TESTDIR | lzma -c > logs.tar.lzma