Test Network Configuration: Difference between revisions

From OLPC
Jump to navigation Jump to search
Line 118: Line 118:
===Combine the tests in an automated script===
===Combine the tests in an automated script===


All the above tests require checking many different locations and running several commands. Alternatively, you can execute this [http://wiki.laptop.org/images/3/30/Connectivity_status.22.10.sh bash script], which will accumulate and display the following network overview directly. This is a case of an XO connected to the School server on Channel 1. Note it is running Salut, although it is connected to the internet.
All the above tests require checking many different locations and running several commands. Alternatively, you may run <code>olpc-netstatus</code> from the Terminal Activity or the Virtual Terminal. It will accumulate and display the following network overview directly. This is a case of an XO connected to the School server on Channel 1.

$bash connectivity_status.sh
$olpc-netstatus
Nick : A05
MAC : 00:17:c4:05:26:1f
IP eth0 :
Model : C2
IP msh0 : 172.18.30.248
Serial : CSN74400049
DNS : 172.18.0.1
MAC : 00:17:C4:0C:CD:11
Essid : olpc-mesh
Build : update.1 703
Channel : 1
Firmware : CL1 Q2D14 Q2D
Libertas : 5.110.22.p1
Telepathy : salut
Nick : W03
Jabber :
Uptime : 01:12:06
IP eth0 : 172.18.0.250
Ethernet :
Config : School server
IP msh0 : 169.254.5.77
DNS : 172.18.0.1
Telepathy : gabble
Jabber : schoolserver.laptop.org
XOs : 4
Essid : olpc-mesh
Channel : 1
School : schoolserver.laptop.org
Config : School Mesh

More up-to-date version of olpc-netstatus, and other useful Network tools are available at [[Network Resources]].


===Useful locations===
===Useful locations===

Revision as of 05:45, 10 May 2008

Questions

  • Is the XO connected to Link-local or a mesh?
  • Is it connected to an MPP?
  • Is it connected to the internet?
  • Is it connected to a jabber server?
  • What is the ip?

Layer 2

The wireless configuration of the network can be examined using the iwconfig eth0 command. We get MAC layer information such as

  1. ESSID
    • olpc-mesh : Indicates a mesh with or without internet connectivity
  2. Mode
    • Managed : It is an Access Point(AP) configuration
    • Ad-hoc : It is a mesh configuration(no infrastracture)
  3. Frequency
    • 2.412 : Channel 1
    • 2.437 : Channel 6
    • 2.462 : Channel 11
    • Channels 1,6, 11 can be used to join a Link-local mesh
    • Channels 1, 6, 11 can also be a Schoolserver mesh (ch 1 is almost always on at OLPC offices)
    • At OLPC offices, '802.11 Media lab' AP operates on Channels 6 and 11
  4. Cell/AP Mac
    • Access Point : The AP's MAC
    • Cell : A virtual 02:xx:xx:... MAC address assigned by the some mesh points. It indicates mesh configuration

Layer 3

IP addresses

The network layer information can be observed with ifconfig. The default builtin wireless adapter provides an ethernet interface eth0, and a mesh interface msh0. Connecting additional 802.11s adapters will introduce additional pairs of eth1,eth2,.. and msh1,msh2,.. interfaces. Connecting ethernet adapters will introduce additional eth1,eth2,.. interfaces, and will provide Ethernet connectivity. In the default case(although the same applies for all) the interfaces provide the following IPv4 addresses

  • eth0
    1. Connected to an AP without NAT
      • any public address(18.85.x.x when connected to Media Lab 802.11 at OLPC offices)
    2. Connected to an AP, but behind a NAT
      • 192.168.x.x
      • 172.x.x.x
      • 10.x.x.x
    3. Connected to a switch with no gateway
      • 169.254.x.x
    4. Not connected to an AP
      • blank
  • msh0
    1. Link-local
      • 169.254.x.x
    2. Connected to an MPP
      • 169.254.x.x
    3. Connected to a School server
      • 172.x.x.x(172.18.x.x when connected to the School server in OLPC offices)
      • 192.168.x.x
      • 10.x.x.x
    4. Connected to an AP via wireless or Ethernet adapter
      • 169.254.x.x
      • none

It is interesting to note that the 169.254.x.x address when applicable are always the same by default. If no address shows in the msh0 you can

killall dhclient
dhclient           # Send DHCP request to force(if possible) to acquire a connection to a gateway

avahi-autoipd      # If no mesh gateway is available(MPP or School server) it will assign a zeroconf address(169.254.x.x)

DNS check

The most direct way to check internet connectivity is by checking the resolv.conf file. It shows if the XO is registered to a DNS server. It can be viewed with

cat /etc/resolv.conf
  1. If it is empty
    • No connection to the internet(technically, no connection to the DNS server)
  2. If it includes a nameserver with private address(172.x.x.x, 169.168.x.x,10.x.x.x)
    • Connected to an AP behind a NAT
    • Connected to an MPP, which connects to an AP behind a NAT
    • Connected to a School server(172.18.0.1 for the School server in OLPC offices, although others are also available)
  3. If it includes a nameserver with public address
    • Connected to an AP without a NAT
    • Connected to an MPP, which connects to an AP without a NAT
  4. The is a rare possibility resulting from a Network Manager failure, of an XO to have access to the internet, but the resolv.conf to be blank. In that case the XO will not be able to resolve hostnames. This possibility can be examined with
ping www.mit.edu   # No replies
ping 18.7.22.83    # Normal replies  

The general rule of thumb regarding the resolv.conf file in the lab XOs is

  • empty: Link-local
  • 172.18.x.x: Schoolserver
  • 18.85.x.x: Media lab AP

If the XO connects to a channel that includes a School server or an MPP, but for a reason there is no internet connectivity, and the resolv.conf file is empty check if it is forced in Link-local or other configuration

nano /etc/NetworkManager/mesh-start # confirm that the file is empty(if it exists)

If the problem persists you can try

killall dhclient
dhclient           # Send DHCP request to force(if possible) to acquire a routable IP

Telepathy services

The Presence Service acquires information on other XOs in the network, and provides the capability to view them in the neighborhood view, or share with them an activity. This is achieved through two child telepathy services, Salut and Gabble.

Salut

Salut runs when the XO is connected to a mesh. It uses the avahi _presence._tcp service. All XOs in the same mesh indentify themselves in the neighborhood view through Salut. They can be examined through

avahi-browse -t _presence._tcp

Jabber

Gabble will allow XOs that belong to different geographical locations to communicate with each other. It will detect internet connectivity and connect to a Jabber server. All XOs connected to the same jabber server will appear to the neighborhood view. The currently possible servers are

jabber.laptop.org
olpc.collabora.co.uk
  • By build 616 the Presence Service does not allow Gabble and Salut to run simultaneously
  • It constantly checks whether there is internet connectivity, and switches from Salut to Gabble accordingly
  • The XOs displayed in the neighborhood view either belong to the mesh, or the Jabber server, not both
  • The internet connectivity does not work very accurately. It is very common when connected to the School server, which provides connectivity, that the XO is running Salut. However, it is convenient in the sense that it can now share activities with others in the mesh.

Detecting which service is running

  • The simpler way to detect whether Salut or Gabble is running is by observing the neighborhood view. If you see XOs that you havent seen in the lab then you are probably running Gabble.
  • It can also be checked from the Developer's Console - Presence tab - Buddies list - Handles column. The entries either start with ../gabble/jabber/.. or ../salut/local-xmpp/...
  • To confirm you are running Gabble you can check the config file for the [Server](not Jabber) entry to be true. This, however, can be misleading, because the file doesnt update properly when you disconnect from the Jabber server. Thus, it usualy includes obsolete information.
$ cat /home/olpc/.sugar/default/config
...
[Server]
registered = True             # running Gabble
server = jabber.laptop.org  
  • The console provides a more efficient way of determining with confidence which service is running. The process list will include either a telepathy-salut or a telepathy-gabble process
ps ax                         # general process list
ps U olpc -f|grep telepathy   # only the required entry will be displayed
  • Which Jabber server the XO is connected(if its running Gabble) get be examined using the netstat command
netstat -tpT|grep telepathy   # the connection established by the telepathy-gabble process

Combine the tests in an automated script

All the above tests require checking many different locations and running several commands. Alternatively, you may run olpc-netstatus from the Terminal Activity or the Virtual Terminal. It will accumulate and display the following network overview directly. This is a case of an XO connected to the School server on Channel 1.

$olpc-netstatus

Model     : C2
Serial    : CSN74400049
MAC       : 00:17:C4:0C:CD:11

Build     : update.1 703
Firmware  : CL1 Q2D14 Q2D
Libertas  : 5.110.22.p1 

Nick      : W03
Uptime    : 01:12:06

IP eth0   : 172.18.0.250
IP msh0   : 169.254.5.77
DNS       : 172.18.0.1

Telepathy : gabble	
Jabber    : schoolserver.laptop.org
XOs       : 4

Essid     : olpc-mesh
Channel   : 1

School    : schoolserver.laptop.org
Config    : School Mesh

More up-to-date version of olpc-netstatus, and other useful Network tools are available at Network Resources.

Useful locations

/etc/resolv.conf                            # DNS server

/etc/dhcpd.conf                             # check whether the XO acts as an MPP

/etc/NetworkManager/mesh-start              # used to force a lower priority network configuration

/home/olpc/.sugar/default/config            # user information

/home/olpc/.sugar/default/nm/networks.cfg   # stores access points information

/var/log/messages                           # main log file

Useful Network and Mesh links

Turn on MPP Capability

Testing of Different Connection Configurations

Modify the Mesh Discovery Sequence

Mesh Forwarding Table

Wireless Driver Readme

Mesh Network Details

Mesh Network FAQ

Wireless

Establishing a Mesh Portal

Cozybit's MPP Utils