I still need your help, it seems that it's not completely solved after all...
My LAN topology can be seen here: http://guppy.mpe.nus.edu.sg/~rebsame...workConfig.png
The 3 computers on the robot need a static IP so that they can communicate together when the robot is not attached to that LAN.
For the development computers it's convenient if they receive their IP through DHCP...
So for the 3 on the robot I configured their /etc/network/interface to get a static IP 172.16.0.[1,2,3] and netmask 255.255.255.0
The router is configured as a DHCP server, it assigns IP 172.16.0.[1,2,3] to the 3 computers on the robot based on their MAC address (there is a table for that in the router config page). The development computers just get an IP via normal DHCP.
All of those computers can communicate together using SSH, we can access files remotely with FISH, and access the internet. All fine!
The weird part is that large data packets sent through UDP are lost. Small packet (<= 1468 bytes to be precise) get through. However, if the robot is configured with DHCP they no longer get lost. (it's part of our application: the robot sends data to external computer for graphical display)
So how can I fix that? Here are some of my ideas, but I don't know how to implement them:
- Configure the router properly to allow static IP and DHCP assigned IP to coexist. I am using a Linksys WRT54GC.
- Configure the robot's computers to try to get a DHCP address and if it fails, fall back to a static IP.
- Create an IP alias eth0:1 that would get its IP through DHCP, while eth0 would have a static IP.