3

I started an IoT simulation project to gain better understanding of the domain.

So, I'm trying to emulate a number of IoT objects using Docker inside Vagrant.

In the Vagrant box I'm creating 100 Docker containers. Each container simulates a single IoT (is it?).

In each one of them I run a Python Flask application that exposes one endpoint that simply returns the "device" name. Additionally, one can ssh in each container.

I feel that using Docker doesn’t emulate an IoT object in the "right" way. My final goal is to emulate an IoT device (simulates all of the hardware if possible).

My questions:

  • Is Docker a good way to simulate IoT (examples)?

  • Are there any resources for IoT emulation with Docker?

  • 1
    What's the goal of your emulation? Do you want to test, for example, how a server would handle the load of many devices connecting to it, or how your devices would network together? Having a specific purpose for your simulations might help you to get where you want to be more quickly. – Aurora0001 Jun 10 '18 at 13:11
  • 1
    @Aurora0001 What I actually want, is to emulate various types IoT devices (thermostats, thermometers etc) without having the actual hardware. From there I want to capture the network traffic inside of each one of them. – user6592 Jun 10 '18 at 14:20
  • 3
    Yes, but what is the end goal of the experiment? You need to have a plan of something measurable you want to test before you start to even think about how to go about doing it. – hardillb Jun 10 '18 at 14:23
  • 1
    @hardillb My end goal is to see how secure IoT could be against cyber attacks (botnets etc). – user6592 Jun 10 '18 at 14:35
  • 2
    Our experience with Docker is that the network stack is limited in the ability to add IP addresses to the system. There might be an advanced network plugin, but we have not figured it out. You might not need a different IP address per thing if you are simulating things behind NAT gateways, but if you do, Docker might not be enough. – Gambit Support Jun 11 '18 at 15:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy