Closed Shivansh20128 closed 1 week ago
Vegvisir is designed to run all its entities on the same host. Achieving your goal will require some fiddling around with code and routes.
Suppose only the client can coexist with the shaper. In that case, you will need to adjust the codebase such that all traffic flowing between the server and shaper gets redirected to your server machine (similar to how we provide CLI and container support for the client). To avoid having to change too much in the codebase, you could spin up a dummy server on the machine running Vegvisir. This method, however, has no built-in way of spinning up or down the server automatically, so you would need to do this manually or make it so that the server machine is available during the whole experiment.
I went through the code to understand the flow of vegvisir. From what I understood, if I make changes in the docker-compose file, like adding a new docker overlay network that will allow containers from different hosts to join (with the help of a docker swarm), and accordingly change the networks for client and server, I can run vegvisir with client and server on different systems. I am doing this in connection with the project cross that boundary. But first, I want to ask you if you think this would work. Another question that I have about the docker-compose file is that there are many services running, like sim (which I think is the shaper service), server, client, tcpdump_leftnet, tcpdump_rightnet, iperf_client, iperf_server, and networks. Could you say a line or two about each of them? Because I need to understand what they refer to before changing them.
I went through the code to understand the flow of vegvisir. From what I understood, if I make changes in the docker-compose file, like adding a new docker overlay network that will allow containers from different hosts to join (with the help of a docker swarm), and accordingly change the networks for client and server, I can run vegvisir with client and server on different systems. I am doing this in connection with the project cross that boundary.
As long as your changes cause traffic to flow over the shaper, you achieve the same goal Vegvisir has.
But first, I want to ask you if you think this would work. Another question that I have about the docker-compose file is that there are many services running, like sim (which I think is the shaper service), server, client, tcpdump_leftnet, tcpdump_rightnet, iperf_client, iperf_server, and networks. Could you say a line or two about each of them? Because I need to understand what they refer to before changing them.
server
hosts the server softwareclient
hosts the client softwaresim
hosts the shaper softwaretcpdump_leftnet
and tcpdump_rightnet
are containers that copy the network stack from sim
to monitor traffic flowing between the left- and rightnet; as per the docs, these will not work in a Docker Swarm deploymentiperf_client
and iperf_server
are remains from the QIR and (currently) unused
Hi, I am doing an experiment in which I need to use the setup for the client-shaper-server, where the client and the server need to be on a separate system (the client and the shaper can coexist on the same system). While going through the scripts inside the repository, I found a file (tc-netem-shaper/scenarios/bba_buffering_paper.sh) where the interfaces and the IPs are mentioned for the network simulation. Please advise if it is possible to do so by making some changes to the existing setup configuration and provide some helpful information to achieve that. Thank You