Preempting Gray Failures With AI/ML
The network was definitely up, and had been up. There was nothing in the logs indicating link flaps, spanning-tree convergence events, or routing process adjacency changes. The packets had been, were...
View ArticleBuying Used Cisco Gear From eBay For Your Lab
While most of the lab work I do is with virtualized networking gear, once in a while, I need actual hardware. For instance, to fully explore QoS, hardware is key. Many QoS commands won’t be available...
View ArticleIs It Illegal To Be Called “Engineer” Without Having An Engineering Degree?
Some engineers are called engineers because they went through a rigorous process recognized in their industry. The stuff they do tends to affect lives, and so the title of engineer is not awarded until...
View ArticleFree Networking Lab Images From Arista, Cisco, nVidia (Cumulus)
This post was originally published on 30-March-2021. It needs to be updated. Let Ethan know on Slack if you’d like to see this article freshened up. Here’s my current list of no cost, minimal headache,...
View ArticleWhen Stretching Layer Two, Separate Your Fate
On the Packet Pushers YouTube channel, Jorge asks in response to Using VXLAN To Span One Data Center Across Two Locations… if stretching the layer 2 is not recommended, then what is the recommendation...
View ArticleWhat Makes A Senior IT Engineer “Senior”?
Ravi asks the following… I’m trying to figure out what makes a network engineer truly a “senior” engineer. What skills, mostly non-technical, do they possess in order to bring value to the work place?...
View ArticleHow To Pass API Query Parameters In A Curl Request
If you’re using CLI tool curl to retrieve data from a remote API, you might send forth a command like so. curl -H "Authorization: Bearer access_token_goes_here" \...
View ArticleWhat Does An ‘R’ Before A String Mean In Python?
R Means ‘Raw String’ An ‘r’ before a string tells the Python interpreter to treat backslashes as a literal (raw) character. Normally, Python uses backslashes as escape characters. Prefacing the string...
View ArticleHow To Blackhole (Null Route) An IPv6 Block On Linux Using ‘ip -6 route’
If there’s an IPv6 netblock you’d like your host to stop responding to, one tactic is to blackhole the traffic. That is, send any traffic from your host destined to the troublesome IPv6 netblock into a...
View ArticleHow To Create A Python Function You Can Call From Other Scripts
Python gives you the ability to write a bit of code and the call that code as a function. You can call the function from within the same script where the function is defined, or you can save the...
View ArticleHow To Use Grep + Regex To Match Non-200 HTTP Status Codes In Apache Server Logs
When parsing Apache web server logs on Linux, I find it interesting to monitor access requests resulting in HTTP status codes other than 200s. An HTTP status code in the 200s means the request was...
View ArticleYour First REST API Call In Python
This post originally appeared on the Packet Pushers’ Ignition site on June 10, 2020. Introduction In many automation scripts, you’ll be retrieving information via some sort of interface and then doing...
View ArticleEmbedding Client IP In DNS Requests: EDNS Client Subnet (ECS)
This post originally appeared on the Packet Pushers Ignition site on December 10, 2019. DNS is sometimes used to optimize traffic between client and server. That is, a client needs to connect to a...
View ArticleHow To Reference Nested Python Lists & Dictionaries
This post originally appeared in the Packet Pushers’ Ignition site on March 10, 2020. When getting data back from API queries in Python, the data is often delivered in JSON format. Python libraries...
View ArticlePut In The Work
Would you like to stand out from your peers? Would you like to impress the people you work for, or perhaps the people you’d like to work for? Put in the work. Putting in the work to achieve a goal is a...
View ArticleFormatted CLI Data Is Not Good Enough For Automation
If you're learning to interact with Infrastructure as Code (IaC), you'll need to get accustomed to structured data, which is different from formatted data you're likely accuomsted to with the CLI....
View ArticleUnderstanding OSPF Router ID (RID) Assignment
This post originally appeared on the Packet Pushers’ Ignition site on March 24, 2020. In both OSPFv2 (IPv4) and OSPFv3 (IPv6), the router ID (RID) is a 32-bit number assigned to the router. The RID...
View ArticleMarketing Docs Are Not Written For Engineers
When reading marketing literature as an engineer, you must always be careful to parse the words correctly. For example, I was reviewing a vendor’s pitch deck on a new hardware switch. The switch was...
View ArticleSetting Up Public-Private Keys For SSH Authentication
The more pedantic in the tech community argue about the merits of public-private key authentication vs. simple password authentication when logging into an SSH host. I have no strong opinion regarding...
View ArticleImproving DNS Privacy With QNAME Minimization (RFC7816)
This post originally appeared on the Packet Pushers’ Ignition site on October 1, 2019. When a host doesn’t know the IP address for a hostname, what does it do? It asks its configured DNS server to...
View Article