routing basics/cef

38
Routing basics/CEF May 4, 2016 Dmitry Figol CCIE R&S #53592 [email protected]

Upload: dmitry-figol

Post on 15-Apr-2017

85.898 views

Category:

Engineering


8 download

TRANSCRIPT

Page 1: Routing basics/CEF

Routing basics/CEF

May 4, 2016

Dmitry FigolCCIE R&S #53592

[email protected]

Page 2: Routing basics/CEF

Intro to routing and switching

Routing

• Finding the optimal way towards destination

Switching

• Moving packet between interfaces

2

Page 3: Routing basics/CEF

Packet forwarding

When the packet comes in, the router does the following:

0. Checks and removes L2 header, gets destination IP

1. Routing process

2. Switching process

3. L2 encapsulation

3

Page 4: Routing basics/CEF

Routing process

• Find the longest match based on destination IP in routing table (RIB)

• The goal is to find outgoing interface and Next Hop IP address (if applicable)

4

Page 5: Routing basics/CEF

Routing table - example

5

Page 6: Routing basics/CEF

Routing table (cont.)

• Recursive Lookup

• Contains useless information for forwarding:

• For example, Administrative Distance and Metric

• Single lookup has linear complexity O(n)

• Stored in RAM

• Verification: show ip route [ip-address [mask]]

6

Page 7: Routing basics/CEF

Routing table (cont.)

Metric (maximum is 232-1 = 4294967295):

• Used to choose the best route within a single routing protocol

(*not always true)

Administrative distance (0..255):

• Used to choose the best route between routing protocols

7

Page 8: Routing basics/CEF

Routing table (cont.) - AD

8

Route Source Value

Connected 0

Static 1

EIGRP summary 5

eBGP 20

EIGRP internal 90

IGRP 100

OSPF 110

IS-IS 115

Route Source Value

RIP 120

EGP 140

ODR 160

EIGRP external 170

iBGP 200

NHRP 250

DHCP learned 254

Unknown* (Not installed) 255

Page 9: Routing basics/CEF

Routing protocols

• Static

• Dynamic:

• IGP:

• Distance-vector (RIP, EIGRP)

• Link-state (OSPF, IS-IS)

• EGP:

• Path-vector (BGP)

9

Page 10: Routing basics/CEF

Switching process

• Process-switching

• Fast-switching

• Cisco Express Forwarding (CEF)

10

Page 11: Routing basics/CEF

L2 Encapsulation

Knowing outgoing interface and Next Hop address is not always enough for “packet rewrite”

• Point-to-point links (PPP, HDLC) – no additional information required

• Point-to-multipoint links (Ethernet, Frame-relay, ATM) – L2 Destination Address is required (from ARP cache, Frame-Relay/ATM mappings)

11

Page 12: Routing basics/CEF

Traffic types

Data plane – traffic through the device

Control plane – traffic to the device:

• Routing protocols hello/updates

• BPDU

• FHRP and others

Management plane – part of control plane:

• SSH/Telnet

• SNMP

12

Page 13: Routing basics/CEF

Processors: CPU and ASIC

• Central processing unit (CPU) is the brains of the network device

• Handles control plane

• Can do anything

• Can’t do packet forwarding with high throughput*

*Note: DPDK project enables x86 multi-core processors to forward 200+ Gbps

13

Page 14: Routing basics/CEF

Processors: CPU and ASIC

• Application specific integrated circuit (ASIC) is circuit with transistors

• Very fast, but dumb

• Designed specifically to move packets

• Expensive

• Not possible to program new features

• Responsible for data plane

14

Page 15: Routing basics/CEF

Memory: RAM, CAM and TCAM

Random Access Memory (RAM) is the most common type of memory

• Value is accessed by pointer (memory address)

• Cheap

15

Page 16: Routing basics/CEF

Memory: RAM, CAM and TCAM

Content-addressable memory (CAM)

• Value is accessed by a key, not a pointer

• Very fast

• Expensive

• High power consumption

• O(1) constant time lookup

• Used in switches for MAC address table

16

Page 17: Routing basics/CEF

Memory: RAM, CAM and TCAM

Ternary Content-addressable memory (TCAM)

• Value is accessed by a key, which consists of not only “0” and “1”, but also “don’t care” bits.

• Very expensive

• High power consumption

• O(1) constant time lookup!

• Used for next-hop lookup (CEF table), ACL (security and QoS)

17

Page 18: Routing basics/CEF

Process-switching

• Recursive lookup is performed by CPU in RIB

• There is special process responsible for process-switching “IP Input”

• The following traffic is process-switched:

• Control plane

• Locally generated (not all)

• No L2 adjacency information

• ACL logging

18

Page 19: Routing basics/CEF

Fast-switching

• First packet for source-destination IP pair is process-switched

• IP pair and corresponding encapsulation information is added to the cache

• Following packets are forwarding based on the entry in cache

• Deprecated

19

Page 20: Routing basics/CEF

Cisco Express Forwarding (CEF)

The idea is to precompute and optimize information in RIB:

• Resolve recursive lookup and get rid of useless information

• Add pointer to pre-built L2 header in Adjacency table

The new table is called Forwarding Information Base (FIB) or CEF table:

• Contains prefix, NH, outgoing interface, pointer to L2 header

• Stored in DRAM [O(1) using 256-way mtrie data structure] and TCAM [if exists, also O(1), but much faster]

The lookup is done during the interrupt (process scheduling is not required)

20

Page 21: Routing basics/CEF

CEF (cont.)

Verification:

show ip cef [ip-address [mask]] [detail] [internal]

Shows NH, outgoing interface, MPLS labels (if applicable)

Internal keyword shows pointer to Adjacency entry and hash buckets

Disable CEF:

(config)# no ip cef

21

Page 22: Routing basics/CEF

CEF – Adjacency table

• CEF process takes information from all L3-to-L2 mappings and builds L2 header

• Adjacency table contains NH, interface, associated L2 Header

• Stored in RAM

• Pitfall: CEF process does not allow adjacency to age out

(clear arp won’t delete ARP entry if it can be revalidated)

• Verification:

show adjacency [detail]

22

Page 23: Routing basics/CEF

CEF – Adjacency types

• Cache

• Glean

• Receive

• Punt

• Null

• Discard

• Drop

23

Page 24: Routing basics/CEF

CEF on hardware-based platforms

• CEF basically allows to forward traffic without CPU

• Depending on platform there can be zero, one or more ASICs.

• The same applies for TCAM

• All L3 switches have TCAM, only some routers have it

• That’s why generally speaking L3 switches forward traffic faster than routers

• TCAM stores not only FIB, but ACL and QoS rules, the allocation is predefined though

• On some platforms you can change allocation profile

24

Page 25: Routing basics/CEF

CEF on hardware-based platforms (cont.)

25

RIB

ARP Cache

Other L2 information

FIB(CEF Table)

Adjacency table

TCAM

RAM

ASIC

Page 26: Routing basics/CEF

CEF – Load balancing

• Routing protocols can install several routes for the same prefix

• How will CEF decide where to send packet?

• CEF is doing load-balancing per-flow

• By default, it takes source-destination IP pair, feeds it to the hashing algorithm, returns the number of the bucket

• Buckets are allocated automatically per NH, depending on the traffic share count in RIB

26

Page 27: Routing basics/CEF

CEF – Load balancing (cont.)

Verification:show ip cef [ip [mask]] internal – shows NH-to-bucket distribution

show ip cef exact-route src-ip dst-ip – shows NH and interface for source/destination IP pair

Change load balancing method (not recommended):(config-if)# ip load-sharing per-packet

27

Page 28: Routing basics/CEF

CEF polarization

• Hash algorithm is deterministic, meaning that for the same source/destination IP pair the bucket (outgoing link) is the same.

• Result is that some links can be underutilized (especially if we have chain of routers with ECMP).

• One possible solution is to include L4 ports in hashing (if supported):

(config)# ip cef load-sharing algorithm include-ports [source[destination]]

28

Page 29: Routing basics/CEF

Static Routing

• The way to install an entry in RIB manually

• Usually overrides entries installed via dynamic routing protocols

• Advantage: gives full control over path selection in your network

• Main disadvantage: huge administrative burden

• Syntax:(config)# ip route prefix mask [NH-IP | interface [NH-IP]] [distance] [track track]

• Verification:# show ip route [static]

29

Page 30: Routing basics/CEF

Static Routing (cont.)

There are three different ways to configure where the traffic should go for specific prefix:

• By specifying next-hop IP address

• By specifying outgoing interface

• By specifying both

30

Page 31: Routing basics/CEF

Static Routing to next-hop

• Recursive lookup is required to find outgoing interface

• On multipoint interfaces resolution of next-hop IP address is required (ARP cache, Frame Relay/ATM mapping)

• Static route is installed into RIB only if recursive lookup is successful (outgoing interface was found)

• It will stay in RIB even if next-hop is covered only by valid default route

31

Page 32: Routing basics/CEF

Static Routing to outgoing interface

• Recursive lookup is not required because we know outgoing interface

• On point-to-point interface we can send the packet right away

• On multipoint interface first we need to find L2 address for destination IP• For every new destination IP address in the packet we will install entry in ARP

cache

• It can still work if Proxy Arp is enabled (which is enabled by default in IOS)

• Static route is installed into RIB only if line protocol (for outgoing interface) is up

• Use only for point-to-point interfaces!

32

Page 33: Routing basics/CEF

Static Routing to outgoing interface and NH

• Recursive lookup is not required because we know outgoing interface

• On point-to-point interface we can send the packet right away

• On multipoint interface first we need to find L2 address for next-hop IP address

• Static route is installed into RIB only if line protocol of outgoing interface is up

33

Page 34: Routing basics/CEF

Floating static routes

• Floating static route is a route that has AD higher than default and is not installed into RIB under normal operation, because there is another preferred path

• Once primary path fails floating static route can be installed

• For example:

• Primary static default route with AD 1 and tracking (based on IP SLA) or BFD

• Secondary static default route with AD 2 or higher

• Once tracking object/BFD goes down, primary route is deleted from RIB and secondary route is installed

34

Page 35: Routing basics/CEF

Recursive lookup for static routes - exercise

• R1 has one interface up/up with IP in subnet 188.1.12.0/24. You configure the following:

Question: Which static routes will be installed in RIB?

35

Page 36: Routing basics/CEF

Recursive lookup for static routes - rule

Answer:

Rule:

If the best route for the next hop also covers the entire address space of the static route under the question, it will NOT be installed.

36

Page 38: Routing basics/CEF

Questions?

38