Skip to content
Branch: master
Find file Copy path
Find file Copy path
1 contributor

Users who have contributed to this file

117 lines (84 sloc) 3.28 KB

Demo BGP Flow Spec with PyEZ


In case we have to demonstrate our capabilities automating BGP FlowSpec data handling on a route reflector BFS can be used for.

Use Cases

  • Automate handling of flow route data on the route reflector or external flow route source
  • Automate generating flow route test data on route reflector


  • Flow route actions on route reflector

    • Add new flow route
    • Modify flow route
    • Delete flow route
  • Flow route viewer

    • retrieve flow route information from RR / PE / ASBR / etc.
  • Interact with external flow route source like Arbor APS

    • send change request to flow route source
  • Test data generator

    • Generate static flow route entries on route reflector to demonstrate scale / functionality


  • Linux Box (Centos 7)
    • 1 CPU
    • 1G RAM
  • Python 2.7
  • Working internet connection
    • WebUI loads needed javascript libraries and CSS files from CDN
  • vMX
    • Tested with version 14.1R1 / 17.1R1


All steps should be done as root user.

  • Get Centos 7 box ready
  • Log into to Centos 7 box via SSH
  • Install required packages if needed (This step is only needed if we have to install a newer python version)
    • Centos 7.x should come with python 2.7.5
    • With the next steps we would install python 2.7.14 which is not needed if 2.7.5 is installed
yum install python-devel libxml2-devel libxslt-devel gcc openssl libffi-devel wget curl
yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel
  • Install python 2.7
cd /usr/src
tar xzf Python-2.7.14.tgz
cd Python-2.7.14
make altinstall
  • Install BFS Demo Tool
    • pip2.7 should be directly available if not use which pip2.7 to obtain the path to binary
git clone
cd BGP_Flowspec_automation_with_PyEZ
pip2.7 or pip install --upgrade -r requirements.txt


We need to add some information about RR and / or the edge router by editing ui/config.yml file and change the settings to fit your environment.

At least one router of type RR has to be configured

age_out_interval: 00:01:00
dev_pw: juniper123
dev_user: root
  - rt1:
      type: rr
  - rt2:
      type: asbr
  • Start bfs tool
    • Python binary should be in path if not use which python2.7 to obtain path info
    • change directory to bfs root
    • Start UI with python2.7 or python
  • Access WebUI URL <IP>:8080







You can’t perform that action at this time.