netarch / neo

A network testing tool combining formal model checking and container-based emulation that covers in-network non-determinism
Other
8 stars 4 forks source link

squid cache proxy middlebox integration #3

Closed xyu335 closed 4 years ago

xyu335 commented 4 years ago

The Middlebox Class where we can launch real network middle software with given configuration is important in neo. This is a first version of middlebox application implementation for squid and an experiment with squid proxy server to help showcase the ability of this project is included in examples/01-squid folder.

Work:

  1. implementation for squid middlebox is in src/mb-app/cache-proxy.*
  2. integration of this middlebox is in src/middlebox.cpp
  3. design idea of the experiment is shown in examples/01-squid/*.png
  4. the comfiguration for the experiment is in examples/01-squid/network.toml
  5. the middlebox.cpp is tested with its "init", "reset" functionality solely, not under the mb-env setting

Todo:

  1. after the mb-env is set up, the experiment can be wholely tested
  2. the iptables config loading, which is needed for the intercept proxy, related code is currently uncommented in source code.
  3. experiment has been locally manually tested with netns setup, and it could be further refined before wholely tested