Docker Community Forums

Share and learn in the Docker community.

Simulating a complex network

(Dclose) #1

I’m looking for advice on how to structure my project. In fact, it isn’t even clear that my project fits within the Docker concept.

I want to build a simulation of a portion of a real network of computers. That means I need to mirror the actual network structure and doing that with Docker seems to escape my understanding.

The real network portion I want to simulate consists of 100 or more identical computers, each with two network interfaces on different networks. The addresses assigned to these interfaces are provided by a DHCP server which is outside the portion of the network I want to simulate. (If necessary, I could also put it into a container, but that isn’t my desire.) There are also other computers on the network which need to communicate with the portion simulated, some through each of the two interfaces.

If I also need to provide a third interface on each container to accommodate the docker0 bridge, that would be ok. I won’t use that interface but having it shouldn’t cause any interference. However, the two interfaces I do want need to reside on subnets of the 172.17/16 network and that conflicts with Docker’s defaults. So at a minimum I would need to find a way to change the addresses assigned to the docker0 bridge.

All of the simulated computers run Linux so Docker should be able to simulate them easily. However, all the online examples seem to imply that Docker is only intended for applications, not machine simulation. Is my project even practical with Docker?

(Navigationhi) #2

I also a new docker user, so i can’t answer you about of docker.
But based on your description, as i know the linux namespace maybe hit your request.

The web example is using the veth interface binding in namespace.
if need, you also can using physical interface in namespace.
#ip netns add myhost
#ip link set enp1s0 netns myhost
#ip netns exec myhost ifconfig enp1s0 up