/yatfish

Using pyATS and Batfish to perform real-time network configuration analysis

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

yatfish

Combining Cisco pyATS and Batfish for automated network running configuration analysis

published

Run in Cisco Cloud IDE

Requirements

WSL2 Ubuntu and Docker Desktop for Windows Or any Linux environment with Docker

Steps

  1. Clone the repository
  2. Update the testbed.yaml to reflect your topology and devices
  3. docker build -t /yatfish -f docker/Dockerfile . --no-cache
  4. docker push /yatfish
  5. docker-compose up
  6. In Docker Desktop Volumes - yatfish Volume - Data - Save As to retrieve analysis

If you need to run this 'hands-off' and make zero touch es to your devices you can adjust the testbed.connect() command as follows:

testbed.connect(init_exec_commands=[], init_config_commands=[], log_stdout=False)

Batfish Questions asked per configuration

bf.q.nodeProperties()

bf.q.interfaceProperties()

bf.q.bgpProcessConfiguration()

bf.q.bgpPeerConfiguration()

bf.q.undefinedReferences()

bf.q.unusedStructures()

bf.q.hsrpProperties()

bf.q.ospfProcessConfiguration()

bf.q.ospfInterfaceConfiguration()

bf.q.ospfAreaConfiguration()

bf.q.switchedVlanProperties()

bf.q.mlagProperties()

bf.q.namedStructures()

bf.q.definedStructures()

bf.q.referencedStructures()

bf.q.vrrpProperties()