The script is proposed to deploy a network topology drawn in draw.io using containerized FRR as routers. The script uses Docker file creates docker-compose file and container configuration file (frr/docker-start).
A mapping between draw.io and docker objects is depicted on the figure below: You can use any shapes for router and broadcast networks. IPv4 subnets are supported right now only. You can use prefix length <= /29 since docker host uses one address from each subnet.
- Clone the repo
git clone https://github.com/alekshi/topology_builder.git
cd topology_builder/
- Draw a network diagram using draw.io and export to xml (without compressing)
- To use MPLS with Linux kernel, load additional modules:
modprobe mpls_router
modprobe mpls_gso
modprobe mpls_iptunnel
- Lanuch topology_builder.py to create docker-compose file and frr/docker-start file
./topology_builder.py -f <XML topology file path>
Default settings include:
- Ellipse as router
- Rectangle as broadcast network
- All FRR daemons are enable
- MPLS is disable
Use
--help
to see all options
- Launch docker-compose file to create topology
docker-compose up -d
- Check ports what are exposed for ssh connection using
docker container ls
By default 2000+ ports are used for ssh and root/root credentials.