{"id":23975702,"url":"https://github.com/vladimirs-git/docker_bird_bgp","last_synced_at":"2026-06-12T06:31:40.410Z","repository":{"id":55764582,"uuid":"522315008","full_name":"vladimirs-git/docker_bird_bgp","owner":"vladimirs-git","description":"BGP routing examples based on BIRD and docker","archived":false,"fork":false,"pushed_at":"2022-08-10T10:19:23.000Z","size":82,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-24T17:15:50.299Z","etag":null,"topics":["bgp","bird","docker","networking"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vladimirs-git.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-08-07T20:17:10.000Z","updated_at":"2024-10-23T22:13:56.000Z","dependencies_parsed_at":"2022-08-15T06:50:35.463Z","dependency_job_id":null,"html_url":"https://github.com/vladimirs-git/docker_bird_bgp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vladimirs-git/docker_bird_bgp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladimirs-git%2Fdocker_bird_bgp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladimirs-git%2Fdocker_bird_bgp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladimirs-git%2Fdocker_bird_bgp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladimirs-git%2Fdocker_bird_bgp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vladimirs-git","download_url":"https://codeload.github.com/vladimirs-git/docker_bird_bgp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladimirs-git%2Fdocker_bird_bgp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34232789,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"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":["bgp","bird","docker","networking"],"created_at":"2025-01-07T06:50:22.754Z","updated_at":"2026-06-12T06:31:40.393Z","avatar_url":"https://github.com/vladimirs-git.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"docker_bird_bgp\n===============\n\nBGP routing examples based on `BIRD`_ and `docker`_.\nThis repository contains 2 examples (simple and advanced) that help you understand how BIRD flies.\nFeel free to change the configs, enjoy the game.\n\n.. contents::\n\n.. sectnum::\n\n\nDownload sandbox\n----------------\n\n.. code:: bash\n\n    git clone https://github.com/vladimirs-git/docker_bird_bgp.git\n    cd docker_bird_bgp\n\n\nSimple config1\n--------------\n|diagram1|\n\n\nBIRD configs\n............\n\nrouter1\n\n.. code-block::\n\n    router id 10.0.0.1;\n\n    protocol kernel {\n      metric 0;\n      import none;\n      learn;\n      export all;\n    }\n\n    protocol device {\n    }\n\n    protocol direct {\n    }\n\n    protocol bgp router2 {\n      local as 65001;\n      neighbor 10.1.2.102 as 65002;\n      import all;\n      export all;\n    }\n\nrouter2\n\n.. code-block::\n\n    router id 10.0.0.2;\n\n    protocol kernel {\n      metric 0;\n      import none;\n      learn;\n      export all;\n    }\n\n    protocol device {\n    }\n\n    protocol direct {\n    }\n\n    protocol bgp router1 {\n      local as 65002;\n      neighbor 10.1.2.101 as 65001;\n      import all;\n      export all;\n    }\n\n\nSimilar Cisco configs\n.....................\n\nrouter1\n\n.. code-block::\n\n    router bgp 65001\n     bgp router-id 10.0.0.1\n     neighbor 10.1.2.102 remote-as 65002\n     !\n     address-family ipv4\n      neighbor 10.1.2.102 activate\n\n    router2\n\n.. code-block::\n\n    router bgp 65002\n     bgp router-id 10.0.0.2\n     neighbor 10.1.2.101 remote-as 65001\n     !\n     address-family ipv4\n      neighbor 10.1.2.101 activate\n\n\nDockers\n.......\n\nDockers up\n\n.. code:: bash\n\n    docker-compose -f docker-compose1.yml up -d\n\nBIRD show output\n\n.. code-block::\n\n    docker-compose -f docker-compose1.yml exec router1 bash\n\n    root@router1:/# birdc\n    BIRD 1.6.6 ready.\n\n    bird\u003e show protocol \n    name     proto    table    state  since       info\n    kernel1  Kernel   master   up     19:59:57\n    device1  Device   master   up     19:59:57\n    direct1  Direct   master   up     19:59:57\n    router2  BGP      master   up     20:00:01    Established\n    \n    bird\u003e show route\n    10.1.11.0/24       dev eth0 [direct1 19:59:57] * (240)\n    10.2.11.0/24       via 10.1.2.102 on eth1 [router2 20:00:01] * (100) [AS65002i]\n    10.1.2.0/24        dev eth1 [direct1 19:59:57] * (240)\n                       via 10.1.2.102 on eth1 [router2 20:00:01] (100) [AS65002i]\n\n    bird\u003e exit\n    root@router1:/# exit\n\nDockers down\n\n.. code:: bash\n\n    docker-compose -f docker-compose1.yml down\n\n\nAdvanced config2\n----------------\n|diagram2|\n\nBIRD configs\n............\nTODO documentation\n\nSimilar Cisco configs\n.....................\nTODO documentation\n\nDockers\n.......\n\nDockers up\n\n.. code:: bash\n\n    docker-compose -f docker-compose2.yml up -d\n\nBIRD show output\n\n.. code-block::\n\n    docker-compose -f docker-compose2.yml exec router1 bash\n\n    root@router1:/# birdc\n    BIRD 1.6.6 ready.\n\n    bird\u003e show protocol\n    name     proto    table    state  since       info\n    kernel1  Kernel   master   up     20:01:24\n    device1  Device   master   up     20:01:24\n    direct1  Direct   master   up     20:01:24\n    router2  BGP      master   up     20:01:28    Established\n    router3  BGP      master   up     20:01:28    Established\n    router4  BGP      master   up     20:01:27    Established\n\n    bird\u003e show route\n    0.0.0.0/0          via 10.1.4.104 on eth3 [router4 20:01:26] ! (100) [AS65004i]\n                       via 10.1.2.102 on eth1 [router2 20:01:27] (100) [AS65004i]\n                       via 10.1.3.103 on eth2 [router3 20:01:27] (100) [AS65004i]\n    10.1.11.0/24       dev eth0 [direct1 20:01:23] * (240)\n    10.0.0.0/8         via 10.1.2.102 on eth1 [router2 20:01:27] * (100) [AS65004i]\n                       via 10.1.3.103 on eth2 [router3 20:01:27] (100) [AS65004i]\n                       via 10.1.4.104 on eth3 [router4 20:01:26] (100) [AS65004i]\n    10.1.4.0/24        dev eth3 [direct1 20:01:23] * (240)\n    10.1.2.0/24        dev eth1 [direct1 20:01:23] * (240)\n    10.1.3.0/24        dev eth2 [direct1 20:01:23] * (240)\n\n    bird\u003e show route all where net = 10.0.0.0/8\n    10.0.0.0/8         via 10.1.2.102 on eth1 [router2 20:01:27] * (100) [AS65004i]\n            Type: BGP unicast univ\n            BGP.origin: IGP\n            BGP.as_path: 65002 65004\n            BGP.next_hop: 10.1.2.102\n            BGP.local_pref: 100\n            BGP.community: (65004,2)\n                       via 10.1.3.103 on eth2 [router3 20:01:27] (100) [AS65004i]\n            Type: BGP unicast univ\n            BGP.origin: IGP\n            BGP.as_path: 65002 65004\n            BGP.next_hop: 10.1.3.103\n            BGP.local_pref: 100\n            BGP.community: (65004,2)\n                       via 10.1.4.104 on eth3 [router4 20:01:26] (100) [AS65004i]\n            Type: BGP unicast univ\n            BGP.origin: IGP\n            BGP.as_path: 65004 65004 65004\n            BGP.next_hop: 10.1.4.104\n            BGP.local_pref: 100\n\n    bird\u003e show route protocol router4\n    0.0.0.0/0          via 10.1.4.104 on eth3 [router4 20:01:26] ! (100) [AS65004i]\n    10.0.0.0/8         via 10.1.4.104 on eth3 [router4 20:01:26] (100) [AS65004i]\n\n    bird\u003e show route export router4\n    10.1.11.0/24       dev eth0 [direct1 20:01:24] * (240)\n\n    bird\u003e exit\n    root@router1:/# exit\n\nDockers down\n\n.. code:: bash\n\n    docker-compose -f docker-compose2.yml down\n\n\n.. _`BIRD`: https://bird.network.cz/\n.. _`docker`: https://www.docker.com/\n\n.. |diagram1| image:: docs/diagram1.png\n  :width: 600\n  :alt: Simple config\n\n.. |diagram2| image:: docs/diagram2.png\n  :width: 800\n  :alt: Advanced config\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvladimirs-git%2Fdocker_bird_bgp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvladimirs-git%2Fdocker_bird_bgp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvladimirs-git%2Fdocker_bird_bgp/lists"}