DEV Community

loading...

Spine and Leaf Practical Applications, RIPv2

Nick Schmidt
I am a network engineer based out of Alaska, pursuing various methods of achieving SRE/NRE
Originally published at blog.engyak.net on ・4 min read

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

YAML Link



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.
  • 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, for anyone who would want to experiment with them.

Discussion (0)