Spine and Leaf Practical Applications, RIPv2
Tags: datacenternetworkin, ripv2, routingswitching, spineandleaf
Published: 2020-03-08 00:40:51

---
title: Spine and Leaf Practical Applications, RIPv2
published: true
date: 2019-06-02 00:38:00 UTC
tags: Datacenter Networkin,RIPv2,Routing & Switching ,Spine and Leaf
canonical_url: 
---

This is only slightly trolling, but is primarily to outline the topological simplicity of Spine-and-Leaf networking, in a way that is suspiciously similar to Cisco classes.  
  
First things first, here's the diagram. This is performed using a set of four Cat3560s, enterprise licensed and wired in a redundant square topology to simulate a wide variety of topologies with minimal modification. At some point I'll post this setup as well, it was recommended in the book [CCIE Routing and Switching v5.1, Bridging the Gap Between CCNP and CCIE](http://www.ciscopress.com/store/ccie-routing-and-switching-v5.1-foundations-bridging-9781587144721)  
[YAML Link](https://raw.githubusercontent.com/ngschmidt/labfabric-diagram/master/ripv2-clos-fabric.yml)  
[![](https://1.bp.blogspot.com/-AIN2OiAbR5g/XPMSrda6xyI/AAAAAAAAAmM/YeIZ2McQiEUL4eaU_B6pL2dAkwFJ5yn-wCLcBGAs/s640/RIPv2%2BClos%2BFabric%2B%25281%2529.png)](https://1.bp.blogspot.com/-AIN2OiAbR5g/XPMSrda6xyI/AAAAAAAAAmM/YeIZ2McQiEUL4eaU_B6pL2dAkwFJ5yn-wCLcBGAs/s1600/RIPv2%2BClos%2BFabric%2B%25281%2529.png)  
So this is actually pretty simple - as everything **should** be Layer 3. We begin by configuring the Spines:

```
hostname rip-s0interface Loopback0 ip address 10.6.0.240 255.255.255.255interface FastEthernet0/22 no switchport ip address 10.6.240.2 255.255.255.254interface FastEthernet0/24 no switchport ip address 10.6.240.0 255.255.255.254hostname rip-s1interface Loopback0 ip address 10.6.0.241 255.255.255.255interface FastEthernet0/21 no switchport ip address 10.6.241.0 255.255.255.254interface FastEthernet0/23 no switchport ip address 10.6.241.2 255.255.255.254
```
  
Some explanation here:    

- We're using /31s to save address space as leaf-spine-leaf links are numerous and chew through address space like no tomorrow. If you'd like to know more about /31 usage, it's [here.](https://tools.ietf.org/rfc/rfc3021.txt)
- I focused on IP Address Management (IPAM) before the actual network design, assigning pre-planned prefixes. In this example, each switch has a virtual number, making it easy to pre-provision and organize network topologies for scale. Remember, this is all to handle frequent loop-free changes at scale - this is important!

  - S0: 240 (10.6.240.x/31, 10.6.0.240)
  - S1: 241 (10.6.241.x/31, 10.6.0.241)
  - L0: 0 (10.6.0.0)
  - L1: 1 (10.6.0.1)
- No switchport forces ports into Layer 3 mode.
And then the Leafs:   

```
hostname rip-l0interface Loopback0 ip address 10.6.0.0 255.255.255.255interface FastEthernet1/0/21 no switchport ip address 10.6.241.1 255.255.255.254interface FastEthernet1/0/24 no switchport ip address 10.6.240.1 255.255.255.254hostname rip-l1 interface Loopback0 ip address 10.6.0.1 255.255.255.255interface FastEthernet0/22 no switchport ip address 10.6.240.3 255.255.255.254interface FastEthernet0/23 no switchport ip address 10.6.241.3 255.255.255.254
```
  
Normally, you'd add interconnection on these devices, but loopbacks suffice for this example.    
This doesn't support routing but is a functional base configuration - so let's turn on routing (all switches):    

```
ip routingrouter rip version 2 network 10.0.0.0 no auto-summary
```
Poof! It's working!   

```
rip-l0#show ip routeCodes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static routeGateway of last resort is not set 10.0.0.0/8 is variably subnetted, 8 subnets, 2 masksC 10.6.0.0/32 is directly connected, Loopback0R 10.6.0.1/32 [120/2] via 10.6.241.0, 00:00:06, FastEthernet1/0/21 [120/2] via 10.6.240.0, 00:00:06, FastEthernet1/0/24C 10.6.240.0/31 is directly connected, FastEthernet1/0/24R 10.6.0.240/32 [120/1] via 10.6.240.0, 00:00:12, FastEthernet1/0/24C 10.6.241.0/31 is directly connected, FastEthernet1/0/21R 10.6.0.241/32 [120/1] via 10.6.241.0, 00:00:17, FastEthernet1/0/21R 10.6.240.2/31 [120/1] via 10.6.240.0, 00:00:13, FastEthernet1/0/24R 10.6.241.2/31 [120/1] via 10.6.241.0, 00:00:17, FastEthernet1/0/21
```
  
Oddly enough, RIPv2 isn't supposed to support ECMP, but appears to be doing so here.   
Hopefully, this was enlightening - because in this case, this topology is incredibly simple when involving an IGP. There are a few downsides to RIP deployed in this manner:   

- It's chatty and floods all the time, so all changes (network additions) will cause a reconvergence.
- Link-state failure won't trigger a path re-route
- It's RIP.
Configurations generated are [here,](https://github.com/ngschmidt/lab-clos-fabric-configs/tree/master/RIPv2-Configs) for anyone who would want to experiment with them.