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()

View code on GitHub

Code Exchange Community

Get help, share code, and collaborate with other developers in the Code Exchange community.View Community
Disclaimer:
Cisco provides Code Exchange for convenience and informational purposes only, with no support of any kind. This page contains information and links from third-party websites that are governed by their own separate terms. Reference to a project or contributor on this page does not imply any affiliation with or endorsement by Cisco.