Deploy Light OLT with Containerlab
In this tutorial, you will prepare a lab with Light OLT connected to a Nokia SR OS BNG. The NETCONF proxy is optional and is only required when integrating the OLT with Nokia Altiplano.
1. Requirements
- Docker.
- Python 3.10 or newer.
- Containerlab.
- A Nokia SR-SIM image and license if you will use the example BNG.
2. Pull the base images
Pull the OLT image:
docker pull ghcr.io/abelperezr/olt-ls:0.0.1
If you will use Nokia Altiplano, also pull the NETCONF proxy:
docker pull ghcr.io/abelperezr/olt-proxy:0.0.1
3. Clone the repository
git clone https://github.com/abelperezr/olt-light.git
cd olt-light
4. Prepare the lab directory
Create the lab structure and copy the ONT inventories:
mkdir -p clab/config-bng clab/configs/license
cp -R seeds clab/
The repository contains a reference Nokia SR OS BNG configuration under examples/config-bng/. Copy it together with the example topology:
cp examples/config-bng/bng.txt clab/config-bng/
cp examples/lab.clab.yml clab/
Copy your SR-SIM license to the path expected by the topology:
cp <license-path>/SR_SIM_license.txt clab/configs/license/
Edit clab/lab.clab.yml before deploying it:
- Replace
<your-registry>/srsim:25.10.r2with your SR-SIM image name. - Change the
oltnode image fromlight-olt:devtoghcr.io/abelperezr/olt-ls:0.0.1. - Change both bind mounts from
../seeds/to./seeds/, because this tutorial places the inventories insideclab/. - If you will not use Nokia Altiplano, remove the entire
olt-proxynode from the topology.
5. Enable OLT persistence (optional)
Create the persistent directory:
mkdir -p clab/persist/olt/repo
Then uncomment this bind mount in the olt node of clab/lab.clab.yml:
- ./persist/olt/repo:/persist/repo
If you will use the proxy, also create its data directory to preserve its SSH identity between deployments:
mkdir -p clab/persist/olt-proxy/data
6. Deploy the lab
cd clab
sudo containerlab deploy -t lab.clab.yml
7. Configure the OLT
- Without Nokia Altiplano, continue with the eCLI guide.
- With Nokia Altiplano, continue with Nokia Altiplano integration.
8. Validate authenticated ONTs
Follow the onu-dhcp daemon events, replacing the placeholder with the OLT container name:
docker logs -f <olt-container-name> 2>&1 | grep onu-dhcp
For example, if the container is named olt:
docker logs -f olt 2>&1 | grep onu-dhcp
When a VSI has an enabled v-VPLS and the BNG grants an address, the log shows the selected uplink with via=v-vpls and the DHCPv4 ACK or DHCPv6 REPLY messages.