bookmark_borderAutomating vJunOS and vEOS using OOP in Python (Pydantic)

In my last post I scripted automating a standup of a KVM lab w/ vJUNOS, vEOS and some ubuntu containers.

I don’t quite like the code and it’s difficult to maintain so many ‘if’ and ‘for’ statements to reparse an inventory files key/values. There is an easy solution to this and that is using an object.

Using objects shortcuts a lot of the re-parsing of the inventory file and just parses the file once to create an object for a given KVM or container type. The drawbacks of using objects in python is that I must use Pydantic which seems to add a few more seconds of delay and Object Oriented Programming (OOP) in Python may not be beginner friendly. From my viewpoint it’s best to write code based on who is going to maintain it. Such that I wouldn’t write Object-Oriented Python and hand it off to a beginner in Python and expect them to maintain it.

Continue reading “Automating vJunOS and vEOS using OOP in Python (Pydantic)”

bookmark_bordervJunOS-Switch and virtual labs

At the end of 2022 vMX was announced to be End-of-Life. This was met with dissapointment from my end as it was/is one of the better virtual offerings to emulate a router and be relatively assured that bugs would be at a minimum due to it’s commercial support.

Just recently a new offering from Juniper appeared called vJunOS switch which is more in the vein of vEOS-lab in that it’s free but also requires no login to download (vEOS-lab requires a login to download).

vJunOS Switch is a great addition to my virtual home virtual lab and I’ll demonstrate how to stand it up (doing it my own way and not using the documentation of course!)

Continue reading “vJunOS-Switch and virtual labs”

bookmark_borderPython Scripting, Classes, DataClasses and Pydantic

I’ve begun to focus more on Python as I’ve taken on different projects this past year. I wanted to make a quick post about the different ways to accomplish the same thing. There’s no ‘wrong way or right way’ but it’s more about the given situation that each way to accomplish the same goal fits.

So let’s dive in.

Continue reading “Python Scripting, Classes, DataClasses and Pydantic”

bookmark_bordervMX and vEOS RFC 5549 interop, EVPN Layer-2 inter-op, etc.

I began this lab with the hopes of just showing some simple inter-op use cases but unfortunately so much time lapsed between my last blog post I kept having new ideas before I could publish. So this blog post has these subjects packed in for vMX and vEOS:

  • Explore a way to make interface creation less of a burden on KVM:
    • sub-ints (dot1q tagging) as a method to get around KVM interface creation
    • vlans as a method to get around KVM interface creation
  • An eBGP unnumbered setup for an underlay using RFC 5549 (interop b/t vEOS and vMX)
  • vMX and vEOS EVPN Layer-2 interop (type-2 routes)
  • vMX stitch from EVPN to Layer-3 VPN (vpnv4)

Let’s dive in.

Continue reading “vMX and vEOS RFC 5549 interop, EVPN Layer-2 inter-op, etc.”

bookmark_borderLab Virtualization

I started with GNS3 and Cisco IOS as my lab virtualization tool nearly 10 years ago. And GNS3 w/ Olive before the days of vMX. These days there are many choices but I still I mainly use KVM/lib-virt for my lab and occasionally containers. Mostly due to my need to test dataplane with Juniper’s vMX. If I had no requirement to use Juniper or vMX then I would likely move to a native container solution.

Continue reading “Lab Virtualization”