├── .gitignore ├── LICENSE ├── README.md ├── cdcn-cover.jpeg ├── dual-attach-topo.png ├── single-attach-topo.png └── topologies ├── dual-attach ├── Vagrantfile ├── Vagrantfile-kvm ├── Vagrantfile-vbox ├── bgp │ ├── ansible.cfg │ ├── config-files │ │ ├── docker │ │ │ ├── edge01 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ ├── frr.service │ │ │ │ └── interfaces │ │ │ ├── exit01 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── exit02 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── internet │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── leaf01 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── leaf02 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── leaf03 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── leaf04 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── server101 │ │ │ │ ├── 99-frr.conf │ │ │ │ ├── daemon.json │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── server102 │ │ │ │ ├── 99-frr.conf │ │ │ │ ├── daemon.json │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ ├── interfaces │ │ │ │ └── server02 │ │ │ │ │ └── interfaces │ │ │ ├── server103 │ │ │ │ ├── 99-frr.conf │ │ │ │ ├── daemon.json │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── server104 │ │ │ │ ├── 99-frr.conf │ │ │ │ ├── daemon.json │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── spine01 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ └── spine02 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ ├── numbered │ │ │ ├── edge01 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ ├── frr.service │ │ │ │ └── interfaces │ │ │ ├── exit01 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── exit02 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── internet │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── leaf01 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── leaf02 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── leaf03 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── leaf04 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── server101 │ │ │ │ └── interfaces │ │ │ ├── server102 │ │ │ │ └── interfaces │ │ │ ├── server103 │ │ │ │ └── interfaces │ │ │ ├── server104 │ │ │ │ └── interfaces │ │ │ ├── spine01 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ └── spine02 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ └── unnumbered │ │ │ ├── edge01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ ├── frr.service │ │ │ └── interfaces │ │ │ ├── exit01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ │ ├── exit02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ │ ├── internet │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ │ ├── leaf01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ │ ├── leaf02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ │ ├── leaf03 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ │ ├── leaf04 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ │ ├── server101 │ │ │ └── interfaces │ │ │ ├── server102 │ │ │ ├── interfaces │ │ │ └── server02 │ │ │ │ └── interfaces │ │ │ ├── server103 │ │ │ └── interfaces │ │ │ ├── server104 │ │ │ └── interfaces │ │ │ ├── spine01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ │ └── spine02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ ├── deploy.yml │ ├── group_vars │ │ └── all │ ├── ping.yml │ ├── reset-files │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ ├── reset.yml │ └── roles │ │ ├── add-mgmt-vrf │ │ └── tasks │ │ │ └── main.yml │ │ ├── copy-int-reboot-servers │ │ └── tasks │ │ │ └── main.yml │ │ ├── copy_frr_daemons │ │ └── tasks │ │ │ └── main.yml │ │ ├── copy_interfaces │ │ └── tasks │ │ │ └── main.yml │ │ ├── enable_ipv6 │ │ └── tasks │ │ │ └── main.yml │ │ ├── install_docker │ │ └── tasks │ │ │ └── main.yml │ │ ├── install_frr │ │ └── tasks │ │ │ └── main.yml │ │ ├── install_frr_service │ │ └── tasks │ │ │ └── main.yml │ │ ├── mv_ntp_mgmt_vrf │ │ └── tasks │ │ │ └── main.yml │ │ ├── pingtest │ │ ├── tasks │ │ │ └── main.yml │ │ └── vars │ │ │ └── main.yml │ │ └── restart_switches │ │ └── tasks │ │ └── main.yml ├── dummy.yml ├── evpn │ ├── ansible.cfg │ ├── config-files │ │ ├── centralized │ │ │ ├── edge01 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ ├── frr.service │ │ │ │ └── interfaces │ │ │ ├── exit01 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── exit02 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── internet │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── leaf01 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── leaf02 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── leaf03 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── leaf04 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── server101 │ │ │ │ ├── daemons │ │ │ │ └── interfaces │ │ │ ├── server102 │ │ │ │ ├── daemons │ │ │ │ └── interfaces │ │ │ ├── server103 │ │ │ │ ├── daemons │ │ │ │ └── interfaces │ │ │ ├── server104 │ │ │ │ ├── daemons │ │ │ │ └── interfaces │ │ │ ├── spine01 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ └── spine02 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ ├── distributed │ │ │ ├── edge01 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ ├── frr.service │ │ │ │ └── interfaces │ │ │ ├── exit01 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── exit02 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── internet │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── leaf01 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── leaf02 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── leaf03 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── leaf04 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ ├── server101 │ │ │ │ ├── daemons │ │ │ │ └── interfaces │ │ │ ├── server102 │ │ │ │ ├── daemons │ │ │ │ └── interfaces │ │ │ ├── server103 │ │ │ │ ├── daemons │ │ │ │ └── interfaces │ │ │ ├── server104 │ │ │ │ ├── daemons │ │ │ │ └── interfaces │ │ │ ├── spine01 │ │ │ │ ├── #interfaces# │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ │ └── spine02 │ │ │ │ ├── daemons │ │ │ │ ├── frr.conf │ │ │ │ └── interfaces │ │ └── ospf-ibgp │ │ │ ├── edge01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ ├── frr.service │ │ │ └── interfaces │ │ │ ├── exit01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ │ ├── exit02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ │ ├── internet │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ │ ├── leaf01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ ├── interfaces │ │ │ └── leaf01 │ │ │ │ └── etc │ │ │ │ └── frr │ │ │ │ └── frr.conf │ │ │ ├── leaf02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ │ ├── leaf03 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ │ ├── leaf04 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ │ ├── server101 │ │ │ ├── daemons │ │ │ └── interfaces │ │ │ ├── server102 │ │ │ ├── daemons │ │ │ └── interfaces │ │ │ ├── server103 │ │ │ ├── daemons │ │ │ └── interfaces │ │ │ ├── server104 │ │ │ ├── daemons │ │ │ └── interfaces │ │ │ ├── spine01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ │ └── spine02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ ├── deploy.yml │ ├── group_vars │ │ └── all │ ├── ping.yml │ ├── reset-files │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ ├── reset.yml │ └── roles │ │ ├── add-mgmt-vrf │ │ └── tasks │ │ │ └── main.yml │ │ ├── copy-int-reboot-servers │ │ └── tasks │ │ │ └── main.yml │ │ ├── copy_frr_daemons │ │ └── tasks │ │ │ └── main.yml │ │ ├── copy_interfaces │ │ └── tasks │ │ │ └── main.yml │ │ ├── enable_ipv6 │ │ └── tasks │ │ │ └── main.yml │ │ ├── install_docker │ │ └── tasks │ │ │ └── main.yml │ │ ├── install_frr │ │ └── tasks │ │ │ └── main.yml │ │ ├── install_frr_service │ │ └── tasks │ │ │ └── main.yml │ │ ├── mv_ntp_mgmt_vrf │ │ └── tasks │ │ │ └── main.yml │ │ ├── pingtest │ │ ├── tasks │ │ │ └── main.yml │ │ └── vars │ │ │ └── main.yml │ │ └── restart_switches │ │ └── tasks │ │ └── main.yml ├── helper_scripts │ └── config_edge.sh └── ospf │ ├── ansible.cfg │ ├── config-files │ ├── docker │ │ ├── exit01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── exit02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── leaf01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── leaf02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── leaf03 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── leaf04 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── server101 │ │ │ ├── 99-frr.conf │ │ │ ├── daemon.json │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── server102 │ │ │ ├── 99-frr.conf │ │ │ ├── daemon.json │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── server103 │ │ │ ├── 99-frr.conf │ │ │ ├── daemon.json │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── server104 │ │ │ ├── 99-frr.conf │ │ │ ├── daemon.json │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── spine01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ └── spine02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ ├── numbered │ │ ├── edge01 │ │ │ └── daemons │ │ ├── exit01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── exit02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── internet │ │ │ └── daemons │ │ ├── leaf01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── leaf02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── leaf03 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── leaf04 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── server101 │ │ │ └── interfaces │ │ ├── server102 │ │ │ └── interfaces │ │ ├── server103 │ │ │ └── interfaces │ │ ├── server104 │ │ │ └── interfaces │ │ ├── spine01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ └── spine02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ └── unnumbered │ │ ├── edge01 │ │ └── daemons │ │ ├── exit01 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ │ ├── exit02 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ │ ├── internet │ │ └── daemons │ │ ├── leaf01 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ │ ├── leaf02 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ │ ├── leaf03 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ │ ├── leaf04 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ │ ├── server101 │ │ └── interfaces │ │ ├── server102 │ │ ├── interfaces │ │ └── server02 │ │ │ └── interfaces │ │ ├── server103 │ │ └── interfaces │ │ ├── server104 │ │ └── interfaces │ │ ├── spine01 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ │ └── spine02 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ ├── deploy.yml │ ├── fetch.yml │ ├── group_vars │ └── all │ ├── ping.yml │ ├── reset-files │ ├── daemons │ ├── frr.conf │ └── interfaces │ ├── reset.yml │ └── roles │ ├── add-mgmt-vrf │ └── tasks │ │ └── main.yml │ ├── copy-int-reboot-servers │ └── tasks │ │ └── main.yml │ ├── copy_frr_daemons │ └── tasks │ │ └── main.yml │ ├── copy_interfaces │ └── tasks │ │ └── main.yml │ ├── enable_ipv6 │ └── tasks │ │ └── main.yml │ ├── install_docker │ └── tasks │ │ └── main.yml │ ├── install_frr │ └── tasks │ │ └── main.yml │ ├── mv_ntp_mgmt_vrf │ └── tasks │ │ └── main.yml │ ├── pingtest │ ├── tasks │ │ └── main.yml │ └── vars │ │ └── main.yml │ └── restart_switches │ └── tasks │ └── main.yml └── single-attach ├── Vagrantfile ├── Vagrantfile-kvm ├── Vagrantfile-vbox ├── bgp ├── ansible.cfg ├── config-files │ ├── docker │ │ ├── edge01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── exit01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── exit02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── internet │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── leaf01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── leaf02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── leaf03 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── leaf04 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── server101 │ │ │ ├── 99-frr.conf │ │ │ ├── daemon.json │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── server102 │ │ │ ├── 99-frr.conf │ │ │ ├── daemon.json │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ ├── interfaces │ │ │ └── server02 │ │ │ │ └── interfaces │ │ ├── server103 │ │ │ ├── 99-frr.conf │ │ │ ├── daemon.json │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── server104 │ │ │ ├── 99-frr.conf │ │ │ ├── daemon.json │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── spine01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── spine02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ └── unnumbered │ │ │ ├── edge01 │ │ │ └── daemons │ │ │ ├── exit01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ │ ├── exit02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ │ ├── internet │ │ │ └── daemons │ │ │ ├── leaf01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ │ ├── leaf02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ │ ├── leaf03 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ │ ├── leaf04 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ │ ├── server101 │ │ │ └── interfaces │ │ │ ├── server102 │ │ │ ├── interfaces │ │ │ └── server02 │ │ │ │ └── interfaces │ │ │ ├── server103 │ │ │ └── interfaces │ │ │ ├── server104 │ │ │ └── interfaces │ │ │ ├── spine01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ │ └── spine02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ ├── numbered │ │ ├── edge01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── exit01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── exit02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── internet │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── leaf01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── leaf02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── leaf03 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── leaf04 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── server101 │ │ │ └── interfaces │ │ ├── server102 │ │ │ └── interfaces │ │ ├── server103 │ │ │ └── interfaces │ │ ├── server104 │ │ │ └── interfaces │ │ ├── spine01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ └── spine02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ └── unnumbered │ │ ├── edge01 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ │ ├── exit01 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ │ ├── exit02 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ │ ├── internet │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ │ ├── leaf01 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ │ ├── leaf02 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ │ ├── leaf03 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ │ ├── leaf04 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ │ ├── server101 │ │ └── interfaces │ │ ├── server102 │ │ ├── interfaces │ │ └── server02 │ │ │ └── interfaces │ │ ├── server103 │ │ └── interfaces │ │ ├── server104 │ │ └── interfaces │ │ ├── spine01 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ │ └── spine02 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces ├── deploy.yml ├── dummy.yml ├── fetch.yml ├── group_vars │ └── all ├── ping.yml ├── reset-files │ ├── daemons │ ├── frr.conf │ └── interfaces ├── reset.yml └── roles │ ├── add-mgmt-vrf │ └── tasks │ │ └── main.yml │ ├── copy-int-reboot-servers │ └── tasks │ │ └── main.yml │ ├── copy_frr_daemons │ └── tasks │ │ └── main.yml │ ├── copy_interfaces │ └── tasks │ │ └── main.yml │ ├── enable_ipv6 │ └── tasks │ │ └── main.yml │ ├── install_docker │ └── tasks │ │ └── main.yml │ ├── install_frr │ └── tasks │ │ └── main.yml │ ├── mv_ntp_mgmt_vrf │ └── tasks │ │ └── main.yml │ ├── pingtest │ ├── tasks │ │ └── main.yml │ └── vars │ │ └── main.yml │ └── restart_switches │ └── tasks │ └── main.yml ├── dummy.yml ├── evpn ├── ansible.cfg ├── config-files │ ├── centralized │ │ ├── edge01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── exit01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── exit02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── internet │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── leaf01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── leaf02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── leaf03 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── leaf04 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── server101 │ │ │ ├── daemons │ │ │ └── interfaces │ │ ├── server102 │ │ │ ├── daemons │ │ │ └── interfaces │ │ ├── server103 │ │ │ ├── daemons │ │ │ └── interfaces │ │ ├── server104 │ │ │ ├── daemons │ │ │ └── interfaces │ │ ├── spine01 │ │ │ ├── #interfaces# │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ └── spine02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ ├── distributed │ │ ├── edge01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── exit01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── exit02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── internet │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── leaf01 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── leaf02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── leaf03 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── leaf04 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ ├── server101 │ │ │ ├── daemons │ │ │ └── interfaces │ │ ├── server102 │ │ │ ├── daemons │ │ │ └── interfaces │ │ ├── server103 │ │ │ ├── daemons │ │ │ └── interfaces │ │ ├── server104 │ │ │ ├── daemons │ │ │ └── interfaces │ │ ├── spine01 │ │ │ ├── #interfaces# │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ │ └── spine02 │ │ │ ├── daemons │ │ │ ├── frr.conf │ │ │ └── interfaces │ └── ospf-ibgp │ │ ├── edge01 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ │ ├── exit01 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ │ ├── exit02 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ │ ├── internet │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ │ ├── leaf01 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ │ ├── leaf02 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ │ ├── leaf03 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ │ ├── leaf04 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ │ ├── server101 │ │ └── interfaces │ │ ├── server102 │ │ └── interfaces │ │ ├── server103 │ │ └── interfaces │ │ ├── server104 │ │ └── interfaces │ │ ├── spine01 │ │ ├── #interfaces# │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ │ └── spine02 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces ├── deploy.yml ├── group_vars │ └── all ├── ping.yml ├── reset-files │ ├── daemons │ ├── frr.conf │ └── interfaces ├── reset.yml └── roles │ ├── add-mgmt-vrf │ └── tasks │ │ └── main.yml │ ├── copy-int-reboot-servers │ └── tasks │ │ └── main.yml │ ├── copy_frr_daemons │ └── tasks │ │ └── main.yml │ ├── copy_interfaces │ └── tasks │ │ └── main.yml │ ├── enable_ipv6 │ └── tasks │ │ └── main.yml │ ├── install_docker │ └── tasks │ │ └── main.yml │ ├── install_frr │ └── tasks │ │ └── main.yml │ ├── mv_ntp_mgmt_vrf │ └── tasks │ │ └── main.yml │ ├── pingtest │ ├── tasks │ │ └── main.yml │ └── vars │ │ └── main.yml │ └── restart_switches │ └── tasks │ └── main.yml ├── helper_scripts └── config_edge.sh └── ospf ├── ansible.cfg ├── config-files ├── docker │ ├── exit01 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ ├── exit02 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ ├── leaf01 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ ├── leaf02 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ ├── leaf03 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ ├── leaf04 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ ├── server101 │ │ ├── 99-frr.conf │ │ ├── daemon.json │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ ├── server102 │ │ ├── 99-frr.conf │ │ ├── daemon.json │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ ├── server103 │ │ ├── 99-frr.conf │ │ ├── daemon.json │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ ├── server104 │ │ ├── 99-frr.conf │ │ ├── daemon.json │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ ├── spine01 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ └── spine02 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces ├── numbered │ ├── edge01 │ │ └── daemons │ ├── exit01 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ ├── exit02 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ ├── internet │ │ └── daemons │ ├── leaf01 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ ├── leaf02 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ ├── leaf03 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ ├── leaf04 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ ├── server101 │ │ └── interfaces │ ├── server102 │ │ └── interfaces │ ├── server103 │ │ └── interfaces │ ├── server104 │ │ └── interfaces │ ├── spine01 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces │ └── spine02 │ │ ├── daemons │ │ ├── frr.conf │ │ └── interfaces └── unnumbered │ ├── edge01 │ └── daemons │ ├── exit01 │ ├── daemons │ ├── frr.conf │ └── interfaces │ ├── exit02 │ ├── daemons │ ├── frr.conf │ └── interfaces │ ├── internet │ └── daemons │ ├── leaf01 │ ├── daemons │ ├── frr.conf │ └── interfaces │ ├── leaf02 │ ├── daemons │ ├── frr.conf │ └── interfaces │ ├── leaf03 │ ├── daemons │ ├── frr.conf │ └── interfaces │ ├── leaf04 │ ├── daemons │ ├── frr.conf │ └── interfaces │ ├── server101 │ └── interfaces │ ├── server102 │ ├── interfaces │ └── server02 │ │ └── interfaces │ ├── server103 │ └── interfaces │ ├── server104 │ └── interfaces │ ├── spine01 │ ├── daemons │ ├── frr.conf │ └── interfaces │ └── spine02 │ ├── daemons │ ├── frr.conf │ └── interfaces ├── deploy.yml ├── dummy.yml ├── fetch.yml ├── group_vars └── all ├── ping.yml ├── reset-files ├── daemons ├── frr.conf └── interfaces ├── reset.yml └── roles ├── add-mgmt-vrf └── tasks │ └── main.yml ├── copy-int-reboot-servers └── tasks │ └── main.yml ├── copy_frr_daemons └── tasks │ └── main.yml ├── copy_interfaces └── tasks │ └── main.yml ├── enable_ipv6 └── tasks │ └── main.yml ├── install_docker └── tasks │ └── main.yml ├── install_frr └── tasks │ └── main.yml ├── mv_ntp_mgmt_vrf └── tasks │ └── main.yml ├── pingtest ├── tasks │ └── main.yml └── vars │ └── main.yml └── restart_switches └── tasks └── main.yml /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | .vagrant 3 | -------------------------------------------------------------------------------- /cdcn-cover.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netenglabs/cloud-native-data-center-networking/0095b0d3687c755fde020e75908b063063ff7050/cdcn-cover.jpeg -------------------------------------------------------------------------------- /dual-attach-topo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netenglabs/cloud-native-data-center-networking/0095b0d3687c755fde020e75908b063063ff7050/dual-attach-topo.png -------------------------------------------------------------------------------- /single-attach-topo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netenglabs/cloud-native-data-center-networking/0095b0d3687c755fde020e75908b063063ff7050/single-attach-topo.png -------------------------------------------------------------------------------- /topologies/dual-attach/Vagrantfile: -------------------------------------------------------------------------------- 1 | Vagrantfile-kvm -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/ansible.cfg: -------------------------------------------------------------------------------- 1 | [defaults] 2 | inventory = ../.vagrant/provisioners/ansible/inventory/ 3 | host_key_checking=False 4 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/edge01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/edge01/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet static 3 | address 10.0.0.100/32 4 | 5 | auto eth0 6 | iface eth0 inet dhcp 7 | 8 | auto eth1 9 | iface eth1 inet manual 10 | 11 | auto eth1.2 12 | iface eth1.2 inet static 13 | address 169.254.254.2/30 14 | 15 | auto eth1.4 16 | iface eth1.4 inet static 17 | address 169.254.254.10/30 18 | 19 | auto eth2 20 | iface eth2 inet manual 21 | 22 | auto eth2.2 23 | iface eth2.2 inet static 24 | address 169.254.253.2/30 25 | 26 | auto eth2.4 27 | iface eth2.4 inet static 28 | address 169.254.253.10/30 29 | 30 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/exit01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/exit02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/internet/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/internet/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto swp1 8 | iface swp1 9 | 10 | auto swp2 11 | iface swp2 12 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/leaf01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/leaf01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | iface swp5 22 | 23 | iface swp6 24 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/leaf02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/leaf02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | iface swp5 22 | 23 | iface swp6 24 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/leaf03/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/leaf03/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | iface swp5 22 | 23 | iface swp6 24 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/leaf04/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/leaf04/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | iface swp5 22 | 23 | iface swp6 24 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/server101/daemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "bip": "192.168.10.1/24" 3 | } 4 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/server101/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/server101/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | post-up ip address add 172.16.1.101/32 dev lo 4 | 5 | auto eth0 6 | iface eth0 inet dhcp 7 | 8 | auto eth1 9 | iface eth1 inet manual 10 | 11 | auto eth2 12 | iface eth2 inet manual 13 | 14 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/server102/daemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "bip": "192.168.11.1/24" 3 | } 4 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/server102/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/server102/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | post-up ip address add 172.16.2.102/32 dev lo 4 | 5 | auto eth0 6 | iface eth0 inet dhcp 7 | 8 | auto eth1 9 | iface eth1 inet manual 10 | 11 | auto eth2 12 | iface eth2 inet manual 13 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/server102/server02/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.2.101/24 10 | post-up ip route add 172.16.0.0/16 via 172.16.2.1 11 | post-up ip route add 10.0.0.0/8 via 172.16.2.1 12 | 13 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/server103/daemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "bip": "192.168.12.1/24" 3 | } 4 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/server103/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/server103/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | post-up ip address add 172.16.3.103/32 dev lo 4 | 5 | auto eth0 6 | iface eth0 inet dhcp 7 | 8 | auto eth1 9 | iface eth1 inet manual 10 | 11 | auto eth2 12 | iface eth2 inet manual 13 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/server104/daemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "bip": "192.168.13.1/24" 3 | } 4 | 5 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/server104/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/server104/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | post-up ip address add 172.16.4.104/32 dev lo 4 | 5 | auto eth0 6 | iface eth0 inet dhcp 7 | 8 | auto eth1 9 | iface eth1 inet manual 10 | 11 | auto eth2 12 | iface eth2 inet manual 13 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/spine01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/spine01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/spine02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/docker/spine02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/numbered/edge01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/numbered/edge01/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet static 3 | address 10.0.0.100/32 4 | 5 | auto eth0 6 | iface eth0 inet dhcp 7 | 8 | auto eth1 9 | iface eth1 inet manual 10 | 11 | auto eth1.2 12 | iface eth1.2 inet static 13 | address 169.254.254.2/30 14 | 15 | auto eth1.4 16 | iface eth1.4 inet static 17 | address 169.254.254.10/30 18 | 19 | auto eth2 20 | iface eth2 inet manual 21 | 22 | auto eth2.2 23 | iface eth2.2 inet static 24 | address 169.254.253.2/30 25 | 26 | auto eth2.4 27 | iface eth2.4 inet static 28 | address 169.254.253.10/30 29 | 30 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/numbered/exit01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/numbered/exit01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | iface internet-vrf 17 | address 10.0.0.101/32 18 | vrf-table auto 19 | 20 | # uplinks 21 | iface swp1 22 | 23 | iface swp2 24 | 25 | # uplinks 26 | iface swp3 27 | 28 | iface swp4 29 | 30 | iface swp5 31 | 32 | iface swp5.2 33 | 34 | iface swp5.4 35 | vrf internet-vrf 36 | 37 | iface swp6 38 | vrf internet-vrf 39 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/numbered/exit02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/numbered/exit02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | iface internet-vrf 17 | address 10.0.0.102/32 18 | vrf-table auto 19 | 20 | # uplinks 21 | iface swp1 22 | 23 | iface swp2 24 | 25 | # uplinks 26 | iface swp3 27 | 28 | iface swp4 29 | 30 | iface swp5 31 | 32 | iface swp5.2 33 | 34 | iface swp5.4 35 | vrf internet-vrf 36 | 37 | iface swp6 38 | vrf internet-vrf 39 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/numbered/internet/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/numbered/internet/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto swp1 8 | iface swp1 9 | 10 | auto swp2 11 | iface swp2 12 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/numbered/leaf01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/numbered/leaf02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/numbered/leaf03/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/numbered/leaf04/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/numbered/spine01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/numbered/spine01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/numbered/spine02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/numbered/spine02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/unnumbered/edge01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/unnumbered/edge01/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet static 3 | address 10.0.0.100/32 4 | 5 | auto eth0 6 | iface eth0 inet dhcp 7 | 8 | auto eth1 9 | iface eth1 inet manual 10 | 11 | auto eth1.2 12 | iface eth1.2 inet static 13 | address 169.254.254.2/30 14 | 15 | auto eth1.4 16 | iface eth1.4 inet static 17 | address 169.254.254.10/30 18 | 19 | auto eth2 20 | iface eth2 inet manual 21 | 22 | auto eth2.2 23 | iface eth2.2 inet static 24 | address 169.254.253.2/30 25 | 26 | auto eth2.4 27 | iface eth2.4 inet static 28 | address 169.254.253.10/30 29 | 30 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/unnumbered/exit01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/unnumbered/exit02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/unnumbered/internet/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/unnumbered/internet/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto swp1 8 | iface swp1 9 | 10 | auto swp2 11 | iface swp2 12 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/unnumbered/leaf01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/unnumbered/leaf02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/unnumbered/leaf03/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/unnumbered/leaf04/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/unnumbered/server102/server02/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.2.101/24 10 | post-up ip route add 172.16.0.0/16 via 172.16.2.1 11 | post-up ip route add 10.0.0.0/8 via 172.16.2.1 12 | 13 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/unnumbered/spine01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/unnumbered/spine01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/unnumbered/spine02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/config-files/unnumbered/spine02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/group_vars/all: -------------------------------------------------------------------------------- 1 | # Only put here in case it's needed - not currently used in this playbook 2 | 3 | 4 | scenario: unnumbered -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/ping.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: servers 3 | roles: 4 | - pingtest 5 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/reset-files/frr.conf: -------------------------------------------------------------------------------- 1 | # default to using syslog. /etc/rsyslog.d/45-frr.conf places the log 2 | # in /var/log/frr/frr.log 3 | log syslog informational 4 | 5 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/reset-files/interfaces: -------------------------------------------------------------------------------- 1 | # This file describes the network interfaces available on your system 2 | # and how to activate them. For more information, see interfaces(5). 3 | 4 | source /etc/network/interfaces.d/*.intf 5 | 6 | # The loopback network interface 7 | auto lo 8 | iface lo inet loopback 9 | 10 | # The primary network interface 11 | auto eth0 12 | iface eth0 inet dhcp 13 | 14 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/roles/add-mgmt-vrf/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: add mgmt vrf 3 | nclu: 4 | atomic: true 5 | commands: 6 | - add vrf mgmt 7 | description: "add mgmt vrf" 8 | async: 1 9 | poll: 0 10 | ignore_errors: true 11 | 12 | - name: Reconnect to switches 13 | local_action: wait_for port=22 host="{{ inventory_hostname }}" search_regex=OpenSSH delay=10 14 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/roles/copy_frr_daemons/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: copy FRR daemons 3 | copy: src=config-files/{{scenario}}/{{ansible_hostname}}/daemons dest=/etc/frr/ 4 | - name: copy FRR.conf 5 | copy: src=config-files/{{scenario}}/{{ansible_hostname}}/frr.conf dest=/etc/frr/ 6 | 7 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/roles/copy_interfaces/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: copy interfaces 3 | copy: src=config-files/{{scenario}}/{{ansible_hostname}}/interfaces dest=/etc/network/ 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/roles/enable_ipv6/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Remove the line disabling IPv6 3 | sysctl: 4 | name: net.ipv6.conf.all.disable_ipv6 5 | value: '1' 6 | state: absent 7 | reload: yes 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/roles/install_frr/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Add FRR repo key 3 | apt_key: 4 | url: https://deb.frrouting.org/frr/keys.asc 5 | state: present 6 | - name: Add FRR repo 7 | apt_repository: 8 | repo: deb https://deb.frrouting.org/frr xenial frr-stable 9 | state: present 10 | - name: Add FRR 11 | apt: 12 | name: frr 13 | state: present 14 | force_apt_get: True 15 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/roles/install_frr_service/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: copy FRR service file 3 | copy: src=config-files/{{scenario}}/{{ansible_hostname}}/frr.service dest=/etc/systemd/system/ 4 | - name: reload systemctl 5 | shell: systemctl daemon-reload 6 | - name: start frr 7 | systemd: 8 | name: frr 9 | state: restarted 10 | failed_when: false -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/roles/mv_ntp_mgmt_vrf/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: stop ntp 3 | shell: systemctl stop ntp 4 | - name: disable ntp 5 | shell: systemctl disable ntp 6 | - name: start ntp in the management vrf 7 | shell: systemctl start ntp@mgmt 8 | - name: enable ntp in the management vrf 9 | shell: systemctl enable ntp@mgmt 10 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/roles/pingtest/vars/main.yml: -------------------------------------------------------------------------------- 1 | ping_gateway: 2 | server101: 172.16.1.1 3 | server102: 172.16.2.1 4 | server103: 172.16.3.1 5 | server104: 172.16.4.1 6 | 7 | ping_local_nbr: 8 | server101: 172.16.2.102 9 | server102: 172.16.1.101 10 | server103: 172.16.4.104 11 | server104: 172.16.3.103 12 | 13 | ping_remote_nbr: 14 | server101: 172.16.4.104 15 | server102: 172.16.3.103 16 | server103: 172.16.2.102 17 | server104: 172.16.1.101 18 | 19 | internet_edge_ip: 172.16.253.1 20 | -------------------------------------------------------------------------------- /topologies/dual-attach/bgp/roles/restart_switches/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: restarts switches with their new configuration 3 | shell: sleep 1 && shutdown -r 0 4 | become: yes 5 | async: 1 6 | poll: 0 7 | ignore_errors: true 8 | 9 | - name: Wait for switches to come back up 10 | wait_for_connection: 11 | timeout: 180 12 | delay: 15 13 | -------------------------------------------------------------------------------- /topologies/dual-attach/dummy.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: false 4 | tasks: 5 | - file: 6 | path: /home/vagrant/foo.txt 7 | state: touch 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/ansible.cfg: -------------------------------------------------------------------------------- 1 | [defaults] 2 | inventory = ../.vagrant/provisioners/ansible/inventory/ 3 | host_key_checking=False 4 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/centralized/edge01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/centralized/exit01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/centralized/exit02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/centralized/internet/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/centralized/internet/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto swp1 8 | iface swp1 9 | 10 | auto swp2 11 | iface swp2 12 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/centralized/leaf01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/centralized/leaf02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/centralized/leaf03/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/centralized/leaf04/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/centralized/server101/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/centralized/server102/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/centralized/server103/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/centralized/server104/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/centralized/spine01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/centralized/spine01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | mtu 9216 17 | iface swp2 18 | mtu 9216 19 | iface swp3 20 | mtu 9216 21 | iface swp4 22 | mtu 9216 23 | iface swp5 24 | mtu 9216 25 | iface swp6 26 | mtu 9216 27 | 28 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/centralized/spine02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/centralized/spine02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | mtu 9216 17 | iface swp2 18 | mtu 9216 19 | iface swp3 20 | mtu 9216 21 | iface swp4 22 | mtu 9216 23 | iface swp5 24 | mtu 9216 25 | iface swp6 26 | mtu 9216 27 | 28 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/distributed/edge01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/distributed/exit01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/distributed/exit02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/distributed/internet/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/distributed/internet/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto swp1 8 | iface swp1 9 | 10 | auto swp2 11 | iface swp2 12 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/distributed/leaf01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/distributed/leaf02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/distributed/leaf03/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/distributed/leaf04/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/distributed/server101/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/distributed/server102/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/distributed/server103/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/distributed/server104/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/distributed/spine01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/distributed/spine01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | mtu 9216 17 | iface swp2 18 | mtu 9216 19 | iface swp3 20 | mtu 9216 21 | iface swp4 22 | mtu 9216 23 | iface swp5 24 | mtu 9216 25 | iface swp6 26 | mtu 9216 27 | 28 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/distributed/spine02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/distributed/spine02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | mtu 9216 17 | iface swp2 18 | mtu 9216 19 | iface swp3 20 | mtu 9216 21 | iface swp4 22 | mtu 9216 23 | iface swp5 24 | mtu 9216 25 | iface swp6 26 | mtu 9216 27 | 28 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/ospf-ibgp/edge01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/ospf-ibgp/exit01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/ospf-ibgp/exit02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/ospf-ibgp/internet/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/ospf-ibgp/internet/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto swp1 8 | iface swp1 9 | 10 | auto swp2 11 | iface swp2 12 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/ospf-ibgp/leaf01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/ospf-ibgp/leaf02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/ospf-ibgp/leaf03/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/ospf-ibgp/leaf04/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/ospf-ibgp/server101/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/ospf-ibgp/server102/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/ospf-ibgp/server103/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/ospf-ibgp/server104/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/ospf-ibgp/spine01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/ospf-ibgp/spine01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | mtu 9216 17 | iface swp2 18 | mtu 9216 19 | iface swp3 20 | mtu 9216 21 | iface swp4 22 | mtu 9216 23 | iface swp5 24 | mtu 9216 25 | iface swp6 26 | mtu 9216 27 | 28 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/ospf-ibgp/spine02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/config-files/ospf-ibgp/spine02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | mtu 9216 17 | iface swp2 18 | mtu 9216 19 | iface swp3 20 | mtu 9216 21 | iface swp4 22 | mtu 9216 23 | iface swp5 24 | mtu 9216 25 | iface swp6 26 | mtu 9216 27 | 28 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/group_vars/all: -------------------------------------------------------------------------------- 1 | # Only put here in case it's needed - not currently used in this playbook 2 | 3 | 4 | scenario: distributed 5 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/ping.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: servers 3 | roles: 4 | - pingtest 5 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/reset-files/frr.conf: -------------------------------------------------------------------------------- 1 | # default to using syslog. /etc/rsyslog.d/45-frr.conf places the log 2 | # in /var/log/frr/frr.log 3 | log syslog informational 4 | 5 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/reset-files/interfaces: -------------------------------------------------------------------------------- 1 | # This file describes the network interfaces available on your system 2 | # and how to activate them. For more information, see interfaces(5). 3 | 4 | source /etc/network/interfaces.d/*.intf 5 | 6 | # The loopback network interface 7 | auto lo 8 | iface lo inet loopback 9 | 10 | # The primary network interface 11 | auto eth0 12 | iface eth0 inet dhcp 13 | 14 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/roles/add-mgmt-vrf/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: add mgmt vrf 3 | nclu: 4 | atomic: true 5 | commands: 6 | - add vrf mgmt 7 | description: "add mgmt vrf" 8 | async: 1 9 | poll: 0 10 | ignore_errors: true 11 | 12 | - name: Reconnect to switches 13 | local_action: wait_for port=22 host="{{ inventory_hostname }}" search_regex=OpenSSH delay=10 14 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/roles/copy-int-reboot-servers/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Turn off SSH rev DNS lookup 3 | lineinfile: 4 | path: /etc/ssh/sshd_config 5 | regexp: '^UseDNS ' 6 | line: UseDNS no 7 | 8 | - name: copy interfaces 9 | copy: src=config-files/{{scenario}}/{{ansible_hostname}}/interfaces dest=/etc/network/ 10 | 11 | - name: restart interfaces 12 | become: yes 13 | command: ifup -a 14 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/roles/copy_frr_daemons/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: copy FRR daemons 3 | copy: src=config-files/{{scenario}}/{{ansible_hostname}}/daemons dest=/etc/frr/ 4 | - name: copy FRR.conf 5 | copy: src=config-files/{{scenario}}/{{ansible_hostname}}/frr.conf dest=/etc/frr/ 6 | 7 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/roles/copy_interfaces/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: copy interfaces 3 | copy: src=config-files/{{scenario}}/{{ansible_hostname}}/interfaces dest=/etc/network/ 4 | 5 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/roles/enable_ipv6/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Remove the line disabling IPv6 3 | sysctl: 4 | name: net.ipv6.conf.all.disable_ipv6 5 | value: '1' 6 | state: absent 7 | reload: yes 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/roles/install_frr/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Add FRR repo key 3 | apt_key: 4 | url: https://deb.frrouting.org/frr/keys.asc 5 | state: present 6 | - name: Add FRR repo 7 | apt_repository: 8 | repo: deb https://deb.frrouting.org/frr xenial frr-stable 9 | state: present 10 | - name: Add FRR 11 | apt: 12 | name: frr=7.2.1 13 | state: present 14 | force_apt_get: True 15 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/roles/install_frr_service/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: copy FRR service file 3 | copy: src=config-files/{{scenario}}/{{ansible_hostname}}/frr.service dest=/etc/systemd/system/ 4 | - name: reload systemctl 5 | shell: systemctl daemon-reload 6 | - name: start frr 7 | systemd: 8 | name: frr 9 | state: restarted 10 | failed_when: false -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/roles/mv_ntp_mgmt_vrf/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: stop ntp 3 | shell: systemctl stop ntp 4 | - name: disable ntp 5 | shell: systemctl disable ntp 6 | - name: start ntp in the management vrf 7 | shell: systemctl start ntp@mgmt 8 | - name: enable ntp in the management vrf 9 | shell: systemctl enable ntp@mgmt 10 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/roles/pingtest/vars/main.yml: -------------------------------------------------------------------------------- 1 | ping_gateway: 2 | server101: 172.16.1.1 3 | server102: 172.16.2.1 4 | server103: 172.16.1.1 5 | server104: 172.16.2.1 6 | 7 | ping_local_nbr: 8 | server101: 172.16.1.103 9 | server102: 172.16.2.104 10 | server103: 172.16.1.101 11 | server104: 172.16.2.102 12 | 13 | ping_remote_nbr: 14 | server101: 172.16.2.104 15 | server102: 172.16.1.101 16 | server103: 172.16.2.102 17 | server104: 172.16.2.102 18 | 19 | internet_edge_ip: 172.16.253.1 20 | -------------------------------------------------------------------------------- /topologies/dual-attach/evpn/roles/restart_switches/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: restarts switches with their new configuration 3 | shell: sleep 1 && shutdown -r 0 4 | become: yes 5 | async: 1 6 | poll: 0 7 | ignore_errors: true 8 | 9 | - name: Wait for switches to come back up 10 | wait_for_connection: 11 | timeout: 180 12 | delay: 15 13 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/ansible.cfg: -------------------------------------------------------------------------------- 1 | [defaults] 2 | inventory = ../.vagrant/provisioners/ansible/inventory/ 3 | host_key_checking=False 4 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/exit01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/exit01/frr.conf: -------------------------------------------------------------------------------- 1 | interface lo 2 | ip ospf area 0.0.0.0 3 | ip address 10.0.0.101/32 4 | ! 5 | interface swp1 6 | ip ospf network point-to-point 7 | ip ospf area 0.0.0.0 8 | ip address 10.0.0.101/32 9 | ! 10 | interface swp2 11 | ip ospf network point-to-point 12 | ip ospf area 0.0.0.0 13 | ip address 10.0.0.101/32 14 | ! 15 | router ospf 16 | router-id 10.0.0.101 17 | log-adjacency-changes detail 18 | passive-interface default 19 | no passive-interface swp1 20 | no passive-interface swp2 21 | ! 22 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/exit01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # uplinks 22 | iface swp3 23 | 24 | iface swp4 25 | 26 | iface swp5 27 | 28 | iface swp6 -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/exit02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/exit02/frr.conf: -------------------------------------------------------------------------------- 1 | interface lo 2 | ip ospf area 0.0.0.0 3 | ip address 10.0.0.102/32 4 | ! 5 | interface swp1 6 | ip ospf network point-to-point 7 | ip ospf area 0.0.0.0 8 | ip address 10.0.0.102/32 9 | ! 10 | interface swp2 11 | ip ospf network point-to-point 12 | ip ospf area 0.0.0.0 13 | ip address 10.0.0.102/32 14 | ! 15 | router ospf 16 | router-id 10.0.0.102 17 | log-adjacency-changes detail 18 | passive-interface default 19 | no passive-interface swp1 20 | no passive-interface swp2 21 | ! 22 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/exit02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # uplinks 22 | iface swp3 23 | 24 | iface swp4 25 | 26 | iface swp5 27 | 28 | iface swp6 -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/leaf01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/leaf01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | iface mgmt 6 | address 127.0.0.1/8 7 | vrf-table auto 8 | 9 | iface eth0 inet dhcp 10 | vrf mgmt 11 | 12 | 13 | # uplinks 14 | iface swp1 15 | 16 | iface swp2 17 | 18 | # hosts 19 | iface swp5 20 | 21 | iface swp6 22 | 23 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/leaf02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/leaf02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | iface mgmt 6 | address 127.0.0.1/8 7 | vrf-table auto 8 | 9 | iface eth0 inet dhcp 10 | vrf mgmt 11 | 12 | 13 | # uplinks 14 | iface swp1 15 | 16 | iface swp2 17 | 18 | # hosts 19 | iface swp5 20 | 21 | iface swp6 22 | 23 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/leaf03/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/leaf03/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | iface mgmt 6 | address 127.0.0.1/8 7 | vrf-table auto 8 | 9 | iface eth0 inet dhcp 10 | vrf mgmt 11 | 12 | 13 | # uplinks 14 | iface swp1 15 | 16 | iface swp2 17 | 18 | # hosts 19 | iface swp5 20 | 21 | iface swp6 22 | 23 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/leaf04/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/leaf04/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | iface mgmt 6 | address 127.0.0.1/8 7 | vrf-table auto 8 | 9 | iface eth0 inet dhcp 10 | vrf mgmt 11 | 12 | 13 | # uplinks 14 | iface swp1 15 | 16 | iface swp2 17 | 18 | # hosts 19 | iface swp5 20 | 21 | iface swp6 22 | 23 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/server101/daemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "bip": "192.168.10.1/24" 3 | } 4 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/server101/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/server101/frr.conf: -------------------------------------------------------------------------------- 1 | # default to using syslog. /etc/rsyslog.d/45-frr.conf places the log 2 | # in /var/log/frr/frr.log 3 | log syslog informational 4 | interface lo 5 | ip ospf area 1 6 | 7 | interface eth1 8 | ip ospf network point-to-point 9 | ip ospf area 1 10 | 11 | interface eth2 12 | ip ospf network point-to-point 13 | ip ospf area 1 14 | 15 | interface docker0 16 | ip ospf area 1 17 | 18 | router ospf 19 | ospf router-id 176.16.1.101 20 | passive-interface lo 21 | passive-interface docker0 22 | area 1 stub no-summary 23 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/server101/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | post-up ip address add 172.16.1.101/32 dev lo 4 | 5 | auto eth0 6 | iface eth0 inet dhcp 7 | 8 | auto eth1 9 | iface eth1 inet static 10 | address 172.16.1.101/32 11 | 12 | auto eth2 13 | iface eth2 inet static 14 | address 172.16.1.101/32 15 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/server102/daemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "bip": "192.168.11.1/24" 3 | } 4 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/server102/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/server102/frr.conf: -------------------------------------------------------------------------------- 1 | # default to using syslog. /etc/rsyslog.d/45-frr.conf places the log 2 | # in /var/log/frr/frr.log 3 | log syslog informational 4 | interface lo 5 | ip ospf area 1 6 | 7 | interface eth1 8 | ip ospf network point-to-point 9 | ip ospf area 1 10 | 11 | interface eth2 12 | ip ospf network point-to-point 13 | ip ospf area 1 14 | 15 | interface docker0 16 | ip ospf area 1 17 | 18 | router ospf 19 | ospf router-id 176.16.2.102 20 | passive-interface lo 21 | passive-interface docker0 22 | area 1 stub no-summary 23 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/server102/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | post-up ip address add 172.16.2.102/32 dev lo 4 | 5 | auto eth0 6 | iface eth0 inet dhcp 7 | 8 | auto eth1 9 | iface eth1 inet static 10 | address 172.16.2.102/32 11 | 12 | auto eth2 13 | iface eth2 inet static 14 | address 172.16.2.102/32 15 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/server103/daemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "bip": "192.168.12.1/24" 3 | } 4 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/server103/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/server103/frr.conf: -------------------------------------------------------------------------------- 1 | # default to using syslog. /etc/rsyslog.d/45-frr.conf places the log 2 | # in /var/log/frr/frr.log 3 | log syslog informational 4 | interface lo 5 | ip ospf area 1 6 | 7 | interface eth1 8 | ip ospf network point-to-point 9 | ip ospf area 1 10 | 11 | interface eth2 12 | ip ospf network point-to-point 13 | ip ospf area 1 14 | 15 | interface docker0 16 | ip ospf area 1 17 | 18 | router ospf 19 | ospf router-id 176.16.3.103 20 | passive-interface lo 21 | passive-interface docker0 22 | area 1 stub no-summary 23 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/server103/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | post-up ip address add 172.16.3.103/32 dev lo 4 | 5 | auto eth0 6 | iface eth0 inet dhcp 7 | 8 | auto eth1 9 | iface eth1 inet static 10 | address 172.16.3.103/32 11 | 12 | auto eth2 13 | iface eth2 inet static 14 | address 172.16.3.103/32 15 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/server104/daemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "bip": "192.168.13.1/24" 3 | } 4 | 5 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/server104/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/server104/frr.conf: -------------------------------------------------------------------------------- 1 | # default to using syslog. /etc/rsyslog.d/45-frr.conf places the log 2 | # in /var/log/frr/frr.log 3 | log syslog informational 4 | interface lo 5 | ip ospf area 1 6 | 7 | interface eth1 8 | ip ospf network point-to-point 9 | ip ospf area 1 10 | 11 | interface eth2 12 | ip ospf network point-to-point 13 | ip ospf area 1 14 | 15 | interface docker0 16 | ip ospf area 1 17 | 18 | router ospf 19 | ospf router-id 176.16.4.104 20 | passive-interface lo 21 | passive-interface docker0 22 | area 1 stub no-summary 23 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/server104/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | post-up ip address add 172.16.4.104/32 dev lo 4 | 5 | auto eth0 6 | iface eth0 inet dhcp 7 | 8 | auto eth1 9 | iface eth1 inet static 10 | address 172.16.4.104/32 11 | 12 | auto eth2 13 | iface eth2 inet static 14 | address 172.16.4.104/32 15 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/spine01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/spine01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/spine02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/docker/spine02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/numbered/edge01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/numbered/exit01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/numbered/exit01/frr.conf: -------------------------------------------------------------------------------- 1 | interface lo 2 | ip ospf area 0.0.0.0 3 | ip address 10.0.0.101/32 4 | ! 5 | interface swp1 6 | ip ospf network point-to-point 7 | ip ospf area 0.0.0.0 8 | ip address 10.127.0.9/31 9 | ! 10 | interface swp2 11 | ip ospf network point-to-point 12 | ip ospf area 0.0.0.0 13 | ip address 10.127.1.9/31 14 | ! 15 | router ospf 16 | router-id 10.0.0.101 17 | log-adjacency-changes detail 18 | passive-interface default 19 | no passive-interface swp1 20 | no passive-interface swp2 21 | ! 22 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/numbered/exit01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # uplinks 22 | iface swp3 23 | 24 | iface swp4 25 | 26 | iface swp5 27 | 28 | iface swp6 -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/numbered/exit02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/numbered/exit02/frr.conf: -------------------------------------------------------------------------------- 1 | interface lo 2 | ip ospf area 0.0.0.0 3 | ip address 10.0.0.102/32 4 | ! 5 | interface swp1 6 | ip ospf network point-to-point 7 | ip ospf area 0.0.0.0 8 | ip address 10.127.0.11/31 9 | ! 10 | interface swp2 11 | ip ospf network point-to-point 12 | ip ospf area 0.0.0.0 13 | ip address 10.127.1.11/31 14 | ! 15 | router ospf 16 | router-id 10.0.0.102 17 | log-adjacency-changes detail 18 | passive-interface default 19 | no passive-interface swp1 20 | no passive-interface swp2 21 | ! 22 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/numbered/exit02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # uplinks 22 | iface swp3 23 | 24 | iface swp4 25 | 26 | iface swp5 27 | 28 | iface swp6 -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/numbered/internet/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/numbered/leaf01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/numbered/leaf02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/numbered/leaf03/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/numbered/leaf04/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/numbered/spine01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/numbered/spine01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/numbered/spine02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/numbered/spine02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/unnumbered/edge01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/unnumbered/exit01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/unnumbered/exit01/frr.conf: -------------------------------------------------------------------------------- 1 | interface lo 2 | ip ospf area 0.0.0.0 3 | ip address 10.0.0.101/32 4 | ! 5 | interface swp1 6 | ip ospf network point-to-point 7 | ip ospf area 0.0.0.0 8 | ip address 10.0.0.101/32 9 | ! 10 | interface swp2 11 | ip ospf network point-to-point 12 | ip ospf area 0.0.0.0 13 | ip address 10.0.0.101/32 14 | ! 15 | router ospf 16 | router-id 10.0.0.101 17 | log-adjacency-changes detail 18 | passive-interface default 19 | no passive-interface swp1 20 | no passive-interface swp2 21 | ! 22 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/unnumbered/exit01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # uplinks 22 | iface swp3 23 | 24 | iface swp4 25 | 26 | iface swp5 27 | 28 | iface swp6 -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/unnumbered/exit02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/unnumbered/exit02/frr.conf: -------------------------------------------------------------------------------- 1 | interface lo 2 | ip ospf area 0.0.0.0 3 | ip address 10.0.0.102/32 4 | ! 5 | interface swp1 6 | ip ospf network point-to-point 7 | ip ospf area 0.0.0.0 8 | ip address 10.0.0.102/32 9 | ! 10 | interface swp2 11 | ip ospf network point-to-point 12 | ip ospf area 0.0.0.0 13 | ip address 10.0.0.102/32 14 | ! 15 | router ospf 16 | router-id 10.0.0.102 17 | log-adjacency-changes detail 18 | passive-interface default 19 | no passive-interface swp1 20 | no passive-interface swp2 21 | ! 22 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/unnumbered/exit02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # uplinks 22 | iface swp3 23 | 24 | iface swp4 25 | 26 | iface swp5 27 | 28 | iface swp6 -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/unnumbered/internet/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/unnumbered/leaf01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/unnumbered/leaf02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/unnumbered/leaf03/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/unnumbered/leaf04/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/unnumbered/server102/server02/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.2.101/24 10 | post-up ip route add 172.16.0.0/16 via 172.16.2.1 11 | post-up ip route add 10.0.0.0/8 via 172.16.2.1 12 | 13 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/unnumbered/spine01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/unnumbered/spine01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/unnumbered/spine02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/config-files/unnumbered/spine02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/fetch.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | tasks: 4 | - name: Fetch interfaces file 5 | fetch: src=/etc/network/interfaces dest=./fetch-config 6 | - name: Fetch frr.conf file 7 | fetch: src=/etc/frr/frr.conf dest=./fetch-config 8 | 9 | - hosts: servers 10 | tasks: 11 | - name: Fetch daemon.json file 12 | fetch: src=/etc/docker/daemon.json dest=./fetch-config 13 | - name: Fetch sysctl.d file 14 | fetch: src=/etc/sysctl.d/99-frr.conf dest=./fetch-config 15 | 16 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/group_vars/all: -------------------------------------------------------------------------------- 1 | # Only put here in case it's needed - not currently used in this playbook 2 | 3 | 4 | scenario: unnumbered -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/ping.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: servers 3 | roles: 4 | - pingtest 5 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/reset-files/frr.conf: -------------------------------------------------------------------------------- 1 | # default to using syslog. /etc/rsyslog.d/45-frr.conf places the log 2 | # in /var/log/frr/frr.log 3 | log syslog informational 4 | 5 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/reset-files/interfaces: -------------------------------------------------------------------------------- 1 | # This file describes the network interfaces available on your system 2 | # and how to activate them. For more information, see interfaces(5). 3 | 4 | source /etc/network/interfaces.d/*.intf 5 | 6 | # The loopback network interface 7 | auto lo 8 | iface lo inet loopback 9 | 10 | # The primary network interface 11 | auto eth0 12 | iface eth0 inet dhcp 13 | 14 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/roles/add-mgmt-vrf/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: add mgmt vrf 3 | nclu: 4 | atomic: true 5 | commands: 6 | - add vrf mgmt 7 | description: "add mgmt vrf" 8 | async: 1 9 | poll: 0 10 | ignore_errors: true 11 | 12 | - name: Reconnect to switches 13 | local_action: wait_for port=22 host="{{ inventory_hostname }}" search_regex=OpenSSH delay=10 14 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/roles/copy-int-reboot-servers/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Turn off SSH rev DNS lookup 3 | lineinfile: 4 | path: /etc/ssh/sshd_config 5 | regexp: '^UseDNS ' 6 | line: UseDNS no 7 | 8 | - name: copy interfaces 9 | copy: src=config-files/{{scenario}}/{{ansible_hostname}}/interfaces dest=/etc/network/ 10 | 11 | - name: restart interfaces 12 | become: yes 13 | command: ifup -a --force 14 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/roles/copy_frr_daemons/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: copy FRR daemons 3 | copy: src=config-files/{{scenario}}/{{ansible_hostname}}/daemons dest=/etc/frr/ 4 | - name: copy FRR.conf 5 | copy: src=config-files/{{scenario}}/{{ansible_hostname}}/frr.conf dest=/etc/frr/ 6 | 7 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/roles/copy_interfaces/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: copy interfaces 3 | copy: src=config-files/{{scenario}}/{{ansible_hostname}}/interfaces dest=/etc/network/ 4 | 5 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/roles/enable_ipv6/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Remove the line disabling IPv6 3 | sysctl: 4 | name: net.ipv6.conf.all.disable_ipv6 5 | value: '1' 6 | state: absent 7 | reload: yes 8 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/roles/install_frr/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Add FRR repo key 3 | apt_key: 4 | url: https://deb.frrouting.org/frr/keys.asc 5 | state: present 6 | - name: Add FRR repo 7 | apt_repository: 8 | repo: deb https://deb.frrouting.org/frr xenial frr-stable 9 | state: present 10 | - name: Add FRR 11 | apt: 12 | name: frr 13 | state: present 14 | force_apt_get: True 15 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/roles/mv_ntp_mgmt_vrf/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: stop ntp 3 | shell: systemctl stop ntp 4 | - name: disable ntp 5 | shell: systemctl disable ntp 6 | - name: start ntp in the management vrf 7 | shell: systemctl start ntp@mgmt 8 | - name: enable ntp in the management vrf 9 | shell: systemctl enable ntp@mgmt 10 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/roles/pingtest/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: populate service facts 3 | service_facts: 4 | 5 | - name: Ping gateway 6 | command: ping -c 1 {{ ping_gateway[inventory_hostname] }} 7 | when: ansible_facts.services['docker.service'] is not defined or ansible_facts.services['docker.service'].state != 'running' 8 | 9 | - name: Ping node on same leaf 10 | command: ping -c 1 {{ ping_local_nbr[inventory_hostname] }} 11 | 12 | - name: Ping node in different subnet 13 | command: ping -c 1 {{ ping_remote_nbr[inventory_hostname] }} 14 | 15 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/roles/pingtest/vars/main.yml: -------------------------------------------------------------------------------- 1 | ping_gateway: 2 | server101: 172.16.1.1 3 | server102: 172.16.2.1 4 | server103: 172.16.3.1 5 | server104: 172.16.4.1 6 | 7 | ping_local_nbr: 8 | server101: 172.16.4.104 9 | server102: 172.16.1.101 10 | server103: 172.16.2.102 11 | server104: 172.16.3.103 12 | 13 | ping_remote_nbr: 14 | server101: 172.16.4.104 15 | server102: 172.16.1.101 16 | server103: 172.16.2.102 17 | server104: 172.16.3.103 18 | 19 | 20 | -------------------------------------------------------------------------------- /topologies/dual-attach/ospf/roles/restart_switches/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: restarts switches with their new configuration 3 | shell: sleep 1 && shutdown -r 0 4 | become: yes 5 | async: 1 6 | poll: 0 7 | ignore_errors: true 8 | 9 | - name: Wait for switches to come back up 10 | wait_for_connection: 11 | timeout: 180 12 | delay: 15 13 | -------------------------------------------------------------------------------- /topologies/single-attach/Vagrantfile: -------------------------------------------------------------------------------- 1 | Vagrantfile-kvm -------------------------------------------------------------------------------- /topologies/single-attach/bgp/ansible.cfg: -------------------------------------------------------------------------------- 1 | [defaults] 2 | inventory = ../.vagrant/provisioners/ansible/inventory/ 3 | host_key_checking=False 4 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/edge01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/edge01/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet static 3 | address 10.0.0.100/32 4 | 5 | auto eth0 6 | iface eth0 inet dhcp 7 | 8 | auto eth1 9 | iface eth1 inet manual 10 | 11 | auto eth1.2 12 | iface eth1.2 inet static 13 | address 169.254.254.2/30 14 | 15 | auto eth1.4 16 | iface eth1.4 inet static 17 | address 169.254.254.10/30 18 | 19 | auto eth2 20 | iface eth2 inet manual 21 | 22 | auto eth2.2 23 | iface eth2.2 inet static 24 | address 169.254.253.2/30 25 | 26 | auto eth2.4 27 | iface eth2.4 inet static 28 | address 169.254.253.10/30 29 | 30 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/exit01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/exit02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/internet/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/internet/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto swp1 8 | iface swp1 9 | 10 | auto swp2 11 | iface swp2 12 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/leaf01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/leaf01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # bridge to hosts 22 | iface swp5 23 | post-up ip link set promisc on dev swp5 24 | 25 | iface bridge 26 | bridge-vlan-aware yes 27 | bridge-ports swp5 28 | bridge-vids 10 29 | bridge-pvid 10 30 | 31 | iface vlan10 32 | vlan-id 10 33 | vlan-raw-device bridge 34 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/leaf02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/leaf02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # bridge to hosts 22 | iface swp5 23 | post-up ip link set promisc on dev swp5 24 | 25 | iface bridge 26 | bridge-vlan-aware yes 27 | bridge-ports swp5 28 | bridge-vids 10 29 | bridge-pvid 10 30 | 31 | iface vlan10 32 | vlan-id 10 33 | vlan-raw-device bridge 34 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/leaf03/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/leaf03/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # bridge to hosts 22 | iface swp5 23 | post-up ip link set promisc on dev swp5 24 | 25 | iface bridge 26 | bridge-vlan-aware yes 27 | bridge-ports swp5 28 | bridge-vids 10 29 | bridge-pvid 10 30 | 31 | iface vlan10 32 | vlan-id 10 33 | vlan-raw-device bridge 34 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/leaf04/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/leaf04/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # bridge to hosts 22 | iface swp5 23 | post-up ip link set promisc on dev swp5 24 | 25 | iface bridge 26 | bridge-vlan-aware yes 27 | bridge-ports swp5 28 | bridge-vids 10 29 | bridge-pvid 10 30 | 31 | iface vlan10 32 | vlan-id 10 33 | vlan-raw-device bridge 34 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/server101/daemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "bip": "192.168.10.1/24" 3 | } 4 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/server101/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/server101/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.1.101/24 10 | post-up ip link set promisc on dev eth1 11 | post-up ip route add 172.16.0.0/16 via 172.16.1.1 12 | 13 | 14 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/server102/daemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "bip": "192.168.11.1/24" 3 | } 4 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/server102/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/server102/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.2.102/24 10 | post-up ip link set promisc on dev eth1 11 | post-up ip route add 172.16.0.0/16 via 172.16.2.1 12 | post-up ip route add 10.0.0.0/8 via 172.16.2.1 13 | 14 | 15 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/server102/server02/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.2.101/24 10 | post-up ip route add 172.16.0.0/16 via 172.16.2.1 11 | post-up ip route add 10.0.0.0/8 via 172.16.2.1 12 | 13 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/server103/daemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "bip": "192.168.12.1/24" 3 | } 4 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/server103/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/server103/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.3.103/24 10 | post-up ip link set promisc on dev eth1 11 | post-up ip route add 172.16.0.0/16 via 172.16.3.1 12 | post-up ip route add 10.0.0.0/8 via 172.16.3.1 13 | 14 | 15 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/server104/daemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "bip": "192.168.13.1/24" 3 | } 4 | 5 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/server104/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/server104/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.4.104/24 10 | post-up ip link set promisc on dev eth1 11 | post-up ip route add 172.16.0.0/16 via 172.16.4.1 12 | post-up ip route add 10.0.0.0/8 via 172.16.4.1 13 | 14 | 15 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/spine01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/spine01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/spine02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/spine02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/unnumbered/edge01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/unnumbered/exit01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/unnumbered/exit01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # uplinks 22 | iface swp3 23 | 24 | iface swp4 25 | 26 | iface swp5 27 | 28 | iface swp6 -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/unnumbered/exit02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/unnumbered/exit02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # uplinks 22 | iface swp3 23 | 24 | iface swp4 25 | 26 | iface swp5 27 | 28 | iface swp6 -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/unnumbered/internet/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/unnumbered/leaf01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/unnumbered/leaf01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # bridge to hosts 22 | iface swp5 23 | post-up ip link set promisc on dev swp5 24 | 25 | iface bridge 26 | bridge-vlan-aware yes 27 | bridge-ports swp5 28 | bridge-vids 10 29 | bridge-pvid 10 30 | 31 | iface vlan10 32 | vlan-id 10 33 | vlan-raw-device bridge 34 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/unnumbered/leaf02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/unnumbered/leaf02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # bridge to hosts 22 | iface swp5 23 | post-up ip link set promisc on dev swp5 24 | 25 | iface bridge 26 | bridge-vlan-aware yes 27 | bridge-ports swp5 28 | bridge-vids 10 29 | bridge-pvid 10 30 | 31 | iface vlan10 32 | vlan-id 10 33 | vlan-raw-device bridge 34 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/unnumbered/leaf03/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/unnumbered/leaf03/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # bridge to hosts 22 | iface swp5 23 | post-up ip link set promisc on dev swp5 24 | 25 | iface bridge 26 | bridge-vlan-aware yes 27 | bridge-ports swp5 28 | bridge-vids 10 29 | bridge-pvid 10 30 | 31 | iface vlan10 32 | vlan-id 10 33 | vlan-raw-device bridge 34 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/unnumbered/leaf04/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/unnumbered/leaf04/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # bridge to hosts 22 | iface swp5 23 | post-up ip link set promisc on dev swp5 24 | 25 | iface bridge 26 | bridge-vlan-aware yes 27 | bridge-ports swp5 28 | bridge-vids 10 29 | bridge-pvid 10 30 | 31 | iface vlan10 32 | vlan-id 10 33 | vlan-raw-device bridge 34 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/unnumbered/server101/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.1.101/24 10 | post-up ip link set promisc on dev eth1 11 | post-up ip route add 172.16.0.0/16 via 172.16.1.1 12 | post-up ip route add 10.0.0.0/8 via 172.16.1.1 13 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/unnumbered/server102/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.2.102/24 10 | post-up ip link set promisc on dev eth1 11 | post-up ip route add 172.16.0.0/16 via 172.16.2.1 12 | post-up ip route add 10.0.0.0/8 via 172.16.2.1 13 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/unnumbered/server102/server02/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.2.101/24 10 | post-up ip route add 172.16.0.0/16 via 172.16.2.1 11 | post-up ip route add 10.0.0.0/8 via 172.16.2.1 12 | 13 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/unnumbered/server103/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.3.103/24 10 | post-up ip link set promisc on dev eth1 11 | post-up ip route add 172.16.0.0/16 via 172.16.3.1 12 | post-up ip route add 10.0.0.0/8 via 172.16.3.1 13 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/unnumbered/server104/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.4.104/24 10 | post-up ip link set promisc on dev eth1 11 | post-up ip route add 172.16.0.0/16 via 172.16.4.1 12 | post-up ip route add 10.0.0.0/8 via 172.16.4.1 13 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/unnumbered/spine01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/unnumbered/spine01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/unnumbered/spine02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/docker/unnumbered/spine02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/numbered/edge01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/numbered/edge01/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet static 3 | address 10.0.0.100/32 4 | 5 | auto eth0 6 | iface eth0 inet dhcp 7 | 8 | auto eth1 9 | iface eth1 inet manual 10 | 11 | auto eth1.2 12 | iface eth1.2 inet static 13 | address 169.254.254.2/30 14 | 15 | auto eth1.4 16 | iface eth1.4 inet static 17 | address 169.254.254.10/30 18 | 19 | auto eth2 20 | iface eth2 inet manual 21 | 22 | auto eth2.2 23 | iface eth2.2 inet static 24 | address 169.254.253.2/30 25 | 26 | auto eth2.4 27 | iface eth2.4 inet static 28 | address 169.254.253.10/30 29 | 30 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/numbered/exit01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/numbered/exit01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | iface internet-vrf 17 | address 10.0.0.101/32 18 | vrf-table auto 19 | 20 | # uplinks 21 | iface swp1 22 | 23 | iface swp2 24 | 25 | # uplinks 26 | iface swp3 27 | 28 | iface swp4 29 | 30 | iface swp5 31 | 32 | iface swp5.2 33 | 34 | iface swp5.4 35 | vrf internet-vrf 36 | 37 | iface swp6 38 | vrf internet-vrf 39 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/numbered/exit02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/numbered/exit02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | iface internet-vrf 17 | address 10.0.0.102/32 18 | vrf-table auto 19 | 20 | # uplinks 21 | iface swp1 22 | 23 | iface swp2 24 | 25 | # uplinks 26 | iface swp3 27 | 28 | iface swp4 29 | 30 | iface swp5 31 | 32 | iface swp5.2 33 | 34 | iface swp5.4 35 | vrf internet-vrf 36 | 37 | iface swp6 38 | vrf internet-vrf 39 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/numbered/internet/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/numbered/internet/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto swp1 8 | iface swp1 9 | 10 | auto swp2 11 | iface swp2 12 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/numbered/leaf01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/numbered/leaf01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # bridge to hosts 22 | iface swp5 23 | post-up ip link set promisc on dev swp5 24 | 25 | iface bridge 26 | bridge-vlan-aware yes 27 | bridge-ports swp5 28 | bridge-vids 10 29 | bridge-pvid 10 30 | 31 | iface vlan10 32 | vlan-id 10 33 | vlan-raw-device bridge 34 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/numbered/leaf02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/numbered/leaf02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # bridge to hosts 22 | iface swp5 23 | post-up ip link set promisc on dev swp5 24 | 25 | iface bridge 26 | bridge-vlan-aware yes 27 | bridge-ports swp5 28 | bridge-vids 10 29 | bridge-pvid 10 30 | 31 | iface vlan10 32 | vlan-id 10 33 | vlan-raw-device bridge 34 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/numbered/leaf03/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/numbered/leaf03/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # bridge to hosts 22 | iface swp5 23 | post-up ip link set promisc on dev swp5 24 | 25 | iface bridge 26 | bridge-vlan-aware yes 27 | bridge-ports swp5 28 | bridge-vids 10 29 | bridge-pvid 10 30 | 31 | iface vlan10 32 | vlan-id 10 33 | vlan-raw-device bridge 34 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/numbered/leaf04/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/numbered/leaf04/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # bridge to hosts 22 | iface swp5 23 | post-up ip link set promisc on dev swp5 24 | 25 | iface bridge 26 | bridge-vlan-aware yes 27 | bridge-ports swp5 28 | bridge-vids 10 29 | bridge-pvid 10 30 | 31 | iface vlan10 32 | vlan-id 10 33 | vlan-raw-device bridge 34 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/numbered/server101/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.1.101/24 10 | post-up ip link set promisc on dev eth1 11 | post-up ip route add 172.16.0.0/16 via 172.16.1.1 12 | post-up ip route add 10.0.0.0/8 via 172.16.1.1 13 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/numbered/server102/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.2.102/24 10 | post-up ip link set promisc on dev eth1 11 | post-up ip route add 172.16.0.0/16 via 172.16.2.1 12 | post-up ip route add 10.0.0.0/8 via 172.16.2.1 13 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/numbered/server103/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.3.103/24 10 | post-up ip link set promisc on dev eth1 11 | post-up ip route add 172.16.0.0/16 via 172.16.3.1 12 | post-up ip route add 10.0.0.0/8 via 172.16.3.1 13 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/numbered/server104/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.4.104/24 10 | post-up ip link set promisc on dev eth1 11 | post-up ip route add 172.16.0.0/16 via 172.16.4.1 12 | post-up ip route add 10.0.0.0/8 via 172.16.4.1 13 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/numbered/spine01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/numbered/spine01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/numbered/spine02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/numbered/spine02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/unnumbered/edge01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/unnumbered/edge01/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet static 3 | address 10.0.0.100/32 4 | 5 | auto eth0 6 | iface eth0 inet dhcp 7 | 8 | auto eth1 9 | iface eth1 inet manual 10 | 11 | auto eth1.2 12 | iface eth1.2 inet static 13 | address 169.254.254.2/30 14 | 15 | auto eth1.4 16 | iface eth1.4 inet static 17 | address 169.254.254.10/30 18 | 19 | auto eth2 20 | iface eth2 inet manual 21 | 22 | auto eth2.2 23 | iface eth2.2 inet static 24 | address 169.254.253.2/30 25 | 26 | auto eth2.4 27 | iface eth2.4 inet static 28 | address 169.254.253.10/30 29 | 30 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/unnumbered/exit01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/unnumbered/exit02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/unnumbered/internet/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/unnumbered/internet/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto swp1 8 | iface swp1 9 | 10 | auto swp2 11 | iface swp2 12 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/unnumbered/leaf01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/unnumbered/leaf01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # bridge to hosts 22 | iface swp5 23 | post-up ip link set promisc on dev swp5 24 | 25 | iface bridge 26 | bridge-vlan-aware yes 27 | bridge-ports swp5 28 | bridge-vids 10 29 | bridge-pvid 10 30 | 31 | iface vlan10 32 | vlan-id 10 33 | vlan-raw-device bridge 34 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/unnumbered/leaf02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/unnumbered/leaf02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # bridge to hosts 22 | iface swp5 23 | post-up ip link set promisc on dev swp5 24 | 25 | iface bridge 26 | bridge-vlan-aware yes 27 | bridge-ports swp5 28 | bridge-vids 10 29 | bridge-pvid 10 30 | 31 | iface vlan10 32 | vlan-id 10 33 | vlan-raw-device bridge 34 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/unnumbered/leaf03/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/unnumbered/leaf03/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # bridge to hosts 22 | iface swp5 23 | post-up ip link set promisc on dev swp5 24 | 25 | iface bridge 26 | bridge-vlan-aware yes 27 | bridge-ports swp5 28 | bridge-vids 10 29 | bridge-pvid 10 30 | 31 | iface vlan10 32 | vlan-id 10 33 | vlan-raw-device bridge 34 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/unnumbered/leaf04/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/unnumbered/leaf04/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # bridge to hosts 22 | iface swp5 23 | post-up ip link set promisc on dev swp5 24 | 25 | iface bridge 26 | bridge-vlan-aware yes 27 | bridge-ports swp5 28 | bridge-vids 10 29 | bridge-pvid 10 30 | 31 | iface vlan10 32 | vlan-id 10 33 | vlan-raw-device bridge 34 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/unnumbered/server101/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.1.101/24 10 | post-up ip link set promisc on dev eth1 11 | post-up ip route add 172.16.0.0/16 via 172.16.1.1 12 | post-up ip route add 10.0.0.0/8 via 172.16.1.1 13 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/unnumbered/server102/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.2.102/24 10 | post-up ip link set promisc on dev eth1 11 | post-up ip route add 172.16.0.0/16 via 172.16.2.1 12 | post-up ip route add 10.0.0.0/8 via 172.16.2.1 13 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/unnumbered/server102/server02/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.2.101/24 10 | post-up ip route add 172.16.0.0/16 via 172.16.2.1 11 | post-up ip route add 10.0.0.0/8 via 172.16.2.1 12 | 13 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/unnumbered/server103/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.3.103/24 10 | post-up ip link set promisc on dev eth1 11 | post-up ip route add 172.16.0.0/16 via 172.16.3.1 12 | post-up ip route add 10.0.0.0/8 via 172.16.3.1 13 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/unnumbered/server104/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.4.104/24 10 | post-up ip link set promisc on dev eth1 11 | post-up ip route add 172.16.0.0/16 via 172.16.4.1 12 | post-up ip route add 10.0.0.0/8 via 172.16.4.1 13 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/unnumbered/spine01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/unnumbered/spine01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/unnumbered/spine02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/config-files/unnumbered/spine02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/dummy.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: false 4 | tasks: 5 | - file: 6 | path: /home/vagrant/foo.txt 7 | state: touch 8 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/fetch.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | tasks: 4 | - name: Fetch interfaces file 5 | fetch: src=/etc/network/interfaces dest=./fetch-config 6 | - name: Fetch frr.conf file 7 | fetch: src=/etc/frr/frr.conf dest=./fetch-config 8 | 9 | - hosts: servers 10 | tasks: 11 | - name: Fetch daemon.json file 12 | fetch: src=/etc/docker/daemon.json dest=./fetch-config 13 | - name: Fetch sysctl.d file 14 | fetch: src=/etc/sysctl.d/99-frr.conf dest=./fetch-config 15 | 16 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/group_vars/all: -------------------------------------------------------------------------------- 1 | # Only put here in case it's needed - not currently used in this playbook 2 | 3 | 4 | scenario: unnumbered -------------------------------------------------------------------------------- /topologies/single-attach/bgp/ping.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: servers 3 | roles: 4 | - pingtest 5 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/reset-files/frr.conf: -------------------------------------------------------------------------------- 1 | # default to using syslog. /etc/rsyslog.d/45-frr.conf places the log 2 | # in /var/log/frr/frr.log 3 | log syslog informational 4 | 5 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/reset-files/interfaces: -------------------------------------------------------------------------------- 1 | # This file describes the network interfaces available on your system 2 | # and how to activate them. For more information, see interfaces(5). 3 | 4 | source /etc/network/interfaces.d/*.intf 5 | 6 | # The loopback network interface 7 | auto lo 8 | iface lo inet loopback 9 | 10 | # The primary network interface 11 | auto eth0 12 | iface eth0 inet dhcp 13 | 14 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/roles/add-mgmt-vrf/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: add mgmt vrf 3 | nclu: 4 | atomic: true 5 | commands: 6 | - add vrf mgmt 7 | description: "add mgmt vrf" 8 | async: 1 9 | poll: 0 10 | ignore_errors: true 11 | 12 | - name: Reconnect to switches 13 | local_action: wait_for port=22 host="{{ inventory_hostname }}" search_regex=OpenSSH delay=10 14 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/roles/copy-int-reboot-servers/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Turn off SSH rev DNS lookup 3 | lineinfile: 4 | path: /etc/ssh/sshd_config 5 | regexp: '^UseDNS ' 6 | line: UseDNS no 7 | 8 | - name: copy interfaces 9 | copy: src=config-files/{{scenario}}/{{ansible_hostname}}/interfaces dest=/etc/network/ 10 | 11 | - name: restart interfaces 12 | become: yes 13 | command: ifup -a --force 14 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/roles/copy_frr_daemons/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: copy FRR daemons 3 | copy: src=config-files/{{scenario}}/{{ansible_hostname}}/daemons dest=/etc/frr/ 4 | - name: copy FRR.conf 5 | copy: src=config-files/{{scenario}}/{{ansible_hostname}}/frr.conf dest=/etc/frr/ 6 | 7 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/roles/copy_interfaces/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: copy interfaces 3 | copy: src=config-files/{{scenario}}/{{ansible_hostname}}/interfaces dest=/etc/network/ 4 | 5 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/roles/enable_ipv6/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Remove the line disabling IPv6 3 | sysctl: 4 | name: net.ipv6.conf.all.disable_ipv6 5 | value: '1' 6 | state: absent 7 | reload: yes 8 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/roles/install_frr/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Add FRR repo key 3 | apt_key: 4 | url: https://deb.frrouting.org/frr/keys.asc 5 | state: present 6 | - name: Add FRR repo 7 | apt_repository: 8 | repo: deb https://deb.frrouting.org/frr xenial frr-stable 9 | state: present 10 | - name: Add FRR 11 | apt: 12 | name: frr 13 | state: present 14 | force_apt_get: True 15 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/roles/mv_ntp_mgmt_vrf/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: stop ntp 3 | shell: systemctl stop ntp 4 | - name: disable ntp 5 | shell: systemctl disable ntp 6 | - name: start ntp in the management vrf 7 | shell: systemctl start ntp@mgmt 8 | - name: enable ntp in the management vrf 9 | shell: systemctl enable ntp@mgmt 10 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/roles/pingtest/vars/main.yml: -------------------------------------------------------------------------------- 1 | ping_gateway: 2 | server101: 172.16.1.1 3 | server102: 172.16.2.1 4 | server103: 172.16.3.1 5 | server104: 172.16.4.1 6 | 7 | ping_local_nbr: 8 | server101: 172.16.2.102 9 | server102: 172.16.1.101 10 | server103: 172.16.4.104 11 | server104: 172.16.3.103 12 | 13 | ping_remote_nbr: 14 | server101: 172.16.4.104 15 | server102: 172.16.3.103 16 | server103: 172.16.2.102 17 | server104: 172.16.1.101 18 | 19 | internet_edge_ip: 172.16.253.1 20 | -------------------------------------------------------------------------------- /topologies/single-attach/bgp/roles/restart_switches/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: restarts switches with their new configuration 3 | shell: sleep 1 && shutdown -r 0 4 | become: yes 5 | async: 1 6 | poll: 0 7 | ignore_errors: true 8 | 9 | - name: Wait for switches to come back up 10 | wait_for_connection: 11 | timeout: 180 12 | delay: 15 13 | -------------------------------------------------------------------------------- /topologies/single-attach/dummy.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: false 4 | tasks: 5 | - file: 6 | path: /home/vagrant/foo.txt 7 | state: touch 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/ansible.cfg: -------------------------------------------------------------------------------- 1 | [defaults] 2 | inventory = ../.vagrant/provisioners/ansible/inventory/ 3 | host_key_checking=False 4 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/centralized/edge01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/centralized/exit01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/centralized/exit02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/centralized/internet/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/centralized/internet/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto swp1 8 | iface swp1 9 | 10 | auto swp2 11 | iface swp2 12 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/centralized/leaf01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/centralized/leaf02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/centralized/leaf03/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/centralized/leaf04/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/centralized/server101/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/centralized/server101/interfaces: -------------------------------------------------------------------------------- 1 | ## Configured by Ansible 2 | ######### 3 | 4 | auto lo 5 | iface lo inet loopback 6 | 7 | auto eth0 8 | iface eth0 inet dhcp 9 | 10 | auto eth1 11 | iface eth1 inet static 12 | mtu 9000 13 | # Required for Vagrant 14 | post-up ip link set promisc on dev eth1 15 | address 172.16.1.101/24 16 | post-up ip route add 172.16.0.0/16 via 172.16.1.1 17 | 18 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/centralized/server102/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/centralized/server102/interfaces: -------------------------------------------------------------------------------- 1 | ## Configured by Ansible 2 | ######### 3 | 4 | auto lo 5 | iface lo inet loopback 6 | 7 | auto eth0 8 | iface eth0 inet dhcp 9 | 10 | auto eth1 11 | iface eth1 inet static 12 | mtu 9000 13 | # Required for Vagrant 14 | post-up ip link set promisc on dev eth1 15 | address 172.16.2.102/24 16 | post-up ip route add 172.16.0.0/16 via 172.16.2.1 17 | 18 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/centralized/server103/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/centralized/server103/interfaces: -------------------------------------------------------------------------------- 1 | ## Configured by Ansible 2 | ######### 3 | 4 | auto lo 5 | iface lo inet loopback 6 | 7 | auto eth0 8 | iface eth0 inet dhcp 9 | 10 | auto eth1 11 | iface eth1 inet static 12 | mtu 9000 13 | # Required for Vagrant 14 | post-up ip link set promisc on dev eth1 15 | address 172.16.1.103/24 16 | post-up ip route add 172.16.0.0/16 via 172.16.1.1 17 | 18 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/centralized/server104/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/centralized/server104/interfaces: -------------------------------------------------------------------------------- 1 | ## Configured by Ansible 2 | ######### 3 | 4 | auto lo 5 | iface lo inet loopback 6 | 7 | auto eth0 8 | iface eth0 inet dhcp 9 | 10 | auto eth1 11 | iface eth1 inet static 12 | mtu 9000 13 | # Required for Vagrant 14 | post-up ip link set promisc on dev eth1 15 | address 172.16.2.104/24 16 | post-up ip route add 172.16.0.0/16 via 172.16.2.1 17 | 18 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/centralized/spine01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/centralized/spine01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | mtu 9216 17 | iface swp2 18 | mtu 9216 19 | iface swp3 20 | mtu 9216 21 | iface swp4 22 | mtu 9216 23 | iface swp5 24 | mtu 9216 25 | iface swp6 26 | mtu 9216 27 | 28 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/centralized/spine02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/centralized/spine02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | mtu 9216 17 | iface swp2 18 | mtu 9216 19 | iface swp3 20 | mtu 9216 21 | iface swp4 22 | mtu 9216 23 | iface swp5 24 | mtu 9216 25 | iface swp6 26 | mtu 9216 27 | 28 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/distributed/edge01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/distributed/exit01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/distributed/exit02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/distributed/internet/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/distributed/internet/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto swp1 8 | iface swp1 9 | 10 | auto swp2 11 | iface swp2 12 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/distributed/leaf01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/distributed/leaf02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/distributed/leaf03/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/distributed/leaf04/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/distributed/server101/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/distributed/server101/interfaces: -------------------------------------------------------------------------------- 1 | ## Configured by Ansible 2 | ######### 3 | 4 | auto lo 5 | iface lo inet loopback 6 | 7 | auto eth0 8 | iface eth0 inet dhcp 9 | 10 | auto eth1 11 | iface eth1 inet static 12 | mtu 9000 13 | # Required for Vagrant 14 | post-up ip link set promisc on dev eth1 15 | address 172.16.1.101/24 16 | post-up ip route add 172.16.0.0/16 via 172.16.1.1 17 | 18 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/distributed/server102/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/distributed/server102/interfaces: -------------------------------------------------------------------------------- 1 | ## Configured by Ansible 2 | ######### 3 | 4 | auto lo 5 | iface lo inet loopback 6 | 7 | auto eth0 8 | iface eth0 inet dhcp 9 | 10 | auto eth1 11 | iface eth1 inet static 12 | mtu 9000 13 | # Required for Vagrant 14 | post-up ip link set promisc on dev eth1 15 | address 172.16.2.102/24 16 | post-up ip route add 172.16.0.0/16 via 172.16.2.1 17 | 18 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/distributed/server103/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/distributed/server103/interfaces: -------------------------------------------------------------------------------- 1 | ## Configured by Ansible 2 | ######### 3 | 4 | auto lo 5 | iface lo inet loopback 6 | 7 | auto eth0 8 | iface eth0 inet dhcp 9 | 10 | auto eth1 11 | iface eth1 inet static 12 | mtu 9000 13 | # Required for Vagrant 14 | post-up ip link set promisc on dev eth1 15 | address 172.16.1.103/24 16 | post-up ip route add 172.16.0.0/16 via 172.16.1.1 17 | 18 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/distributed/server104/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/distributed/server104/interfaces: -------------------------------------------------------------------------------- 1 | ## Configured by Ansible 2 | ######### 3 | 4 | auto lo 5 | iface lo inet loopback 6 | 7 | auto eth0 8 | iface eth0 inet dhcp 9 | 10 | auto eth1 11 | iface eth1 inet static 12 | mtu 9000 13 | # Required for Vagrant 14 | post-up ip link set promisc on dev eth1 15 | address 172.16.2.104/24 16 | post-up ip route add 172.16.0.0/16 via 172.16.2.1 17 | 18 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/distributed/spine01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/distributed/spine01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | mtu 9216 17 | iface swp2 18 | mtu 9216 19 | iface swp3 20 | mtu 9216 21 | iface swp4 22 | mtu 9216 23 | iface swp5 24 | mtu 9216 25 | iface swp6 26 | mtu 9216 27 | 28 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/distributed/spine02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/distributed/spine02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | mtu 9216 17 | iface swp2 18 | mtu 9216 19 | iface swp3 20 | mtu 9216 21 | iface swp4 22 | mtu 9216 23 | iface swp5 24 | mtu 9216 25 | iface swp6 26 | mtu 9216 27 | 28 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/ospf-ibgp/edge01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/ospf-ibgp/exit01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/ospf-ibgp/exit02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/ospf-ibgp/internet/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=no 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/ospf-ibgp/internet/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto swp1 8 | iface swp1 9 | 10 | auto swp2 11 | iface swp2 12 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/ospf-ibgp/leaf01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/ospf-ibgp/leaf02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/ospf-ibgp/leaf03/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/ospf-ibgp/leaf04/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/ospf-ibgp/server101/interfaces: -------------------------------------------------------------------------------- 1 | ## Configured by Ansible 2 | ######### 3 | 4 | auto lo 5 | iface lo inet loopback 6 | 7 | auto eth0 8 | iface eth0 inet dhcp 9 | 10 | auto eth1 11 | iface eth1 inet static 12 | mtu 9000 13 | # Required for Vagrant 14 | post-up ip link set promisc on dev eth1 15 | address 172.16.1.101/24 16 | post-up ip route add 172.16.0.0/16 via 172.16.1.1 17 | 18 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/ospf-ibgp/server102/interfaces: -------------------------------------------------------------------------------- 1 | ## Configured by Ansible 2 | ######### 3 | 4 | auto lo 5 | iface lo inet loopback 6 | 7 | auto eth0 8 | iface eth0 inet dhcp 9 | 10 | auto eth1 11 | iface eth1 inet static 12 | mtu 9000 13 | # Required for Vagrant 14 | post-up ip link set promisc on dev eth1 15 | address 172.16.2.102/24 16 | post-up ip route add 172.16.0.0/16 via 172.16.2.1 17 | 18 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/ospf-ibgp/server103/interfaces: -------------------------------------------------------------------------------- 1 | ## Configured by Ansible 2 | ######### 3 | 4 | auto lo 5 | iface lo inet loopback 6 | 7 | auto eth0 8 | iface eth0 inet dhcp 9 | 10 | auto eth1 11 | iface eth1 inet static 12 | mtu 9000 13 | # Required for Vagrant 14 | post-up ip link set promisc on dev eth1 15 | address 172.16.1.103/24 16 | post-up ip route add 172.16.0.0/16 via 172.16.1.1 17 | 18 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/ospf-ibgp/server104/interfaces: -------------------------------------------------------------------------------- 1 | ## Configured by Ansible 2 | ######### 3 | 4 | auto lo 5 | iface lo inet loopback 6 | 7 | auto eth0 8 | iface eth0 inet dhcp 9 | 10 | auto eth1 11 | iface eth1 inet static 12 | mtu 9000 13 | # Required for Vagrant 14 | post-up ip link set promisc on dev eth1 15 | address 172.16.2.104/24 16 | post-up ip route add 172.16.0.0/16 via 172.16.2.1 17 | 18 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/ospf-ibgp/spine01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/ospf-ibgp/spine01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | mtu 9216 17 | iface swp2 18 | mtu 9216 19 | iface swp3 20 | mtu 9216 21 | iface swp4 22 | mtu 9216 23 | iface swp5 24 | mtu 9216 25 | iface swp6 26 | mtu 9216 27 | 28 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/ospf-ibgp/spine02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=yes 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/config-files/ospf-ibgp/spine02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | mtu 9216 17 | iface swp2 18 | mtu 9216 19 | iface swp3 20 | mtu 9216 21 | iface swp4 22 | mtu 9216 23 | iface swp5 24 | mtu 9216 25 | iface swp6 26 | mtu 9216 27 | 28 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/group_vars/all: -------------------------------------------------------------------------------- 1 | # Only put here in case it's needed - not currently used in this playbook 2 | 3 | 4 | scenario: distributed 5 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/ping.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: servers 3 | roles: 4 | - pingtest 5 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/reset-files/frr.conf: -------------------------------------------------------------------------------- 1 | # default to using syslog. /etc/rsyslog.d/45-frr.conf places the log 2 | # in /var/log/frr/frr.log 3 | log syslog informational 4 | 5 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/reset-files/interfaces: -------------------------------------------------------------------------------- 1 | # This file describes the network interfaces available on your system 2 | # and how to activate them. For more information, see interfaces(5). 3 | 4 | source /etc/network/interfaces.d/*.intf 5 | 6 | # The loopback network interface 7 | auto lo 8 | iface lo inet loopback 9 | 10 | # The primary network interface 11 | auto eth0 12 | iface eth0 inet dhcp 13 | 14 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/roles/add-mgmt-vrf/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: add mgmt vrf 3 | nclu: 4 | atomic: true 5 | commands: 6 | - add vrf mgmt 7 | description: "add mgmt vrf" 8 | async: 1 9 | poll: 0 10 | ignore_errors: true 11 | 12 | - name: Reconnect to switches 13 | local_action: wait_for port=22 host="{{ inventory_hostname }}" search_regex=OpenSSH delay=10 14 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/roles/copy-int-reboot-servers/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Turn off SSH rev DNS lookup 3 | lineinfile: 4 | path: /etc/ssh/sshd_config 5 | regexp: '^UseDNS ' 6 | line: UseDNS no 7 | 8 | - name: copy interfaces 9 | copy: src=config-files/{{scenario}}/{{ansible_hostname}}/interfaces dest=/etc/network/ 10 | 11 | - name: restart interfaces 12 | become: yes 13 | command: ifup -a 14 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/roles/copy_frr_daemons/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: copy FRR daemons 3 | copy: src=config-files/{{scenario}}/{{ansible_hostname}}/daemons dest=/etc/frr/ 4 | - name: copy FRR.conf 5 | copy: src=config-files/{{scenario}}/{{ansible_hostname}}/frr.conf dest=/etc/frr/ 6 | 7 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/roles/copy_interfaces/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: copy interfaces 3 | copy: src=config-files/{{scenario}}/{{ansible_hostname}}/interfaces dest=/etc/network/ 4 | 5 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/roles/enable_ipv6/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Remove the line disabling IPv6 3 | sysctl: 4 | name: net.ipv6.conf.all.disable_ipv6 5 | value: '1' 6 | state: absent 7 | reload: yes 8 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/roles/install_frr/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Add FRR repo key 3 | apt_key: 4 | url: https://deb.frrouting.org/frr/keys.asc 5 | state: present 6 | - name: Add FRR repo 7 | apt_repository: 8 | repo: deb https://deb.frrouting.org/frr xenial frr-stable 9 | state: present 10 | - name: Add FRR 11 | apt: 12 | name: frr 13 | state: present 14 | force_apt_get: True 15 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/roles/mv_ntp_mgmt_vrf/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: stop ntp 3 | shell: systemctl stop ntp 4 | - name: disable ntp 5 | shell: systemctl disable ntp 6 | - name: start ntp in the management vrf 7 | shell: systemctl start ntp@mgmt 8 | - name: enable ntp in the management vrf 9 | shell: systemctl enable ntp@mgmt 10 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/roles/pingtest/vars/main.yml: -------------------------------------------------------------------------------- 1 | ping_gateway: 2 | server101: 172.16.1.1 3 | server102: 172.16.2.1 4 | server103: 172.16.1.1 5 | server104: 172.16.2.1 6 | 7 | ping_local_nbr: 8 | server101: 172.16.1.103 9 | server102: 172.16.2.104 10 | server103: 172.16.1.101 11 | server104: 172.16.2.102 12 | 13 | ping_remote_nbr: 14 | server101: 172.16.2.104 15 | server102: 172.16.1.101 16 | server103: 172.16.2.102 17 | server104: 172.16.2.102 18 | 19 | internet_edge_ip: 172.16.253.1 20 | -------------------------------------------------------------------------------- /topologies/single-attach/evpn/roles/restart_switches/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: restarts switches with their new configuration 3 | shell: sleep 1 && shutdown -r 0 4 | become: yes 5 | async: 1 6 | poll: 0 7 | ignore_errors: true 8 | 9 | - name: Wait for switches to come back up 10 | wait_for_connection: 11 | timeout: 180 12 | delay: 15 13 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/ansible.cfg: -------------------------------------------------------------------------------- 1 | [defaults] 2 | inventory = ../.vagrant/provisioners/ansible/inventory/ 3 | host_key_checking=False 4 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/exit01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/exit01/frr.conf: -------------------------------------------------------------------------------- 1 | interface lo 2 | ip ospf area 0.0.0.0 3 | ip address 10.0.0.101/32 4 | ! 5 | interface swp1 6 | ip ospf network point-to-point 7 | ip ospf area 0.0.0.0 8 | ip address 10.0.0.101/32 9 | ! 10 | interface swp2 11 | ip ospf network point-to-point 12 | ip ospf area 0.0.0.0 13 | ip address 10.0.0.101/32 14 | ! 15 | router ospf 16 | router-id 10.0.0.101 17 | log-adjacency-changes detail 18 | passive-interface default 19 | no passive-interface swp1 20 | no passive-interface swp2 21 | ! 22 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/exit01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # uplinks 22 | iface swp3 23 | 24 | iface swp4 25 | 26 | iface swp5 27 | 28 | iface swp6 -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/exit02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/exit02/frr.conf: -------------------------------------------------------------------------------- 1 | interface lo 2 | ip ospf area 0.0.0.0 3 | ip address 10.0.0.102/32 4 | ! 5 | interface swp1 6 | ip ospf network point-to-point 7 | ip ospf area 0.0.0.0 8 | ip address 10.0.0.102/32 9 | ! 10 | interface swp2 11 | ip ospf network point-to-point 12 | ip ospf area 0.0.0.0 13 | ip address 10.0.0.102/32 14 | ! 15 | router ospf 16 | router-id 10.0.0.102 17 | log-adjacency-changes detail 18 | passive-interface default 19 | no passive-interface swp1 20 | no passive-interface swp2 21 | ! 22 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/exit02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # uplinks 22 | iface swp3 23 | 24 | iface swp4 25 | 26 | iface swp5 27 | 28 | iface swp6 -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/leaf01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/leaf01/frr.conf: -------------------------------------------------------------------------------- 1 | interface lo 2 | ip ospf area 0.0.0.0 3 | ip address 10.0.0.11/32 4 | ! 5 | interface swp1 6 | ip ospf network point-to-point 7 | ip ospf area 0.0.0.0 8 | ip address 10.0.0.11/32 9 | ! 10 | interface swp2 11 | ip ospf network point-to-point 12 | ip ospf area 0.0.0.0 13 | ip address 10.0.0.11/32 14 | ! 15 | interface swp5 16 | ip ospf network point-to-point 17 | ip ospf area 1 18 | ip address 10.0.0.11/32 19 | ! 20 | router ospf 21 | router-id 10.0.0.11 22 | log-adjacency-changes detail 23 | passive-interface lo 24 | area 1 stub no-summary 25 | ! 26 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/leaf01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | iface mgmt 6 | address 127.0.0.1/8 7 | vrf-table auto 8 | 9 | iface eth0 inet dhcp 10 | vrf mgmt 11 | 12 | 13 | # uplinks 14 | iface swp1 15 | 16 | iface swp2 17 | 18 | # hosts 19 | iface swp5 20 | 21 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/leaf02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/leaf02/frr.conf: -------------------------------------------------------------------------------- 1 | interface lo 2 | ip ospf area 0.0.0.0 3 | ip address 10.0.0.12/32 4 | ! 5 | interface swp1 6 | ip ospf network point-to-point 7 | ip ospf area 0.0.0.0 8 | ip address 10.0.0.12/32 9 | ! 10 | interface swp2 11 | ip ospf network point-to-point 12 | ip ospf area 0.0.0.0 13 | ip address 10.0.0.12/32 14 | ! 15 | interface swp5 16 | ip ospf network point-to-point 17 | ip ospf area 1 18 | ip address 10.0.0.12/32 19 | ! 20 | router ospf 21 | router-id 10.0.0.12 22 | log-adjacency-changes detail 23 | passive-interface lo 24 | area 1 stub no-summary 25 | ! 26 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/leaf02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | iface mgmt 6 | address 127.0.0.1/8 7 | vrf-table auto 8 | 9 | iface eth0 inet dhcp 10 | vrf mgmt 11 | 12 | 13 | # uplinks 14 | iface swp1 15 | 16 | iface swp2 17 | 18 | # hosts 19 | iface swp5 20 | 21 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/leaf03/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/leaf03/frr.conf: -------------------------------------------------------------------------------- 1 | interface lo 2 | ip ospf area 0.0.0.0 3 | ip address 10.0.0.13/32 4 | ! 5 | interface swp1 6 | ip ospf network point-to-point 7 | ip ospf area 0.0.0.0 8 | ip address 10.0.0.13/32 9 | ! 10 | interface swp2 11 | ip ospf network point-to-point 12 | ip ospf area 0.0.0.0 13 | ip address 10.0.0.13/32 14 | ! 15 | interface swp5 16 | ip ospf network point-to-point 17 | ip ospf area 1 18 | ip address 10.0.0.13/32 19 | ! 20 | router ospf 21 | router-id 10.0.0.13 22 | log-adjacency-changes detail 23 | passive-interface lo 24 | area 1 stub no-summary 25 | ! 26 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/leaf03/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | iface mgmt 6 | address 127.0.0.1/8 7 | vrf-table auto 8 | 9 | iface eth0 inet dhcp 10 | vrf mgmt 11 | 12 | 13 | # uplinks 14 | iface swp1 15 | 16 | iface swp2 17 | 18 | # hosts 19 | iface swp5 20 | 21 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/leaf04/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/leaf04/frr.conf: -------------------------------------------------------------------------------- 1 | interface lo 2 | ip ospf area 0.0.0.0 3 | ip address 10.0.0.14/32 4 | ! 5 | interface swp1 6 | ip ospf network point-to-point 7 | ip ospf area 0.0.0.0 8 | ip address 10.0.0.14/32 9 | ! 10 | interface swp2 11 | ip ospf network point-to-point 12 | ip ospf area 0.0.0.0 13 | ip address 10.0.0.14/32 14 | ! 15 | interface swp5 16 | ip ospf network point-to-point 17 | ip ospf area 1 18 | ip address 10.0.0.14/32 19 | ! 20 | router ospf 21 | router-id 10.0.0.14 22 | log-adjacency-changes detail 23 | passive-interface lo 24 | area 1 stub no-summary 25 | ! 26 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/leaf04/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | iface mgmt 6 | address 127.0.0.1/8 7 | vrf-table auto 8 | 9 | iface eth0 inet dhcp 10 | vrf mgmt 11 | 12 | 13 | # uplinks 14 | iface swp1 15 | 16 | iface swp2 17 | 18 | # hosts 19 | iface swp5 20 | 21 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/server101/daemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "bip": "192.168.10.1/24" 3 | } 4 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/server101/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/server101/frr.conf: -------------------------------------------------------------------------------- 1 | # default to using syslog. /etc/rsyslog.d/45-frr.conf places the log 2 | # in /var/log/frr/frr.log 3 | log syslog informational 4 | interface lo 5 | ip ospf area 1 6 | 7 | interface eth1 8 | ip ospf network point-to-point 9 | ip ospf area 1 10 | 11 | interface docker0 12 | ip ospf area 1 13 | 14 | router ospf 15 | ospf router-id 176.16.1.101 16 | passive-interface lo 17 | passive-interface docker0 18 | area 1 stub no-summary 19 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/server101/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | post-up ip address add 172.16.1.101/32 dev lo 4 | 5 | auto eth0 6 | iface eth0 inet dhcp 7 | 8 | auto eth1 9 | iface eth1 inet static 10 | address 172.16.1.101/32 11 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/server102/daemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "bip": "192.168.11.1/24" 3 | } 4 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/server102/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/server102/frr.conf: -------------------------------------------------------------------------------- 1 | # default to using syslog. /etc/rsyslog.d/45-frr.conf places the log 2 | # in /var/log/frr/frr.log 3 | log syslog informational 4 | interface lo 5 | ip ospf area 1 6 | 7 | interface eth1 8 | ip ospf network point-to-point 9 | ip ospf area 1 10 | 11 | interface docker0 12 | ip ospf area 1 13 | 14 | router ospf 15 | ospf router-id 176.16.2.102 16 | passive-interface lo 17 | passive-interface docker0 18 | area 1 stub no-summary 19 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/server102/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | post-up ip address add 172.16.2.102/32 dev lo 4 | 5 | auto eth0 6 | iface eth0 inet dhcp 7 | 8 | auto eth1 9 | iface eth1 inet static 10 | address 172.16.2.102/32 11 | 12 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/server103/daemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "bip": "192.168.12.1/24" 3 | } 4 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/server103/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/server103/frr.conf: -------------------------------------------------------------------------------- 1 | # default to using syslog. /etc/rsyslog.d/45-frr.conf places the log 2 | # in /var/log/frr/frr.log 3 | log syslog informational 4 | interface lo 5 | ip ospf area 1 6 | 7 | interface eth1 8 | ip ospf network point-to-point 9 | ip ospf area 1 10 | 11 | interface docker0 12 | ip ospf area 1 13 | 14 | router ospf 15 | ospf router-id 176.16.3.103 16 | passive-interface lo 17 | passive-interface docker0 18 | area 1 stub no-summary 19 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/server103/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | post-up ip address add 172.16.3.103/32 dev lo 4 | 5 | auto eth0 6 | iface eth0 inet dhcp 7 | 8 | auto eth1 9 | iface eth1 inet static 10 | address 172.16.3.103/32 11 | 12 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/server104/daemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "bip": "192.168.13.1/24" 3 | } 4 | 5 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/server104/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/server104/frr.conf: -------------------------------------------------------------------------------- 1 | # default to using syslog. /etc/rsyslog.d/45-frr.conf places the log 2 | # in /var/log/frr/frr.log 3 | log syslog informational 4 | interface lo 5 | ip ospf area 1 6 | 7 | interface eth1 8 | ip ospf network point-to-point 9 | ip ospf area 1 10 | 11 | interface docker0 12 | ip ospf area 1 13 | 14 | router ospf 15 | ospf router-id 176.16.4.104 16 | passive-interface lo 17 | passive-interface docker0 18 | area 1 stub no-summary 19 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/server104/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | post-up ip address add 172.16.4.104/32 dev lo 4 | 5 | auto eth0 6 | iface eth0 inet dhcp 7 | 8 | auto eth1 9 | iface eth1 inet static 10 | address 172.16.4.104/32 11 | 12 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/spine01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/spine01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/spine02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/docker/spine02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/numbered/edge01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/numbered/exit01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/numbered/exit01/frr.conf: -------------------------------------------------------------------------------- 1 | interface lo 2 | ip ospf area 0.0.0.0 3 | ip address 10.0.0.101/32 4 | ! 5 | interface swp1 6 | ip ospf network point-to-point 7 | ip ospf area 0.0.0.0 8 | ip address 10.127.0.9/31 9 | ! 10 | interface swp2 11 | ip ospf network point-to-point 12 | ip ospf area 0.0.0.0 13 | ip address 10.127.1.9/31 14 | ! 15 | router ospf 16 | router-id 10.0.0.101 17 | log-adjacency-changes detail 18 | passive-interface default 19 | no passive-interface swp1 20 | no passive-interface swp2 21 | ! 22 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/numbered/exit01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # uplinks 22 | iface swp3 23 | 24 | iface swp4 25 | 26 | iface swp5 27 | 28 | iface swp6 -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/numbered/exit02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/numbered/exit02/frr.conf: -------------------------------------------------------------------------------- 1 | interface lo 2 | ip ospf area 0.0.0.0 3 | ip address 10.0.0.102/32 4 | ! 5 | interface swp1 6 | ip ospf network point-to-point 7 | ip ospf area 0.0.0.0 8 | ip address 10.127.0.11/31 9 | ! 10 | interface swp2 11 | ip ospf network point-to-point 12 | ip ospf area 0.0.0.0 13 | ip address 10.127.1.11/31 14 | ! 15 | router ospf 16 | router-id 10.0.0.102 17 | log-adjacency-changes detail 18 | passive-interface default 19 | no passive-interface swp1 20 | no passive-interface swp2 21 | ! 22 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/numbered/exit02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # uplinks 22 | iface swp3 23 | 24 | iface swp4 25 | 26 | iface swp5 27 | 28 | iface swp6 -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/numbered/internet/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/numbered/leaf01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/numbered/leaf01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # bridge to hosts 22 | iface swp5 23 | post-up ip link set promisc on dev swp5 24 | 25 | iface bridge 26 | bridge-vlan-aware yes 27 | bridge-ports swp5 28 | bridge-vids 10 29 | bridge-pvid 10 30 | 31 | iface vlan10 32 | vlan-id 10 33 | vlan-raw-device bridge 34 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/numbered/leaf02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/numbered/leaf02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # bridge to hosts 22 | iface swp5 23 | post-up ip link set promisc on dev swp5 24 | 25 | iface bridge 26 | bridge-vlan-aware yes 27 | bridge-ports swp5 28 | bridge-vids 10 29 | bridge-pvid 10 30 | 31 | iface vlan10 32 | vlan-id 10 33 | vlan-raw-device bridge 34 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/numbered/leaf03/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/numbered/leaf03/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # bridge to hosts 22 | iface swp5 23 | post-up ip link set promisc on dev swp5 24 | 25 | iface bridge 26 | bridge-vlan-aware yes 27 | bridge-ports swp5 28 | bridge-vids 10 29 | bridge-pvid 10 30 | 31 | iface vlan10 32 | vlan-id 10 33 | vlan-raw-device bridge 34 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/numbered/leaf04/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/numbered/leaf04/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # bridge to hosts 22 | iface swp5 23 | post-up ip link set promisc on dev swp5 24 | 25 | iface bridge 26 | bridge-vlan-aware yes 27 | bridge-ports swp5 28 | bridge-vids 10 29 | bridge-pvid 10 30 | 31 | iface vlan10 32 | vlan-id 10 33 | vlan-raw-device bridge 34 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/numbered/server101/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.1.101/24 10 | post-up ip link set promisc on dev eth1 11 | post-up ip route add 172.16.0.0/16 via 172.16.1.1 12 | post-up ip route add 10.0.0.0/8 via 172.16.1.1 13 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/numbered/server102/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.2.102/24 10 | post-up ip link set promisc on dev eth1 11 | post-up ip route add 172.16.0.0/16 via 172.16.2.1 12 | post-up ip route add 10.0.0.0/8 via 172.16.2.1 13 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/numbered/server103/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.3.103/24 10 | post-up ip link set promisc on dev eth1 11 | post-up ip route add 172.16.0.0/16 via 172.16.3.1 12 | post-up ip route add 10.0.0.0/8 via 172.16.3.1 13 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/numbered/server104/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.4.104/24 10 | post-up ip link set promisc on dev eth1 11 | post-up ip route add 172.16.0.0/16 via 172.16.4.1 12 | post-up ip route add 10.0.0.0/8 via 172.16.4.1 13 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/numbered/spine01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/numbered/spine01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/numbered/spine02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/numbered/spine02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/unnumbered/edge01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/unnumbered/exit01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/unnumbered/exit01/frr.conf: -------------------------------------------------------------------------------- 1 | interface lo 2 | ip ospf area 0.0.0.0 3 | ip address 10.0.0.101/32 4 | ! 5 | interface swp1 6 | ip ospf network point-to-point 7 | ip ospf area 0.0.0.0 8 | ip address 10.0.0.101/32 9 | ! 10 | interface swp2 11 | ip ospf network point-to-point 12 | ip ospf area 0.0.0.0 13 | ip address 10.0.0.101/32 14 | ! 15 | router ospf 16 | router-id 10.0.0.101 17 | log-adjacency-changes detail 18 | passive-interface default 19 | no passive-interface swp1 20 | no passive-interface swp2 21 | ! 22 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/unnumbered/exit01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # uplinks 22 | iface swp3 23 | 24 | iface swp4 25 | 26 | iface swp5 27 | 28 | iface swp6 -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/unnumbered/exit02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/unnumbered/exit02/frr.conf: -------------------------------------------------------------------------------- 1 | interface lo 2 | ip ospf area 0.0.0.0 3 | ip address 10.0.0.102/32 4 | ! 5 | interface swp1 6 | ip ospf network point-to-point 7 | ip ospf area 0.0.0.0 8 | ip address 10.0.0.102/32 9 | ! 10 | interface swp2 11 | ip ospf network point-to-point 12 | ip ospf area 0.0.0.0 13 | ip address 10.0.0.102/32 14 | ! 15 | router ospf 16 | router-id 10.0.0.102 17 | log-adjacency-changes detail 18 | passive-interface default 19 | no passive-interface swp1 20 | no passive-interface swp2 21 | ! 22 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/unnumbered/exit02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # uplinks 22 | iface swp3 23 | 24 | iface swp4 25 | 26 | iface swp5 27 | 28 | iface swp6 -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/unnumbered/internet/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/unnumbered/leaf01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/unnumbered/leaf01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # bridge to hosts 22 | iface swp5 23 | post-up ip link set promisc on dev swp5 24 | 25 | iface bridge 26 | bridge-vlan-aware yes 27 | bridge-ports swp5 28 | bridge-vids 10 29 | bridge-pvid 10 30 | 31 | iface vlan10 32 | vlan-id 10 33 | vlan-raw-device bridge 34 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/unnumbered/leaf02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/unnumbered/leaf02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # bridge to hosts 22 | iface swp5 23 | post-up ip link set promisc on dev swp5 24 | 25 | iface bridge 26 | bridge-vlan-aware yes 27 | bridge-ports swp5 28 | bridge-vids 10 29 | bridge-pvid 10 30 | 31 | iface vlan10 32 | vlan-id 10 33 | vlan-raw-device bridge 34 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/unnumbered/leaf03/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/unnumbered/leaf03/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # bridge to hosts 22 | iface swp5 23 | post-up ip link set promisc on dev swp5 24 | 25 | iface bridge 26 | bridge-vlan-aware yes 27 | bridge-ports swp5 28 | bridge-vids 10 29 | bridge-pvid 10 30 | 31 | iface vlan10 32 | vlan-id 10 33 | vlan-raw-device bridge 34 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/unnumbered/leaf04/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/unnumbered/leaf04/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | auto lo 4 | iface lo inet loopback 5 | 6 | auto mgmt 7 | iface mgmt 8 | address 127.0.0.1/8 9 | vrf-table auto 10 | 11 | auto eth0 12 | iface eth0 inet dhcp 13 | vrf mgmt 14 | 15 | 16 | # uplinks 17 | iface swp1 18 | 19 | iface swp2 20 | 21 | # bridge to hosts 22 | iface swp5 23 | post-up ip link set promisc on dev swp5 24 | 25 | iface bridge 26 | bridge-vlan-aware yes 27 | bridge-ports swp5 28 | bridge-vids 10 29 | bridge-pvid 10 30 | 31 | iface vlan10 32 | vlan-id 10 33 | vlan-raw-device bridge 34 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/unnumbered/server101/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.1.101/24 10 | post-up ip link set promisc on dev eth1 11 | post-up ip route add 172.16.0.0/16 via 172.16.1.1 12 | post-up ip route add 10.0.0.0/8 via 172.16.1.1 13 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/unnumbered/server102/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.2.102/24 10 | post-up ip link set promisc on dev eth1 11 | post-up ip route add 172.16.0.0/16 via 172.16.2.1 12 | post-up ip route add 10.0.0.0/8 via 172.16.2.1 13 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/unnumbered/server102/server02/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.2.101/24 10 | post-up ip route add 172.16.0.0/16 via 172.16.2.1 11 | post-up ip route add 10.0.0.0/8 via 172.16.2.1 12 | 13 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/unnumbered/server103/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.3.103/24 10 | post-up ip link set promisc on dev eth1 11 | post-up ip route add 172.16.0.0/16 via 172.16.3.1 12 | post-up ip route add 10.0.0.0/8 via 172.16.3.1 13 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/unnumbered/server104/interfaces: -------------------------------------------------------------------------------- 1 | auto lo 2 | iface lo inet loopback 3 | 4 | auto eth0 5 | iface eth0 inet dhcp 6 | 7 | auto eth1 8 | iface eth1 inet static 9 | address 172.16.4.104/24 10 | post-up ip link set promisc on dev eth1 11 | post-up ip route add 172.16.0.0/16 via 172.16.4.1 12 | post-up ip route add 10.0.0.0/8 via 172.16.4.1 13 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/unnumbered/spine01/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/unnumbered/spine01/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/unnumbered/spine02/daemons: -------------------------------------------------------------------------------- 1 | zebra=yes 2 | bgpd=no 3 | ospfd=yes 4 | ospf6d=no 5 | ripd=no 6 | ripngd=no 7 | isisd=no 8 | babeld=no 9 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/config-files/unnumbered/spine02/interfaces: -------------------------------------------------------------------------------- 1 | auto all 2 | 3 | iface lo inet loopback 4 | 5 | # Management interface 6 | 7 | iface eth0 inet dhcp 8 | vrf mgmt 9 | 10 | iface mgmt 11 | address 127.0.0.1/8 12 | vrf-table auto 13 | 14 | # downlinks 15 | iface swp1 16 | iface swp2 17 | iface swp3 18 | iface swp4 19 | iface swp5 20 | iface swp6 21 | 22 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/dummy.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: false 4 | tasks: 5 | - file: 6 | path: /home/vagrant/foo.txt 7 | state: touch 8 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/fetch.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | tasks: 4 | - name: Fetch interfaces file 5 | fetch: src=/etc/network/interfaces dest=./fetch-config 6 | - name: Fetch frr.conf file 7 | fetch: src=/etc/frr/frr.conf dest=./fetch-config 8 | 9 | - hosts: servers 10 | tasks: 11 | - name: Fetch daemon.json file 12 | fetch: src=/etc/docker/daemon.json dest=./fetch-config 13 | - name: Fetch sysctl.d file 14 | fetch: src=/etc/sysctl.d/99-frr.conf dest=./fetch-config 15 | 16 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/group_vars/all: -------------------------------------------------------------------------------- 1 | # Only put here in case it's needed - not currently used in this playbook 2 | 3 | 4 | scenario: unnumbered -------------------------------------------------------------------------------- /topologies/single-attach/ospf/ping.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: servers 3 | roles: 4 | - pingtest 5 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/reset-files/frr.conf: -------------------------------------------------------------------------------- 1 | # default to using syslog. /etc/rsyslog.d/45-frr.conf places the log 2 | # in /var/log/frr/frr.log 3 | log syslog informational 4 | 5 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/reset-files/interfaces: -------------------------------------------------------------------------------- 1 | # This file describes the network interfaces available on your system 2 | # and how to activate them. For more information, see interfaces(5). 3 | 4 | source /etc/network/interfaces.d/*.intf 5 | 6 | # The loopback network interface 7 | auto lo 8 | iface lo inet loopback 9 | 10 | # The primary network interface 11 | auto eth0 12 | iface eth0 inet dhcp 13 | 14 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/roles/add-mgmt-vrf/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: add mgmt vrf 3 | nclu: 4 | atomic: true 5 | commands: 6 | - add vrf mgmt 7 | description: "add mgmt vrf" 8 | async: 1 9 | poll: 0 10 | ignore_errors: true 11 | 12 | - name: Reconnect to switches 13 | local_action: wait_for port=22 host="{{ inventory_hostname }}" search_regex=OpenSSH delay=10 14 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/roles/copy-int-reboot-servers/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Turn off SSH rev DNS lookup 3 | lineinfile: 4 | path: /etc/ssh/sshd_config 5 | regexp: '^UseDNS ' 6 | line: UseDNS no 7 | 8 | - name: copy interfaces 9 | copy: src=config-files/{{scenario}}/{{ansible_hostname}}/interfaces dest=/etc/network/ 10 | 11 | - name: restart interfaces 12 | become: yes 13 | command: ifup -a --force 14 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/roles/copy_frr_daemons/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: copy FRR daemons 3 | copy: src=config-files/{{scenario}}/{{ansible_hostname}}/daemons dest=/etc/frr/ 4 | - name: copy FRR.conf 5 | copy: src=config-files/{{scenario}}/{{ansible_hostname}}/frr.conf dest=/etc/frr/ 6 | 7 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/roles/copy_interfaces/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: copy interfaces 3 | copy: src=config-files/{{scenario}}/{{ansible_hostname}}/interfaces dest=/etc/network/ 4 | 5 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/roles/enable_ipv6/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Remove the line disabling IPv6 3 | sysctl: 4 | name: net.ipv6.conf.all.disable_ipv6 5 | value: '1' 6 | state: absent 7 | reload: yes 8 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/roles/install_frr/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Add FRR repo key 3 | apt_key: 4 | url: https://deb.frrouting.org/frr/keys.asc 5 | state: present 6 | - name: Add FRR repo 7 | apt_repository: 8 | repo: deb https://deb.frrouting.org/frr xenial frr-stable 9 | state: present 10 | - name: Add FRR 11 | apt: 12 | name: frr 13 | state: present 14 | force_apt_get: True 15 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/roles/mv_ntp_mgmt_vrf/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: stop ntp 3 | shell: systemctl stop ntp 4 | - name: disable ntp 5 | shell: systemctl disable ntp 6 | - name: start ntp in the management vrf 7 | shell: systemctl start ntp@mgmt 8 | - name: enable ntp in the management vrf 9 | shell: systemctl enable ntp@mgmt 10 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/roles/pingtest/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: populate service facts 3 | service_facts: 4 | 5 | - name: Ping gateway 6 | command: ping -c 1 {{ ping_gateway[inventory_hostname] }} 7 | when: ansible_facts.services['docker.service'] is not defined or ansible_facts.services['docker.service'].state != 'running' 8 | 9 | - name: Ping node on same leaf 10 | command: ping -c 1 {{ ping_local_nbr[inventory_hostname] }} 11 | 12 | - name: Ping node in different subnet 13 | command: ping -c 1 {{ ping_remote_nbr[inventory_hostname] }} 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/roles/pingtest/vars/main.yml: -------------------------------------------------------------------------------- 1 | ping_gateway: 2 | server101: 172.16.1.1 3 | server102: 172.16.2.1 4 | server103: 172.16.3.1 5 | server104: 172.16.4.1 6 | 7 | ping_local_nbr: 8 | server101: 172.16.4.104 9 | server102: 172.16.1.101 10 | server103: 172.16.2.102 11 | server104: 172.16.3.103 12 | 13 | ping_remote_nbr: 14 | server101: 172.16.4.104 15 | server102: 172.16.3.103 16 | server103: 172.16.2.102 17 | server104: 172.16.1.101 18 | 19 | -------------------------------------------------------------------------------- /topologies/single-attach/ospf/roles/restart_switches/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: restarts switches with their new configuration 3 | shell: sleep 1 && shutdown -r 0 4 | become: yes 5 | async: 1 6 | poll: 0 7 | ignore_errors: true 8 | 9 | - name: Wait for switches to come back up 10 | wait_for_connection: 11 | timeout: 180 12 | delay: 15 13 | --------------------------------------------------------------------------------