{"id":16963858,"url":"https://github.com/hellt/srl-rr-demo","last_synced_at":"2026-05-19T04:04:55.415Z","repository":{"id":74018194,"uuid":"315708063","full_name":"hellt/srl-rr-demo","owner":"hellt","description":null,"archived":false,"fork":false,"pushed_at":"2020-11-25T14:08:31.000Z","size":28,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-01T12:43:41.817Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hellt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-24T17:39:10.000Z","updated_at":"2020-11-25T14:08:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"a25e268c-f395-4dca-b6a7-9ba5c545b682","html_url":"https://github.com/hellt/srl-rr-demo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hellt/srl-rr-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellt%2Fsrl-rr-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellt%2Fsrl-rr-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellt%2Fsrl-rr-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellt%2Fsrl-rr-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hellt","download_url":"https://codeload.github.com/hellt/srl-rr-demo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellt%2Fsrl-rr-demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33201542,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-18T09:27:30.708Z","status":"online","status_checked_at":"2026-05-19T02:00:06.763Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-13T23:26:22.996Z","updated_at":"2026-05-19T04:04:55.406Z","avatar_url":"https://github.com/hellt.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Container-based lab environments with containerlab\n[Containerlab](https://containerlab.srlinux.dev) provides a framework to set up networking labs with containers.\n\nWith the following procedure we demonstrate how quick and easy it is to spin up a container-based lab which consists of two Nokia SR Linux nodes and a GoBGP container that constitutes a BGP Route-Reflection feature demonstration.\n\n## Lab setup\nThe lab will be built with three components:\n\n1. Nokia SR Linux node acting as a Route Reflector (lab node name `rr`)\n2. Nokia SR Linux node acting as a Route Reflector client (lab node name `c1`)\n3. GoBGP container acting as a route originator (lab node name `c2`)\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://gitlab.com/rdodin/pics/-/wikis/uploads/37c03e42cbbc946fb955c885d25ee848/image.png\" width=50%\u003e\n\u003c/p\u003e\n\n### Install containerlab\n\nInstallation is a breeze:\n\n```\nsudo curl -sL https://get-clab.srlinux.dev | sudo bash\n```\n\n### Get the demo files\n\n```\ngit clone https://github.com/hellt/srl-rr-demo.git\n\ncd srl-rr-demo\n```\n\n\u003e Copy license.key file to the srl-rr-demo dir\n\n### Deploy a lab\n\n```\ncontainerlab deploy -t rr-lab-v2.yml\n```\n\n### Configure \u0026 start GoBGP\n\nGoBGP container doesn't have GoBGP daemon started. Start it and make a v4 announcement with the following command:\n\n```\ndocker exec -it clab-rrdemo-c2 bash lab/gobgp.sh\n```\n\n## Validate results\nAt this point you should have your lab ready. Route Reflector node should have received an update from Client2 (c2 node) and reflected it to Client1(c1 node).\nValidate this by issuing a CLI command on route reflector:\n\n```\ndocker exec -it clab-rrdemo-rr sr_cli -c \"show network-instance default protocols bgp neighbor\"\n\n--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\nBGP neighbor summary for network-instance \"default\"\nFlags: S static, D dynamic, L discovered by LLDP, B BFD enabled, - disabled, * slow\n--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n+-------------------+----------------------------+-------------------+-------+----------+----------------+----------------+--------------+----------------------------+\n|     Net-Inst      |            Peer            |       Group       | Flags | Peer-AS  |     State      |     Uptime     |   AFI/SAFI   |       [Rx/Active/Tx]       |\n+===================+============================+===================+=======+==========+================+================+==============+============================+\n| default           | 192.168.1.2                | iBGPv4            | S     | 42000000 | established    | 0d:0h:0m:4s    | ipv4-unicast | [1/1/0]                    |\n|                   |                            |                   |       | 00       |                |                |              |                            |\n| default           | 192.168.12.2               | iBGPv4            | S     | 42000000 | established    | 0d:0h:1m:27s   | ipv4-unicast | [0/0/1]                    |\n|                   |                            |                   |       | 00       |                |                |              |                            |\n+-------------------+----------------------------+-------------------+-------+----------+----------------+----------------+--------------+----------------------------+\n--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n```\n\n## Extra\nThis repo has two YAML files with SR Linux configuration snippets that can be used by `gnmic`:\n\n```bash\ngnmic -a clab-rrdemo-c1 --skip-verify \\\n      -u admin -p admin \\\n      set --update-path / --update-file c1.cfg.yml \\\n      -e json_ietf\n\ngnmic -a clab-rrdemo-rr --skip-verify \\\n      -u admin -p admin \\\n      set --update-path / --update-file rr.cfg.yml \\\n      -e json_ietf\n```\n\nThe configuration pieces in those files configure interfaces and bgp contexts of SR Linux.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellt%2Fsrl-rr-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhellt%2Fsrl-rr-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellt%2Fsrl-rr-demo/lists"}