This repository includes a library based on IPMininet and scripts to quickly emulate a Software Resolved Network (SRN).
You first need to install IPMininet and its daemons separately. The procedure is detailed in their installation guide.
You then need to clone and compile SRN.
Finally, you can install the library and its other dependencies with:
$ pip install /path/to/srnmininet/clone
We extend the following network components of IPMininet:
- IPTopo -> SRNTopo
- IPNet -> SRNNet
- Router -> SRNRouter
- IPHost -> SRNHost
- IPIntf -> SRNIntf
- Named -> SNRNamed
The IPMininet's documentation is valid for SRNMininet but every extended component has to be replaced by its extension to benefit from SRNMininet.
SRNMininet defines the following additional daemons:
- OVSDB: a daemon configuring and running an OVSDB server
- SRNOSPF6: a daemon launching an OSPF6 daemon with SRN extensions for the controller to read IGP state
- SRCtrl: the SDN controller
- SRDNSProxy: the DNS proxy that interfaces the client with the DNS server and the controller
- SRRouted: the SRN daemon that setup SRv6 policies on access routers
In most cases, you will be able to launch a SRN by only instantiating an SRCtrlDomain. The topologies SquareAxA and CompTopo are examples for that.
cfg_helper.py is a script to run an arbitrary SRN topology. test_srn.py compiles a few tests to perform on an emulated SRN.