Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3...

127
1 Tutorial on Bridges, Routers, Switches, Oh My! Radia Perlman ([email protected])

Transcript of Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3...

Page 1: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

1

Tutorial on Bridges, Routers,

Switches, Oh My!

Radia Perlman([email protected])

Page 2: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

2

Why?

• Demystify this portion of networking, so

people don’t drown in the alphabet soup

• Think about these things critically

• N-party protocols are “the most interesting”

• Lots of issues are common to other layers

• You can’t design layer n without

understanding layers n-1 and n+1

Page 3: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

3

What can we do in 1 ½ hours?

• Understand the concepts

• Understand various approaches, and

tradeoffs, and where to go to learn more

• A little of the history: without this, it’s hard

to really “grok” why things are the way they

are

Page 4: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

4

Outline

• layer 2 issues: addresses, multiplexing,

bridges, spanning tree algorithm

• layer 3: addresses, neighbor discovery,

connectionless vs connection-oriented

– Routing protocols

• Distance vector

• Link state

• Path vector

Page 5: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

5

Why this whole layer 2/3 thing?

• Myth: bridges/switches simpler devices,

designed before routers

• OSI Layers

– 1: physical

Page 6: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

6

Why this whole layer 2/3 thing?

• Myth: bridges/switches simpler devices,

designed before routers

• OSI Layers

– 1: physical

– 2: data link (nbr-nbr, e.g., Ethernet)

Page 7: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

7

Why this whole layer 2/3 thing?

• Myth: bridges/switches simpler devices,

designed before routers

• OSI Layers

– 1: physical

– 2: data link (nbr-nbr, e.g., Ethernet)

– 3: network (create entire path, e.g., IP)

Page 8: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

8

Why this whole layer 2/3 thing?

• Myth: bridges/switches simpler devices,

designed before routers

• OSI Layers

– 1: physical

– 2: data link (nbr-nbr, e.g., Ethernet)

– 3: network (create entire path, e.g., IP)

– 4 end-to-end (e.g., TCP, UDP)

Page 9: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

9

Why this whole layer 2/3 thing?

• Myth: bridges/switches simpler devices,

designed before routers

• OSI Layers

– 1: physical

– 2: data link (nbr-nbr, e.g., Ethernet)

– 3: network (create entire path, e.g., IP)

– 4 end-to-end (e.g., TCP, UDP)

– 5 and above: boring

Page 10: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

10

Definitions

• Repeater: layer 1 relay

Page 11: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

11

Definitions

• Repeater: layer 1 relay

• Bridge: layer 2 relay

Page 12: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

12

Definitions

• Repeater: layer 1 relay

• Bridge: layer 2 relay

• Router: layer 3 relay

Page 13: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

13

Definitions

• Repeater: layer 1 relay

• Bridge: layer 2 relay

• Router: layer 3 relay

• OK: What is layer 2 vs layer 3?

Page 14: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

14

Definitions

• Repeater: layer 1 relay

• Bridge: layer 2 relay

• Router: layer 3 relay

• OK: What is layer 2 vs layer 3?

– The “right” definition: layer 2 is neighbor-

neighbor. “Relays” should only be in layer 3!

Page 15: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

15

Definitions

• Repeater: layer 1 relay

• Bridge: layer 2 relay

• Router: layer 3 relay

• OK: What is layer 2 vs layer 3?

• True definition of a layer n protocol:

Anything designed by a committee whose

charter is to design a layer n protocol

Page 16: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

16

Layer 3 (e.g., IPv4, IPv6, DECnet,

Appletalk, IPX, etc.)

• Put source, destination, hop count on packet

• Then along came “the EtherNET”

– rethink routing algorithm a bit, but it’s a link not a

NET!

• The world got confused. Built on layer 2

• I tried to argue: “But you might want to talk from

one Ethernet to another!”

• “Which will win? Ethernet or DECnet?”

Page 17: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

17

Layer 3 packet

data

Layer 3 header

source dest hops

Page 18: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

18

Ethernet packet

data

Ethernet header

source dest

Page 19: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

19

Ethernet (802) addresses

• Assigned in blocks of 224

• Given 23-bit constant (OUI) plus g/i bit

• all 1’s intended to mean “broadcast”

OUI

global/local admin

group/individual

Page 20: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

20

It’s easy to confuse “Ethernet” with

“network”

• Both are multiaccess clouds

• But Ethernet does not scale. It can’t replace IP as

the Internet Protocol

– Flat addresses

– No hop count

– Missing additional protocols (such as neighbor

discovery)

– Perhaps missing features (such as fragmentation, error

messages, congestion feedback)

Page 21: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

21

Horrible terminology

• Local area net

• Subnet

• Ethernet

• Internet

Page 22: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

22

So where did bridges come from?

Page 23: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

23

Problem Statement

Need something that will sit between two Ethernets, and

let a station on one Ethernet talk to another

A C

Page 24: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

24

Basic idea

• Listen promiscuously

• Learn location of source address based on

source address in packet and port from

which packet received

• Forward based on learned location of

destination

Page 25: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

25

What’s different between this and

a repeater?

• no collisions

• with learning, can use more aggregate

bandwidth than on any one link

• no artifacts of LAN technology (# of

stations in ring, distance of CSMA/CD)

Page 26: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

26

But loops are a disaster

• No hop count

• Exponential proliferation

B1 B2 B3

S

Page 27: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

27

But loops are a disaster

• No hop count

• Exponential proliferation

B1 B2 B3

S

Page 28: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

28

But loops are a disaster

• No hop count

• Exponential proliferation

B1 B2 B3

S

Page 29: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

29

But loops are a disaster

• No hop count

• Exponential proliferation

B1 B2 B3

S

Page 30: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

30

But loops are a disaster

• No hop count

• Exponential proliferation

B1 B2 B3

S

Page 31: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

31

What to do about loops?

• Just say “don’t do that”

• Or, spanning tree algorithm

– Bridges gossip amongst themselves

– Compute loop-free subset

– Forward data on the spanning tree

– Other links are backups

Page 32: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

32

Algorhyme

I think that I shall never seeA graph more lovely than a tree.

A tree whose crucial propertyIs loop-free connectivity.

A tree which must be sure to spanSo packets can reach every LAN.

First the Root must be selectedBy ID it is elected.

Least cost paths from Root are tracedIn the tree these paths are placed.

A mesh is made by folks like me.Then bridges find a spanning tree.

Radia Perlman

Page 33: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

33

93

4

117

10

14

25

6

2,0,2

2,0,2

2,1,14

2,1,5

2,1,7

2,1,6

2,2,4

2,2,4

2,3,3

2,2,11

A

X

Page 34: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

34

Bother with spanning tree?

• Maybe just tell customers “don’t do loops”

• First bridge sold...

Page 35: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

35

First Bridge Sold

A C

Page 36: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

36

So Bridges were a kludge,

digging out of a bad decision

• Why are they so popular?

– plug and play

– simplicity

– high performance

• Will they go away?

– because of idiosyncracy of IP, need it for lower

layer.

Page 37: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

37

Note some things about bridges

• Certainly don’t get optimal

source/destination paths

• Temporary loops are a disaster

– No hop count

– Exponential proliferation

• But they are wonderfully plug-and-play

Page 38: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

38

So what is Ethernet?

• CSMA/CD, right? Not any more, really...

• source, destination (and no hop count)

• limited distance, scalability (not any more,

really)

Page 39: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

39

Switches

• Ethernet used to be bus

• Easier to wire, more robust if star (one huge

multiport repeater with pt-to-pt links

• If store and forward rather than repeater,

and with learning, more aggregate

bandwidth

• Can cascade devices…do spanning tree

• We’re reinvented the bridge!

Page 40: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

40

Basic idea of a packet

Destination address

Source address

data

Page 41: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

41

When I started

• Layer 3 had source, destination addresses

• Layer 2 was just point-to-point links

(mostly)

• If layer 2 is multiaccess, then need two

headers:

– Layer 3 has ultimate source, destination

– Layer 2 has next hop source, destination

Page 42: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

42

Hdrs inside hdrs

R1

R2 R3

β χα δ ε φ

S D

As transmitted by S? (L2 hdr, L3 hdr)

As transmitted by R1?

As received by D?

Page 43: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

43

Hdrs inside hdrs

R1

R2 R3

β χα δ ε φ

S D

S:

Layer 2 hdr Layer 3 hdr

Dest=βSource=α

Dest=D

Source=S

Page 44: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

44

Hdrs inside hdrs

R1

R2 R3

β χα δ ε φ

S D

R1:

Layer 2 hdr Layer 3 hdr

Dest=δSource=χ

Dest=D

Source=S

Page 45: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

45

Hdrs inside hdrs

R1

R2 R3

β χα δ ε φ

S D

R2:

Layer 2 hdr Layer 3 hdr

Dest=D

Source=S

Page 46: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

46

Hdrs inside hdrs

R1

R2 R3

β χα δ ε φ

S D

R3:

Layer 2 hdr Layer 3 hdr

Dest=φSource=ε

Dest=D

Source=S

Page 47: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

47

What designing “layer 3” meant

• Layer 3 addresses

• Layer 3 packet format (IP, DECnet)

– Source, destination, hop count, …

• A routing algorithm

– Exchange information with your neighbors

– Collectively compute routes with all rtrs

– Compute a forwarding table

Page 48: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

48

Network Layer

• connectionless fans designed IPv4, IPv6,

CLNP, IPX, AppleTalk, DECnet

• Connection-oriented reliable fans designed

X.25

• Connection-oriented datagram fans

designed ATM, MPLS

Page 49: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

49

Pieces of network layer

• interface to network: addressing, packet

formats, fragmentation and reassembly,

error reports

• routing protocols

• autoconfiguring addresses/nbr

discovery/finding routers

Page 50: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

50

Connection-oriented Nets

S

A

R1

R2

R3

R4

R5

D

3

4

7

2

4

3

1

2

3

(3,51)=(7,21)

(4,8)=(7,92)

(4,17)=(7,12)

(2,12)=(3,15)

(2,92)=(4,8)

(1,8)=(3,6)

(2,15)=(1,7)VC=8, 92, 8, 6

8

92

4

6

Page 51: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

51

Lots of connection-oriented

networks

• X.25: also have sequence number and ack

number in packets (like TCP), and layer 3

guarantees delivery

• ATM: datagram, but fixed size packets (48

bytes data, 5 bytes header)

Page 52: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

52

MPLS (multiprotocol label

switching)

• Connectionless, like MPLS, but arbitrary

sized packets

• Add 32-bit hdr on top of IP pkt

– 20 bit “label”

– Hop count (hooray!)

Page 53: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

53

Hierarchical connections (stacks of

MPLS labels)

R1

R2

S1

S8

S6

S9

S5

S2

S4

S3

D2

D1

D8

D2 D9

D3

D5D4

Routers in backbone only need to know about

one flow: R1-R2

Page 54: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

54

MPLS

• Originally for faster forwarding than

parsing IP header

• later “traffic engineering”

• classify pkts based on more than destination

address

Page 55: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

55

Connectionless Network Layers

• Destination, source, hop count

• Maybe other stuff

– fragmentation

– options (e.g., source routing)

– error reports

– special service requests (priority, custom routes)

– congestion indication

• Real diff: size of addresses

Page 56: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

56

Addresses

• 802 address “flat”, though assigned with

OUI/rest. No topological significance

• layer 3 addresses: locator/node :

topologically hierarchical address

• interesting difference:

– IPv4, IPv6, IPX, AppleTalk: locator specific to

a link

– CLNP, DECnet: locator “area”, whole campus

Page 57: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

57

Hierarchy within Locator

• Assume addresses assigned so that within a circle

everything shares a prefix

• Can summarize lots of circles with a shorter prefix

27*23*

2428*

2*

279* 272*

Page 58: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

58

New topic: Routing Algorithms

Page 59: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

59

Distributed Routing Protocols

• Rtrs exchange control info

• Use it to calculate forwarding table

• Two basic types

– distance vector

– link state

Page 60: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

60

Distance Vector

• Know

– your own ID

– how many cables hanging off your box

– cost, for each cable, of getting to nbr

j

k

m

n

cost 3

cost 2

cost 2

cost 7I am “4”

Page 61: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

61

j

k

m

n

cost 3

cost 2

cost 2

cost 7I am “4”

distance vector rcv’d from cable j

distance vector rcv’d from cable k

distance vector rcv’d from cable m

distance vector rcv’d from cable n

your own calculated distance vector

your own calculated forwarding table

12 3 15 3 12 5 3 18 0 7 15

5 8 3 2 10 7 4 20 5 0 15

0 5 3 2 19 9 5 22 2 4 7

6 2 0 7 8 5 118 12 3 2

2

m

6

j

5

m

0

0

12

k

8

j

6

k/j

cost 3

cost 2

cost 2

cost 7

19

n

3 ?

j ?

?

?

Page 62: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

62

j

k

m

n

cost 3

cost 2

cost 2

cost 7I am “4”

distance vector rcv’d from cable j

distance vector rcv’d from cable k

distance vector rcv’d from cable m

distance vector rcv’d from cable n

your own calculated distance vector

your own calculated forwarding table

12 3 15 3 12 5 3 18 0 7 15

5 8 3 2 10 7 4 20 5 0 15

0 5 3 2 19 9 5 22 2 4 7

6 2 0 7 8 5 118 12 3 2

2

m

6

j

5

m

0

0

12

k

8

j

6

k/j

cost 3

cost 2

cost 2

cost 7

19

n

3 ?

j ?

?

?

Page 63: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

63

j

k

m

n

cost 3

cost 2

cost 2

cost 7I am “4”

distance vector rcv’d from cable j

distance vector rcv’d from cable k

distance vector rcv’d from cable m

distance vector rcv’d from cable n

your own calculated distance vector

your own calculated forwarding table

12 3 15 3 12 5 3 18 0 7 15

5 8 3 2 10 7 4 20 5 0 15

0 5 3 2 19 9 5 22 2 4 7

6 2 0 7 8 5 118 12 3 2

2

m

6

j

5

m

0

0

12

k

8

j

6

k/j

cost 3

cost 2

cost 2

cost 7

19

n

3 ?

j ?

?

?

Page 64: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

64

j

k

m

n

cost 3

cost 2

cost 2

cost 7I am “4”

distance vector rcv’d from cable j

distance vector rcv’d from cable k

distance vector rcv’d from cable m

distance vector rcv’d from cable n

your own calculated distance vector

your own calculated forwarding table

12 3 15 3 12 5 3 18 0 7 15

5 8 3 2 10 7 4 20 5 0 15

0 5 3 2 19 9 5 22 2 4 7

6 2 0 7 8 5 118 12 3 2

2

m

6

j

5

m

0

0

12

k

8

j

6

k/j

cost 3

cost 2

cost 2

cost 7

19

n

3 ?

j ?

?

?

Page 65: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

65

j

k

m

n

cost 3

cost 2

cost 2

cost 7I am “4”

distance vector rcv’d from cable j

distance vector rcv’d from cable k

distance vector rcv’d from cable m

distance vector rcv’d from cable n

your own calculated distance vector

your own calculated forwarding table

12 3 15 3 12 5 3 18 0 7 15

5 8 3 2 10 7 4 20 5 0 15

0 5 3 2 19 9 5 22 2 4 7

6 2 0 7 8 5 118 12 3 2

2

m

6

j

5

m

0

0

12

k

8

j

6

k/j

cost 3

cost 2

cost 2

cost 7

19

n

3 ?

j ?

?

?

Page 66: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

66

j

k

m

n

cost 3

cost 2

cost 2

cost 7I am “4”

distance vector rcv’d from cable j

distance vector rcv’d from cable k

distance vector rcv’d from cable m

distance vector rcv’d from cable n

your own calculated distance vector

your own calculated forwarding table

12 3 15 3 12 5 3 18 0 7 15

5 8 3 2 10 7 4 20 5 0 15

0 5 3 2 19 9 5 22 2 4 7

6 2 0 7 8 5 118 12 3 2

2

m

6

j

5

m

0

0

12

k

8

j

6

k/j

cost 3

cost 2

cost 2

cost 7

19

n

3 ?

j ?

?

?

Page 67: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

67

Looping Problem

A B C

Page 68: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

68

Looping Problem

A B C

012Cost to C

Page 69: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

69

Looping Problem

A B C

012Cost to C

direction

towards C

direction

towards C

Page 70: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

70

Looping Problem

A B C

012Cost to C

What is B’s cost to C now?

Page 71: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

71

Looping Problem

A B C

012Cost to C

3

Page 72: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

72

Looping Problem

A B C

012Cost to C

3

direction

towards C

direction

towards C

Page 73: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

73

Looping Problem

A B C

012Cost to C

34

direction

towards C

direction

towards C

Page 74: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

74

Looping Problem

A B C

012Cost to C

34

5

direction

towards C

direction

towards C

Page 75: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

75

Looping Problem

worse with high connectivity

Q Z B A C N M V

H

Page 76: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

76

Split Horizon: one of several

optimizationsDon’t tell neighbor N you can reach D if you’d forward to D through N

A B C

A B

C

D

Page 77: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

77

Link State Routing

• meet nbrs

• Construct Link State Packet (LSP)

– who you are

– list of (nbr, cost) pairs

• Broadcast LSPs to all rtrs (“a miracle occurs”)

• Store latest LSP from each rtr

• Compute Routes (breadth first, i.e., “shortest path”

first—well known and efficient algorithm)

Page 78: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

78

A B C

D E F

G

6 25

1

212

2 4

A

B/6

D/2

B

A/6

C/2

E/1

C

B/2

F/2

G/5

D

A/2

E/2

E

B/1

D/2

F/4

F

C/2

E/4

G/1

G

C/5

F/1

Page 79: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

79

Computing Routes

• Edsgar Dijkstra’s algorithm:

– calculate tree of shortest paths from self to each

– also calculate cost from self to each

– Algorithm:

• step 0: put (SELF, 0) on tree

• step 1: look at LSP of node (N,c) just put on tree. If

for any nbr K, this is best path so far to K, put (K,

c+dist(N,K)) on tree, child of N, with dotted line

• step 2: make dotted line with smallest cost solid, go

to step 1

Page 80: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

80

Look at LSP of new tree node

A

B/6

D/2

B

A/6

C/2

E/1

C

B/2

F/2

G/5

D

A/2

E/2

E

B/1

D/2

F/4

F

C/2

E/4

G/1

G

C/5

F/1

C(0)

B(2)F(2)

G(5)

Page 81: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

81

Make shortest TENT solid

A

B/6

D/2

B

A/6

C/2

E/1

C

B/2

F/2

G/5

D

A/2

E/2

E

B/1

D/2

F/4

F

C/2

E/4

G/1

G

C/5

F/1

C(0)

B(2)F(2)

G(5)

Page 82: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

82

Look at LSP of newest tree node

A

B/6

D/2

B

A/6

C/2

E/1

C

B/2

F/2

G/5

D

A/2

E/2

E

B/1

D/2

F/4

F

C/2

E/4

G/1

G

C/5

F/1

C(0)

B(2)F(2)

G(5)

E(6) G(3)

Page 83: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

83

Make shortest TENT solid

A

B/6

D/2

B

A/6

C/2

E/1

C

B/2

F/2

G/5

D

A/2

E/2

E

B/1

D/2

F/4

F

C/2

E/4

G/1

G

C/5

F/1

C(0)

B(2)F(2)

E(6) G(3)

Page 84: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

84

Look at LSP of newest tree node

A

B/6

D/2

B

A/6

C/2

E/1

C

B/2

F/2

G/5

D

A/2

E/2

E

B/1

D/2

F/4

F

C/2

E/4

G/1

G

C/5

F/1

C(0)

B(2)F(2)

E(3) G(3)A(8)

Page 85: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

85

Make shortest TENT solid

A

B/6

D/2

B

A/6

C/2

E/1

C

B/2

F/2

G/5

D

A/2

E/2

E

B/1

D/2

F/4

F

C/2

E/4

G/1

G

C/5

F/1

C(0)

B(2)F(2)

E(3) G(3)A(8)

Page 86: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

86

Look at LSP of newest tree node

A

B/6

D/2

B

A/6

C/2

E/1

C

B/2

F/2

G/5

D

A/2

E/2

E

B/1

D/2

F/4

F

C/2

E/4

G/1

G

C/5

F/1

C(0)

B(2)F(2)

E(3) G(3)A(8)

D(5)

Page 87: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

87

Make shortest TENT solid

A

B/6

D/2

B

A/6

C/2

E/1

C

B/2

F/2

G/5

D

A/2

E/2

E

B/1

D/2

F/4

F

C/2

E/4

G/1

G

C/5

F/1

C(0)

B(2)F(2)

E(3) G(3)A(8)

D(5)

Page 88: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

88

Look at newest tree node’s LSP

A

B/6

D/2

B

A/6

C/2

E/1

C

B/2

F/2

G/5

D

A/2

E/2

E

B/1

D/2

F/4

F

C/2

E/4

G/1

G

C/5

F/1

C(0)

B(2)F(2)

E(3) G(3)A(8)

D(5)

Page 89: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

89

Make shortest TENT solid

A

B/6

D/2

B

A/6

C/2

E/1

C

B/2

F/2

G/5

D

A/2

E/2

E

B/1

D/2

F/4

F

C/2

E/4

G/1

G

C/5

F/1

C(0)

B(2)F(2)

E(3) G(3)A(8)

D(5)

Page 90: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

90

Look at newest node’s LSP

A

B/6

D/2

B

A/6

C/2

E/1

C

B/2

F/2

G/5

D

A/2

E/2

E

B/1

D/2

F/4

F

C/2

E/4

G/1

G

C/5

F/1

C(0)

B(2)F(2)

E(3) G(3)A(8)

D(5)

A(7)

Page 91: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

91

Make shortest TENT solid

A

B/6

D/2

B

A/6

C/2

E/1

C

B/2

F/2

G/5

D

A/2

E/2

E

B/1

D/2

F/4

F

C/2

E/4

G/1

G

C/5

F/1

C(0)

B(2)F(2)

E(3) G(3)

D(5)

A(7)

Page 92: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

92

We’re done!

A

B/6

D/2

B

A/6

C/2

E/1

C

B/2

F/2

G/5

D

A/2

E/2

E

B/1

D/2

F/4

F

C/2

E/4

G/1

G

C/5

F/1

C(0)

B(2)F(2)

E(3) G(3)

D(5)

A(7)

Page 93: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

93

Not quite: need forwarding table

• So everything in subtree gets forwarded

through that port

Page 94: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

94

“A miracle occurs”

• First link state protocol: ARPANET

• I wanted to do something similar for

DECnet

• My manager said “Only if you can prove

it’s stable”

• Given a choice between a proof and a

counterexample…

Page 95: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

95

Routing Robustness

• I showed how to make link state distribution

“self-stabilizing”…but only after the sick or

evil node was disconnected

• Later, my thesis was on how to make the

routing infrastructure (not just the routing

protocol), robust while sick and evil nodes

are participating…and it’s not that hard

Page 96: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

96

Distance vector vs link state

• Memory: distance vector wins (but memory is

cheap)

• Computation: debatable

• Simplicity of coding: simple distance vector wins.

Complex new-fangled distance vector, no

• Convergence speed: link state

• Functionality: link state; custom routes, mapping

the net, troubleshooting, sabotage-proof routing

Page 97: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

97

Specific Routing Protocols

• Interdomain vs Intradomain

• Intradomain:

– link state (OSPF, IS-IS)

– distance vector (RIP)

• Interdomain

– BGP

Page 98: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

98

BGP (Border Gateway Protocol)

• “Policies”, not just minimize path

• “Path vector”: given reported paths to D

from each nbr, and configured preferences,

choose your path to D

– don’t ever route through domain X, or not to D,

or only as last resort

• Other policies: don’t tell nbr about D, or lie

to nbr about D making path look worse

Page 99: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

99

Path vector/Distance vector

• Distance vector

– Each router reports to its neighbors {(D,cost)}

– Each router chooses best path based on min (reported cost to D+link cost to nbr)

• Path vector

– Each rtr R reports {(D,list of AS’s in R’s chosen path to D)…}

– Each rtr chooses best path based on configured policies

Page 100: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

100

BGP Configuration

• path preference rules

• which nbr to tell about which destinations

• how to “edit” the path when telling nbr N

about prefix P (add fake hops to discourage

N from using you to get to P)

Page 101: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

Bridges are cool, but…

• Routes are not optimal (spanning tree)

– STA cuts off redundant paths

– If A and B are on opposite side of path, they

have to take long detour path

• Temporary loops really dangerous

– no hop count in header

– proliferation of copies during loops

• Traffic concentration on selected links

Page 102: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

Bridge meltdowns

• They do occur (a Boston hospital)

• Lack of receipt of spanning tree msgs tells

bridge to turn on link

• So if too much traffic causes spanning tree

messages to get lost…

– loops

– exponential proliferation of looping packets

Page 103: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

What we’d like, part 1: replace

bridging with Rbridging

• keep transparency to endnodes

• keep plug-and-play

• have best paths

• eliminate problems with temporary loops

– have a hop count

– don’t exponentially proliferate packets

• then can converge optimistically (like rtrs)

Page 104: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

What we’d like, part 2: true

“level 1 routing” for IP

• allow plug-and-play campus sharing a

prefix

• allow optimal routing

• don’t require any endnode changes (e.g.,

implement ES-IS)

• Interwork with existing routers and bridges

Page 105: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

Rbridges

• Compatible with today’s bridges and routers

• Like routers, terminate bridges’ spanning tree

• Like bridges, glue LANs together to create

one IP subnet (or for other protocols, a

broadcast domain)

• Like routers, optimal paths, fast convergence,

no meltdowns

• Like bridges, plug-and-play

Page 106: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

Rbridging layer 2

• Link state protocol among Rbridges (so

know how to route to other Rbridges)

• Like bridges, learn location of endnodes

from receiving data traffic

• But since traffic on optimal paths, need to

distinguish originating traffic from transit

• So encapsulate packet

Page 107: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

Rbridging

R1

R2

R3

R4

R6

R7

R5

a

c

Page 108: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

Encapsulation Header

S=Xmitting Rbridge

D=Rcving Rbridge

pt=“transit”

hop count

dest RBridgeoriginal pkt (including L2 hdr)

• Outer L2 hdr must not confuse bridges

• So it’s just like it would be if the Rbridges were routers

• Need special layer 2 destination address

• for unknown or multicast layer 2 destinations

• can be L2 multicast, or any L2 address provided it

never gets used as a source address

Page 109: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

Rbridges and Bridges

R4 R7R2Seems like:

R4 R7

R2

Actually can be: bridged LAN

Page 110: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

Endnode Learning

• On shared link, only one Rbridge (DR) can

learn and decapsulate onto link

– otherwise, a “naked” packet will look like the

source is on that link

– have election to choose which Rbridge

• When DR sees naked pkt from S,

announces S in its link state info to other

Rbridges

Page 111: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

Pkt Forwarding: Ingress RBridge

• If D known: look up egress RBridge R2,

encapsulate, and forward towards R2

• Else, send to “destination=flood”, meaning

send on spanning tree

– calculated from LS info, not sep protocol

– each DR decapsulates

Page 112: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

112

Calculating spanning tree

• No reason to have additional protocol to

calculate a spanning tree

• The link state database gives enough

information for RBridges to

deterministically compute a spanning tree

– Do it from viewpoint of lowest ID RBridge

– When tie in Dijkstra calculation, choose parent

with lowest ID

Page 113: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

113

Possible IP optimization: proxy ARP

• For IP, learn (layer 3, layer 2) from ARP

(ND) replies

• Pass around (layer 3, layer 2) pairs in LSP

info

• Local RBridge can proxy ARP (i.e., answer

ARP reply) if target (layer 3, layer 2)

known

Page 114: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

114

Possible IP optimization: tighter

aliveness check

• Can check aliveness of attached IP

endnodes by sending ARP query

• Can assume endnode alive, until you

forward traffic to it, or until someone else

claims that endnode

Page 115: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

115

VLANs

• VLAN is a broadcast domain

• So a VLAN A packet must only be forwarded to VLAN A links

• RBridges must announce which VLANs they connect to

• RBridges must be able to flood a VLAN A pkt to just VLAN A links

– could do it with one spanning tree, and just not send on non-A links

– or one spanning tree, and filter if no A-links downstream

– or per-VLAN spanning tree

Page 116: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

116

VLANs

• VLAN A endnodes only need to be learned

by RBridges attached to VLAN A

• All RBridges must be able to forward to any

other RBridge

• Egress RBridge in the encapsulation header

Page 117: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

Conclusions

• Looks to routers like a bridge

– invisible, plug-and-play

• Looks to bridges like routers

– terminates spanning tree, broadcast domain

Page 118: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

118

Wrap-up

• folklore of protocol design

• things too obvious to say, but everyone gets

them wrong

Page 119: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

119

Forward Compatibility

• Reserved fields

– spare bits

– ignore them on receipt, set them to zero. Can

maybe be used for something in the future

• TLV encoding

– type, length, value

– so can skip new TLVs

– maybe have range of T’s to ignore if unknown, others

to drop packet

Page 120: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

120

Forward Compability

• Make fields large enough

– IP address, packet identifier, TCP sequence #

• Version number

– what is “new version” vs “new protocol”?

• same lower layer multiplex info

– therefore, must always be in same place!

– drop if version # bigger

Page 121: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

121

Fancy version # variants

• Might be security threat to trick two Vn

nodes into talk V(n-1)

• So maybe have “highest version I support”

in addition to “version of this packet”

• Or just a bit “I can support higher” (we did

this for IKEv2)

• Maybe have “minor version #”, for

compatible changes. Old node ignores it

Page 122: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

122

Version #

• Nobody seems to do this right

• IKEv1, SSL, even IP, unspecified what to

do if version # different. Most

implementations ignore it.

• SSL v3 moved version field!

– v2 sets it to 0.2. v3 sets (different field) to 3.0.

– v2 node will ignore version number field, and

happily parse the rest of the packet

Page 123: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

123

Avoid “flag days”

• Want to be able to migrate a running

network

• ARPANET routing: ran both routing

algorithms (but they had to compute the

same forwarding table)

– initially forward based on old, compute both

– one by one: forward based on new

– one-by-one: delete old

Page 124: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

124

Parameters

• Minimize these:

– someone has to document it

– customer has to read documentation and

understand it

• How to avoid

– architectural constants if possible

– automatically configure if possible

Page 125: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

125

Settable Parameters

• Make sure they can’t be set incompatibly

across nodes, across layers, etc. (e.g., hello

time and dead timer)

• Make sure they can be set at nodes one at a

time and the net can stay running

Page 126: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

126

Parameter tricks

• IS-IS

– pairwise parameters reported in “hellos”

– area-wide parameters reported in LSPs

• Bridges

– Use Root’s values, sent in spanning tree msgs

Page 127: Tutorial on Bridges, Routers, Switches, Oh My! · What designing “layer 3” meant • Layer 3 addresses • Layer 3 packet format (IP, DECnet) – Source, destination, hop count,

127

Summary

• If things aren’t simple, they won’t work

• Good engineering requires understanding

tradeoffs and previous approaches.

• It’s never a “waste of time” to answer “why

is something that way”

• Don’t believe everything you hear

• Know the problem you’re solving before

you try to solve it!