DHCP Server with more customization

I am looking to use the navigator board to bridge communications between the radio and the local network of the blue boat that I am using. In the past using a front seat / backseat model this has looked like setting up a DHCP server on the front seat (Navigator in this case) and bridging the network interface running the server and the network interface connected to the radio. Is there a “proper” way to do this on a blue boat running blue os? The DHCP settings seem to just be on / off and the ip address. What is the best way to edit network settings if I need full customization? (ip ranges, port forwarding rules etc)

Thanks!

Hi @jwenger -
Happy to help. Can you elaborate further on what you’re trying to set up in terms of communications for your application? What devices are being used, and how do they need to pass data around?

The Raspberry Pi that hosts the Navigator (the Navigator does 0 things related to networking) can be configured in BlueOs to act as a DHCP server as you mention. Bridging network interfaces should not be required? If you connect your radio and it receives a DHCP address on the 192.168.2.X subnet, it will be able to communicate with BlueOS… generally things like port forwarding aren’t required, especially if you’re using ZeroTier!

This is a quick sketch of the network topography we would like to use. We have dozens payload boxes each with a raspberry pi in it which expects to be assigned an ip address of 192.168.xx.100 where the xx serves as a vehicle identification number. This system allows for the payload box to be switched onto any vehicle for flexible testing. In this configuration we would hope that from the base station computer we would be able to ssh into the backseat raspberry pi and run our mission. The payload computer then spins up several processes that communicate via UDP with the base station. In this case the doodle labs radio operates in a “hidden” mode where the navigator is essentially hard wired into the main network. For our purposes the Payload computer needs access to this main network (communicating with the base station as well as getting access to the internet) and access to the mavlink2rest to enable vehicle control.

A walkthrough of an existing system can be found here:

Hi @jwenger -
From a simplicity standpoint, I really dislike seeing extra computers integrated for Autonomy - BlueOS, running on the Pi with Navigator is designed to make running your own code for autonomy (or whatever purpose) onboard, in parallel with everything else as easy as possible! A MOOS extension for BlueOS may be quite popular…

Generally, changing the subnet of each of your devices also strikes me as quite strange - could you make the last three digits of your IP reflect the vehicle ID #? This would greatly simplify your networking, potentially…

You could assign multiple static IP addresses in BlueOS for the Ethernet interface, and in this way reach multiple subnets from that device. I assume you have a network switch, and aren’t trying to connect additional computers to the Pi with Navigator via a USB to ethernet connection!

The additional computer and the subnet modification are a hard requirement in order for blue boats to integrate into our lab. The network topography of this specific setup and the years of development that have gone into it will not support an address overhaul. There is an ethernet switch on the boat but when running a local DHCP server it is often best to have the downstream devices on a different network interface. I had in the past experimented with a MOOS extension for BlueOS but ran into several networking issues with the layers of docker containers. I would love to rehash making that extension but I need to get the rest of the supporting infrastructure in place such that I know it will actually serve our purposes. Essentially the moos extension would serve as an ardupilot / mavlink wrapper and act as the broker between the two systems but that would only be one app in a MOOS community.

Hi @jwenger -
It’s a shame Moos has such strange network topology requirements! To manually manage networking in BlueOS, you’ll need to disable the cable-guy process in BlueOS, to then manage networking yourself in linux. You could also make adjustments to the cable-guy DHCP range - that’s hardcoded here.