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_borderAutomating vJunOS and vEOS standup using Python

From the previous post I showed how to get a VM environment stood up for vEOS and vJunOS-Switch using manual commands and explaining things along the way.

That entire process is error prone. I like to have a process and procedure in the way I stand up a lab. The benefit I achieve by doing this is I’m rarely fighting typo’s or bridge names that don’t align and can focus on the what I really want to do which is lab POC’ing w/ these vEOS and vJunOS devices. But really this can be extended to any vendor offering a VM or container of their device (Palo Alto, Nokia, Cisco, etc.).

Continue reading “Automating vJunOS and vEOS standup using Python”

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”

bookmark_borderArista and Juniper RSVP-TE InterOp

Arista has supported RSVP-TE for quite some time but has expanded it’s capabilities in recent years. Most notably their support for node-protection, soft preemption, and OSPF as the IGP (instead of IS-IS). Arista has also begun to release more Service-Provider features that make them an interesting choice when comparing the different vendors.

Because of all the above I wanted to test Arista’s implementation of RSVP-TE with Juniper’s implementation of RSVP-TE.

Here is the lab I am testing with:

Virtual Lab Inventory:

  • 2x vMX 21.1R1.11
  • 4x vEOS 4.27.1.1F
  • 2x Linux Hosts

The above will allow me vanilla L3VPN setup between two Juniper PE’s with vEOS acting as pure ‘P’ routers in transit. All configs are available on git-hub

Continue reading “Arista and Juniper RSVP-TE InterOp”