Smith Level Rd, Carrboro – Road Diet

Smith Level Road is one of the primary ways into downtown Carrboro.  Well known Carrboro business are located right on Smith Level Road (which changes it’s name to S Greensboro St as soon as it crosses Highway 54), including Steel String Brewery, Glass Half Full, Open Eye Cafe and the future site of a new library.  However I live on the south side of highway 54, which means I have to cross highway 54, a divided highway, in order to reach downtown Carrboro.  This is an easy drive, but its very dangerous to bike or walk.

Smith Level Road has loads of potential for biking and pedestrians because is underneath Highway 54! The problem is that Smith Level Road can be up to 8 lanes across! 

Technically lane one (1) and lane eight (8) in the picture above are bus drop offs, but I often see cars using them to merge, and pedestrians still have to cross them just like any other lane.  As stated in the picture, a Boeing 737 can literally fit between the two curbs. 

This type of road is quite common in the triangle region, and its awful for pedestrians to cross, and currently has no bike lanes (not even unprotected ones).   The more I bike or walk, the more I really hate turn lanes, especially right turn lanes.  This particular road is even more annoying because 200 feet behind this picture, Smith Level Road has only two lanes.  The road also shrinks back to two lanes right past the overpass seen in the picture.  I will try to draw this out:

This means that the additional lanes of traffic really are not doing anything.  The car throughput is exactly the same.  There is also traffic circles both south and north of highway 54 meaning that it would be prohibitively expensive for Smith Level Road to ever be expanded to four lanes.  Even without the traffic circles, I would wager that it will never happen because it would require demolishing many houses.

Here is another Google satellite picture of where Smith Level is seven lanes.  I tried to color code each lane so it can be more easily seen:

You will also notice there is only sidewalk on one side of the road.  Not pictured is the elementary school in the bottom right corner of this picture.  Early in the morning you will see families try to cross this intersection to walk to school.  It is insanely dangerous and I can only imagine that some of these families only have one car that is already in use by another parent, or both parents are working and kids are walking themselves to school.  As a parent, I would not let my family walk to school given the current conditions of this road.

My proposal is that we perform something called a road diet.  A road diet is a technique where the number of travel lanes and/or width of the road is reduced in order to achieve systemic improvements. Durham has already performed road diets on many roads, so there is a track record of success already in the triangle.  You can actually see this on Durham-Chapel Hill Blvd near Foster’s Market where they reduced four lanes to two car lanes with bike lanes.  I commute to Durham on this road and have noticed no additional delay at all.

I can’t imagine a better place for a road diet that Smith Level road.  There is already bike lanes on the two-lane section of road south of Highway 54 connecting to the numerous neighborhoods, Culbreth Middle school and Carrboro High school.  On the north side, when they complete the South Green shopping complex, there is already an existing separated bike path (named the Robertson Bike Path) that connects through neighborhoods up to Franklin Street via the Libba Cotten Bikeway.  There is also an effort to complete the Morgan Creek Trail all the way to Smith Level Road.  This means if we created a road-diet via my proposal, someone living in Southern Village could bike in protected bike lanes all the way to downtown Carrboro!  Finally a holistic bike path from huge dense neighborhoods to downtown.

I am not a city planner, architect or civil engineer, but I pulled out Photoshop to try and envision what this could look like:

I added trees (those green circles above) as well to my protected bike planes because I think shade will encourage both bikers and pedestrians, and I recently read an article on the subject.  Imagine something like this:

Image result for bike lane trees

I am not 100% sure about how to encourage my city leaders to achieve my fantasy of a more bikeable Carrboro & Chapel Hill, but I figured I would at least write down my thoughts so others could read and comment.  I hope others are as interested in this as I am.  Thank you for reading.

 

 

The ridiculous Eastgate Crossing shopping center

All the pictures in this blog post can be found in this Google photo album: https://photos.app.goo.gl/Wmv5CCPML59feCTP9

My wife and I took a day off work to have a staycation and just putter around Chapel Hill. The weather was amazing, so we made a trip to Babalu Tapas & Tacos to sit outside in their great outdoor patio and enjoy some drinks. Of course when I noticed a mojito flight on the menu I couldn’t resist…

After lunch we decided to explore a path behind Babalus to see if they had connected the Eastgate shopping center to Berkshire Chapel Hill Apartments near Whole foods. I have been pretty impressed with a lot of the new developments and how Chapel Hill has been prioritizing walkablity and pedestrians. There was a connecting path, including a a flight of outdoor stairs, that came up right behind Red Pepper. 

This photo is from Google street view.. but is pretty much the same as what I saw.

This makes Eastgate pretty walkable to anything on S. Elliot Rd. We kept venturing behind Eastgate to see if there was any new development on the Fordham Blvd Aparments (which are adjacent to 15-501) and how it could possibly connect and create a walkable path to Eastgate. I remember reading something about a greenway trail possibly going in along Booker creek. As we were walking behind Stein Mart we noticed that Booker creek literally seemed to go underneath Eastgate…

yup… literally underneath

I know this shopping center has a history of flooding, but I never realized that they built the entire shopping center on top of the creek. It is literally the most ridiculous thing I have seen in the triangle (building wise?). The culvert (or whatever you would call this monster) is over 30 feet wide or so, and you can’t see the other side. It is literally so long and dark you can’t see the light, or where it comes out. It is deep enough right there I might come back with a kayak and see if I can float the whole way through.

You can notice the culvert from Google maps! That long skinny concrete strip right down the middle.

We walked back out front to figure out where the creek came out, and the parking lot suddenly made sense. There is a long skinny aisle that is a different color from the rest of the parking lot. This section of parking lot is concrete versus asphalt and I just never thought about it before. In the picture from Google maps above you can see the culvert stretches the entirety of the parking lot and literally go underneath Starbucks. Someone thought it was a good idea to build a Starbucks on top of Booker creek.

The culvert literally goes underneath Starbucks. The Starbucks has been built since I lived in Chapel Hill (last 7 or so years?) so I have no idea who/why someone would do this?

Inevitably someone will comment to me that this type of construction is normal and not a problem. Well apparently it is a problem, because this Starbucks is so badly flooded that it is still not open after 4 months since the storm happened. It doesn’t even look close to opening, I know because I looked in the window.

Hopefully they had flood insurance?

I highly recommend also reading this article from the Durham Herald Sun that covers the most recent flooding: https://www.heraldsun.com/news/local/counties/orange-county/article218937515.html This was one of the only articles that seemed to cover how ridiculous this is. Let me know if you know any other great articles I could read… this is really depressing to me that someone thought building a strip mall right here was a great idea. I really like the idea of daylighting this creek and creating more green space. This parking lot has got to go.

Learning and Testing Ansible Playbooks with Virtual Images

One of the common problems I see with network automation in general is that no one wants to learn and test their automation software on production network gear.  While lots of people have labs they can play with network gear that obviously is not an option for everyone.  Even used equipment can cost a thousand dollars or more, and in my case my spouse was not super excited about our power bill rising by $100 a month while I ran some Cisco switches in my office.  

I am not saying that owning networking hardware is a bad idea, its just not exactly scalable, and doesn’t work for everyone’s situation.  Imagine the network engineer living in New York City in the super small apartment. I was lucky enough while studying for my CCIE to have access to a lab at work where I had all the equipment I needed to play with, and didn’t have to deal with the heat, noise and power bills.  I was a Cisco employee at the time so I also had access to virtual Cisco images.

Luckily networking vendors (including Cisco) are finally realizing that these virtual images are super important for education and control plane testing.  While we can’t replace line-rate hardware with virtual images, we can test configurations, bring up routing protocols, test connectivity.  Of course testing Ansible Networking Playbooks is perfect for a virtual environment.  The worse thing about automation is I can automate a mistake across hundreds of nodes at the same time.  While working at Cumulus Networks we would replicate entire customer environments with virtual images and supply them to customers as Vagrantfiles.  This helped customers have a virtual playground to test and play with their automation scripts.  I think this strategy of virtual topologies should be how all network operators test their network automation strategy.  Let me elaborate on some networking vendors:

Arista

Arista has a common NOS (network operating system) amongst their hardware called EOS (Extensible Operating System).  If you create a free account on their website, they will allow you to download a virtual EOS (vEOS) for free.  Comment below if you have problems, I found this very easy.  I am pretty sure the only limitation with this free VM is the amount of ports (I think by default it is limited to 4).  What I am not sure about is if you can pay for more ports.  For the testing I was doing it worked great on my laptop.

Cisco

Cisco Systems has three main platforms that I use: Cisco IOS, Cisco NX-OS and Cisco IOS-XR.  All three of them have virtual images, but they require entitlement on you account, from what I have seen is that if you own the physical gear you automatically can get the virtual image.  I would be curious about other people’s experiences here.  Another option is using Cisco VIRL.

I wrote a Knowledge Base article for Red Hat Ansible Engine: https://access.redhat.com/articles/3199502 . This is a super simple guide on just getting Cisco NX-OSv up and running on your laptop (in my case a Macbook Pro).

Cumulus Networks

For Cumulus Linux they have a free version called Cumulus VX (for virtual experience).  You have to register, but you can download it here: https://cumulusnetworks.com/products/cumulus-vx/ Unlike Arista, there is no port limitation, so you can add as many ports as you want (depending on the underlying platform, e.g. VirtualBox vs KVM).

Another cool tool that Cumulus Networks provides for free is called topology converter. This python script creates a virtual topology (using Vagrant) from a network map (in the form of dot notation).  This allows users of Cumulus Linux (or really any Linux operating system) to build complex topologies.  While I was working at Cumulus Networks I could run well over a hundred Cumulus VX instances on a single server.  I highly encourage you to play with this tool.

Juniper

Juniper Networks has a few different virtual images floating around, including vSRX and vQFX.  My Juniper account already has entitlement to the virtual images through my employer, but they have published a Vagrant image that is not behind a login wall or paywall here: https://github.com/Juniper/vqfx10k-vagrant

VyOS

VyOS is an open source fork of Vyatta routing software.  While VyOS might be one of the networking platforms on here you have never heard of, many people use VyOS in production as a vRouter.  Their use-case is often peering to a service provider where they already have limited bandwidth out of the data center, so not having 100Gbps line-rate is not a problem.  Having Vagrant images and access to run virtual images in KVM or VirtualBox is really nice. to test out BGP configurations, prefix lists, and more.  Check out there website: https://vyos.io/

While layer 2 configuration is very different from other networking vendors, the OSPF and BGP configurations will be very similar to what you see on Cisco IOS and Cumulus, so VyOS could also be used to learn, train and pass networking certifications on those layer 3 technologies.

Summary

While I am sure many other networking platforms are out there (e.g. F5 Networks) these are some of the ones I play with the most.  I am super excited about all the virtual networks people are creating, because it means that network operators can test network changes on a virtual topology versus messing up their production network.  I am sure we will see people implement really interesting CI/CD pipelines in the future, where they can automate changes into their virtual development environment before touching any production equipment.

Infoblox Integration in Ansible 2.5

The Ansible 2.5 open source project release includes the following Infoblox Network Identity Operating System (NIOS) enablement:

  • Five modules
  • A lookup plugin (for querying Infoblox NIOS objects)
  • A dynamic inventory script

For network professionals, this means that existing networking Ansible Playbooks can utilize existing Infoblox infrastructure for IP Address Management (IPAM), using Infoblox for tracking inventory and more. For more information on Infoblox terminology, documentation and examples, refer to the Infoblox website

See the rest of the blog post over on Ansible.com:
https://www.ansible.com/blog/infoblox-integration-in-ansible-2.5

Networking Features in Ansible 2.5

The upcoming Ansible 2.5 open source project release has some really exciting improvements, and the following blog highlights just a few of the notable additions. In typical Ansible fashion, development of networking enhancements is done in the open with the help of the community. You can follow along by watching the networking GitHub project board, as well as the roadmap for Ansible 2.5 via the networking wiki page.

A few highlighted features include:

New Connection Types: network_cli and NETCONF

Ansible Fact Improvements

Improved Logging

Continued Enablement for Declarative Intent

Persistent SSH Connection Improvements

Additional Platforms and Modules

See the rest of the blog post over on Ansible.com: https://www.ansible.com/blog/coming-soon-networking-features-in-ansible-2.5

Ansible Provider for networking modules

While I know the provider argument is going to be eventually deprecated for networking modules for Ansible in favor of the new connection: network_cli I often find myself troubleshooting playbooks running pre-Ansible 2.5. The message you can get can be super frustrating:

fatal: [eos]: FAILED! => {"changed": false, "failed": true, "msg": "unable to open shell. Please see: https://docs.ansible.com/ansible/network_debug_troubleshooting.html#unable-to-open-shell"} 

But rest assured, the problem is probably easy to fix!

If you use the verbose mode with -vvvv on a networking module you can see all the provider methods being used.  This will give you the knobs you need to adjust settings on the provider:


"provider": {
"auth_pass": null,
"authorize": true,
"host": null,
"password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
"port": null,
"ssh_keyfile": null,
"timeout": null,
"transport": "cli",
"use_ssl": null,
"username": "admin",
"validate_certs": null
}

Here are the two most common problems I see->

  1. The provider is not even set. Try just setting the provider at the task level and use the verbose mode to make sure the correct provider info is being passed to login to your network switch.
  2. The task that takes a long time to complete, or the networking platform is a switch stack that needs to propagate the change amongst all the switches. This is where the timeout function can be used.  Increase the timeout to make sure the task has time to complete.

Good luck and happy automating!  Also please go join my  repo https://github.com/network-automation/

Just email my team at ansible-network@redhat.com

Automating network troubleshooting with NetQ + Ansible

For this blog post I want to focus on automating network troubleshooting, the forgotten stepchild of network automation tasks. I think most automation tools focus on provisioning (or first time configuring) because so many network engineers are new to network automation in general. While I think that is great (and I want to encourage everyone to automate!) I think there is so much more potential for network automation. I am introducing Sean’s third category of automation use-cases — OPS!

See the rest of the blog post over on CumulusNetworks.com
https://cumulusnetworks.com/blog/network-troubleshooting-netq/

NetDevOps: What does it even mean?

As more and more network engineers dive into network automation, the word idempotence keeps coming up. What is it? Why is it important? Why should we care? Idempotence is often described as the ability to perform the same task repeatedly and produce the same result. I want to demonstrate a super simple example of what this means.

See the rest of the blog post over on CumulusNetworks.com
https://cumulusnetworks.com/blog/netdevops-important-idempotence/

Backing up configs with the Ansible NCLU module

With the release of Ansible 2.3 the Cumulus Linux NCLU module is now part of Ansible core. This means when you `apt-get install ansible`, you get the NCLU module pre-installed! This blog post will focus on using the NCLU module to backup and restore configs on Cumulus Linux. To read more about the NCLU module from its creator, Barry Peddycord, click here.

See the rest of the blog post over on CumulusNetworks.com
https://cumulusnetworks.com/blog/configs-ansible-nclu-module/