Tutorial on Network Layers 2 and 3

145
1 Tutorial on Network Layers 2 and 3 Radia Perlman Intel Labs ([email protected])

description

Tutorial on Network Layers 2 and 3. Radia Perlman Intel Labs ([email protected]). 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” - PowerPoint PPT Presentation

Transcript of Tutorial on Network Layers 2 and 3

Page 1: Tutorial on Network Layers 2 and 3

1

Tutorial on Network Layers 2 and 3

Radia PerlmanIntel Labs

([email protected])

Page 2: Tutorial on Network Layers 2 and 3

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 Network Layers 2 and 3

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 Network Layers 2 and 3

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

• Layer 2 ½ ... as if 2 vs 3 weren’t confusing enough

Page 5: Tutorial on Network Layers 2 and 3

5

Why this whole layer 2/3 thing?

• Myth: bridges/switches simpler devices, designed before routers

• OSI Layers– 1: physical

Page 6: Tutorial on Network Layers 2 and 3

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 Network Layers 2 and 3

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 Network Layers 2 and 3

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 Network Layers 2 and 3

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 Network Layers 2 and 3

10

Definitions

• Repeater: layer 1 relay

Page 11: Tutorial on Network Layers 2 and 3

11

Definitions

• Repeater: layer 1 relay• Bridge: layer 2 relay

Page 12: Tutorial on Network Layers 2 and 3

12

Definitions

• Repeater: layer 1 relay• Bridge: layer 2 relay• Router: layer 3 relay

Page 13: Tutorial on Network Layers 2 and 3

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 Network Layers 2 and 3

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 Network Layers 2 and 3

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 Network Layers 2 and 3

16

Layer 3 (e.g., IPv4, IPv6, DECnet, Appletalk, IPX, etc.)

• Put source, destination, hop count on packet• Addresses are assigned so that a bunch of

addresses can be summarized with a prefix• Just like postal addresses:

– Country– State– City

Page 17: Tutorial on Network Layers 2 and 3

17

Layer 3 packet

data

Layer 3 header

source dest hops

Page 18: Tutorial on Network Layers 2 and 3

18

Ethernet packet

data

Ethernet header

source dest

Page 19: Tutorial on Network Layers 2 and 3

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 admingroup/individual

Page 20: Tutorial on Network Layers 2 and 3

Ethernet addresses are “flat”

• Which means that Ethernet addresses have nothing to do with where a device is

• It looks like there is structure there, but the whole point of the OUI is to assign a fixed address at time of manufacture

20

Page 21: Tutorial on Network Layers 2 and 3

Ethernet “religion” was autoconfiguration

• Assigning addresses are the manufacturer’s problem

• Then the customer just plugs things together and they work

21

Page 22: Tutorial on Network Layers 2 and 3

22

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 23: Tutorial on Network Layers 2 and 3

Original Ethernet Design

• CSMA/CD– CS: “carrier sense” listen before talking so you

don’t interrupt– MA: “multiple access” shared medium– CD: “collision detect” listen even while talking

in case someone else started talking at “the same time”

– Do exponential random backoff if collision

Page 24: Tutorial on Network Layers 2 and 3

CSMA/CD pretty much dead

• So what is Ethernet today?

24

Page 25: Tutorial on Network Layers 2 and 3

25

So where did bridges come from?

Page 26: Tutorial on Network Layers 2 and 3

26

So where did bridges come from?

• Early 1980’s…Ethernet new and highly hyped

• People thought it was “the new way to do networking”

• People built applications directly on Ethernet (leaving out layer 3)

Page 27: Tutorial on Network Layers 2 and 3

27

Problem Statement

Need something that will sit between two Ethernets, andlet a station on one Ethernet talk to another

A C

Page 28: Tutorial on Network Layers 2 and 3

28

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 29: Tutorial on Network Layers 2 and 3

29

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 30: Tutorial on Network Layers 2 and 3

30

But loops are a disaster• No hop count• Exponential proliferation

B1 B2 B3

S

Page 31: Tutorial on Network Layers 2 and 3

31

But loops are a disaster• No hop count• Exponential proliferation

B1 B2 B3

S

Page 32: Tutorial on Network Layers 2 and 3

32

But loops are a disaster• No hop count• Exponential proliferation

B1 B2 B3

S

Page 33: Tutorial on Network Layers 2 and 3

33

But loops are a disaster• No hop count• Exponential proliferation

B1 B2 B3

S

Page 34: Tutorial on Network Layers 2 and 3

34

But loops are a disaster• No hop count• Exponential proliferation

B1 B2 B3

S

Page 35: Tutorial on Network Layers 2 and 3

35

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 36: Tutorial on Network Layers 2 and 3

36

93

4

117

10

14

2 5

6

A

X

Page 37: Tutorial on Network Layers 2 and 3

37

93

4

117

10

14

2 5

6

A

X

Page 38: Tutorial on Network Layers 2 and 3

38

AlgorhymeI think that I shall never see

A graph more lovely than a tree.A tree whose crucial property

Is loop-free connectivity.A tree which must be sure to span

So packets can reach every LAN.First the Root must be selected

By ID it is elected.Least cost paths from Root are traced

In the tree these paths are placed.A mesh is made by folks like me.

Then bridges find a spanning tree.Radia Perlman

Page 39: Tutorial on Network Layers 2 and 3

39

Bother with spanning tree?

• Maybe just tell customers “don’t do loops”• First bridge sold...

Page 40: Tutorial on Network Layers 2 and 3

40

First Bridge Sold

A C

Page 41: Tutorial on Network Layers 2 and 3

41

93

4

117

10

14

2 5

6

A

X

Suboptimal routes

Page 42: Tutorial on Network Layers 2 and 3

42

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 43: Tutorial on Network Layers 2 and 3

43

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 44: Tutorial on Network Layers 2 and 3

44

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 45: Tutorial on Network Layers 2 and 3

45

Basic idea of a packet

Destination addressSource address

data

Page 46: Tutorial on Network Layers 2 and 3

46

Hdrs inside hdrs

R1

R2 R3

b ca d e f

S D

As transmitted by S? (L2 hdr, L3 hdr)As transmitted by R1?As received by D?

Page 47: Tutorial on Network Layers 2 and 3

47

Hdrs inside hdrs

R1

R2 R3

b ca d e f

S D

S:

Layer 2 hdr Layer 3 hdr

Dest=bSource=a

Dest=DSource=S

Page 48: Tutorial on Network Layers 2 and 3

48

Hdrs inside hdrs

R1

R2 R3

b ca d e f

S D

R1:

Layer 2 hdr Layer 3 hdr

Dest=dSource=c

Dest=DSource=S

Page 49: Tutorial on Network Layers 2 and 3

49

Hdrs inside hdrs

R1

R2 R3

b ca d e f

S D

R2:

Layer 2 hdr Layer 3 hdr

Dest=DSource=S

Page 50: Tutorial on Network Layers 2 and 3

50

Hdrs inside hdrs

R1

R2 R3

b ca d e f

S D

R3:

Layer 2 hdr Layer 3 hdr

Dest=fSource=e

Dest=DSource=S

Page 51: Tutorial on Network Layers 2 and 3

51

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 52: Tutorial on Network Layers 2 and 3

52

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 53: Tutorial on Network Layers 2 and 3

53

Pieces of network layer

• interface to network: addressing, packet formats, fragmentation and reassembly, error reports

• routing protocols• autoconfiguring addresses/nbr

discovery/finding routers

Page 54: Tutorial on Network Layers 2 and 3

54

Connection-oriented Nets

S

AR1

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

8

6

Page 55: Tutorial on Network Layers 2 and 3

55

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 56: Tutorial on Network Layers 2 and 3

56

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 57: Tutorial on Network Layers 2 and 3

57

Hierarchical connections (stacks of MPLS labels)

R1

R2

S1

S8

S6

S9

S5

S2

S4

S3

D2D1

D8

D2 D9

D3

D5D4

Routers in backbone only need to know aboutone flow: R1-R2

Page 58: Tutorial on Network Layers 2 and 3

58

MPLS

• Originally for faster forwarding than parsing IP header

• later “traffic engineering”• classify pkts based on more than destination

address

Page 59: Tutorial on Network Layers 2 and 3

59

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 60: Tutorial on Network Layers 2 and 3

60

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 61: Tutorial on Network Layers 2 and 3

6161

HierarchyOne prefix per link One prefix per campus

2*

25*

28*

292*

22*293*

2*

Page 62: Tutorial on Network Layers 2 and 3

62

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 63: Tutorial on Network Layers 2 and 3

63

New topic: Routing Algorithms

Page 64: Tutorial on Network Layers 2 and 3

64

Distributed Routing Protocols

• Rtrs exchange control info• Use it to calculate forwarding table• Two basic types

– distance vector– link state

Page 65: Tutorial on Network Layers 2 and 3

65

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 66: Tutorial on Network Layers 2 and 3

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 Network Layers 2 and 3

67

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 68: Tutorial on Network Layers 2 and 3

68

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 69: Tutorial on Network Layers 2 and 3

69

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 70: Tutorial on Network Layers 2 and 3

70

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 71: Tutorial on Network Layers 2 and 3

71

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 72: Tutorial on Network Layers 2 and 3

72

Looping Problem

A B C

Page 73: Tutorial on Network Layers 2 and 3

73

Looping Problem

A B C

012 Cost to C

Page 74: Tutorial on Network Layers 2 and 3

74

Looping Problem

A B C

012 Cost to C

directiontowards C

directiontowards C

Page 75: Tutorial on Network Layers 2 and 3

75

Looping Problem

A B C

012 Cost to C

What is B’s cost to C now?

Page 76: Tutorial on Network Layers 2 and 3

76

Looping Problem

A B C

012 Cost to C

3

Page 77: Tutorial on Network Layers 2 and 3

77

Looping Problem

A B C

012 Cost to C

3

directiontowards C

directiontowards C

Page 78: Tutorial on Network Layers 2 and 3

78

Looping Problem

A B C

012 Cost to C

34

directiontowards C

directiontowards C

Page 79: Tutorial on Network Layers 2 and 3

79

Looping Problem

A B C

012 Cost to C

34

5

directiontowards C

directiontowards C

Page 80: Tutorial on Network Layers 2 and 3

80

Looping Problemworse with high connectivity

Q Z B A C N M VH

Page 81: Tutorial on Network Layers 2 and 3

81

Split Horizon: one of several optimizations

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

A B C

Page 82: Tutorial on Network Layers 2 and 3

82

Split Horizon: …but it won’t work with loops of more than 2 nodes

A B

C

D

Page 83: Tutorial on Network Layers 2 and 3

83

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 84: Tutorial on Network Layers 2 and 3

84

A B C

D E F

G

6 25

1

2122 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 85: Tutorial on Network Layers 2 and 3

85

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 86: Tutorial on Network Layers 2 and 3

86

Look at LSP of new tree nodeA

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 87: Tutorial on Network Layers 2 and 3

87

Make shortest TENT solidA

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 88: Tutorial on Network Layers 2 and 3

88

Look at LSP of newest tree nodeA

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(4) G(3)

Page 89: Tutorial on Network Layers 2 and 3

89

Make shortest TENT solidA

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(4) G(3)

Page 90: Tutorial on Network Layers 2 and 3

90

Look at LSP of newest tree nodeA

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 91: Tutorial on Network Layers 2 and 3

91

Make shortest TENT solidA

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 92: Tutorial on Network Layers 2 and 3

92

Look at LSP of newest tree nodeA

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 93: Tutorial on Network Layers 2 and 3

93

Make shortest TENT solidA

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 94: Tutorial on Network Layers 2 and 3

94

Look at newest tree node’s LSPA

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 95: Tutorial on Network Layers 2 and 3

95

Make shortest TENT solidA

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 96: Tutorial on Network Layers 2 and 3

96

Look at newest node’s LSPA

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 97: Tutorial on Network Layers 2 and 3

97

Make shortest TENT solidA

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 98: Tutorial on Network Layers 2 and 3

98

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 99: Tutorial on Network Layers 2 and 3

Another interesting detail of link state

• Pseudonodes• Since routing algorithm is proportional to

the number of links• If an Ethernet with 100s of nodes were

considered fully connected, the link state database would be too large

99

Page 100: Tutorial on Network Layers 2 and 3

100

Instead of: Use pseudonode

Pseudonodes

Page 101: Tutorial on Network Layers 2 and 3

Designated Routers• Elect a router to be the master of the link• It names the pseudonode

– In IS-IS, a node’s ID is 7 bytes: 6 bytes of system ID (usually the MAC address of one of its ports), plus an extra byte. E.G., R1 is DR, names link R1.25

• All routers (including R1) claim a link to R1.25• R1 (pretending to be the pseudonode), claims connectivity

to each of the routers on the link

101

Page 102: Tutorial on Network Layers 2 and 3

102

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 103: Tutorial on Network Layers 2 and 3

103

Specific Routing Protocols

• Interdomain vs Intradomain• Intradomain:

– link state (OSPF, IS-IS)– distance vector (RIP)

• Interdomain– BGP

Page 104: Tutorial on Network Layers 2 and 3

104

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 105: Tutorial on Network Layers 2 and 3

Interesting use of BGP

• Lifeguard: Locating Internet Failures WEffectively and Generating Usable Alternative Routes Dynamically

• Work at University of Washington:– Ethan Katz-Bassett, David Choffnes, Colin

Scott, Arvind Krishnamurthy, Tom Anderson • If want others to avoid ASx, claim ASx is

already in the path!

Page 106: Tutorial on Network Layers 2 and 3

106

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 107: Tutorial on Network Layers 2 and 3

107

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 108: Tutorial on Network Layers 2 and 3

108

So, world is confusing, what with layer 2 and layer 3

Page 109: Tutorial on Network Layers 2 and 3

109

So, world is confusing, what with layer 2 and layer 3

• So let’s invent layer 2 ½!

Page 110: Tutorial on Network Layers 2 and 3

110110

What’s wrong with bridges?

• Suboptimal routing• Traffic concentration• Temporary loops real dangerous (no hop

count, exponential proliferation)• Fragile

– If lose packets (congestion?), turn on port

Page 111: Tutorial on Network Layers 2 and 3

111111

Why not replace bridges with IP routers?

• Subtle reason: IP needs address per link. • Layer 3 doesn’t have to work that way

– CLNP / DECnet• Bottom level of routing is a whole cloud with the same

prefix• Routing is to endnodes inside the cloud• Enabled by “ES-IS” protocol, where endnodes

periodically announce themselves to the routers• Also in ES-IS: routers announce themselves to

endnodes…

Page 112: Tutorial on Network Layers 2 and 3

112112

HierarchyOne prefix per link One prefix per campus

2*

25*

28*

292*

22*293*

2*

Page 113: Tutorial on Network Layers 2 and 3

113113

A bit of history

• 1992…Internet could have adopted CLNP• Easier to move to a new layer 3 back then

– Internet smaller– Not so mission critical– IP hadn’t yet (out of necessity) invented DHCP, NAT,

so CLNP gave understandable advantages• CLNP still has advantages over IPv6 (e.g., large

multilink level 1 clouds)

Page 114: Tutorial on Network Layers 2 and 3

114

TRILL working group in IETF

• TRILL= TRansparent Interconnection of Lots of Links

• Use layer 3 routing, and encapsulate with a civilized header

• But still look like a bridge from the outside

Page 115: Tutorial on Network Layers 2 and 3

115

Goal

• Design so that change can be incremental• With TRILL, replace any subset of bridges

with RBridges– still looks to IP like one giant Ethernet– the more bridges you replace with RBridges,

better bandwidth utilization, more stability

Page 116: Tutorial on Network Layers 2 and 3

116

Run link state protocol

• So all the RBridges know how to reach all the other RBridges

• But don’t know anything about endnodes

Page 117: Tutorial on Network Layers 2 and 3

117

Why link state?

• Since all switches know the complete topology, easy to compute lots of trees deterministically (we’ll get to that later)

• Easy to piggyback “nickname allocation protocol” (we’ll get to that later)

Page 118: Tutorial on Network Layers 2 and 3

118

Routing inside campus

• First RB encapsulates to last RB– So header is “safe” (has hop count)– Inner RBridges only need to know how to reach

destination RBridge• Still need tree for unknown/multicast

– But don’t need spanning tree protocol –compute tree(s) deterministically from the link state database

Page 119: Tutorial on Network Layers 2 and 3

119

Rbridging

R7

R1

R3

R4

R6

R2

R5

a

c

Page 120: Tutorial on Network Layers 2 and 3

120

Details

• What the encapsulated packet looks like• How R1 knows that R2 is the correct “last

RBridge”

Page 121: Tutorial on Network Layers 2 and 3

121

Encapsulated Frame(Ethernet)outer header TRILL header original frame

dest (nexthop)srce (Xmitter)Ethertype=TRILL

first RBridgelast RBridgeTTL

TRILL header specifies RBridges with 2-byte nicknames

Page 122: Tutorial on Network Layers 2 and 3

122

2-byte Nicknames

• Saves hdr room, faster fwd’ing• Dynamically acquired• Choose unused #, announce in LSP• If collision, IDs and priorities break tie• Loser chooses another nickname• Configured nicknames higher priority

Page 123: Tutorial on Network Layers 2 and 3

123

How does R1 know that R2 is the correct “last RBridge”?

• If R1 doesn’t, R1 sends packet through a tree

• When R2 decapsulates, it remembers (ingress RBridge, source MAC)

Page 124: Tutorial on Network Layers 2 and 3

124

How does R1 know that R2 is the correct “last RBridge”?

• Original design– R1 responsible for learning its attached

endnodes, and advertising to the other RBs

Page 125: Tutorial on Network Layers 2 and 3

125

How does R1 know that R2 is the correct “last RBridge”?

• Original design– R1 responsible for learning its attached

endnodes, and advertising to the other RBs• People more familiar with layer 2 wanted

– R2 (decapsulating RB) sees “first RB=R1, source MAC =a” and learns that “a” is attached to R1

Page 126: Tutorial on Network Layers 2 and 3

126

Compromise

• Mandatory for last RB to learn from data• Optional for an RB to advertise its

endnodes• Optional to learn from advertisements• Advertised info “more definitive” than

seeing source address in data packets• Reasoning

– In some cases learning local endnodes is more definitive

Page 127: Tutorial on Network Layers 2 and 3

127

What if R1 doesn’t know that R2 is the correct “last RBridge”?

• If R1 doesn’t, R1 sends packet through a tree

• When R2 decapsulates, it remembers (ingress RBridge, source MAC)

Page 128: Tutorial on Network Layers 2 and 3

Trees

• Calculate based on link state database (not by running the spanning tree protocol)

• Original design: One tree• WG wanted to multipath multidestination

frames• So TRILL calculates some # of trees, and

ingress RB selects which tree

128

Page 129: Tutorial on Network Layers 2 and 3

129

Use of “first” and “last” RBridge in TRILL header

• For Unicast, obvious– Route towards “last” RBridge– Learn location of source from “first” RBridge

• For Multicast/unknown destination– Use of “first”

• to learn location of source endnode• to do “RPF check” on multicast

– Use of “last”• To allow first RB to specify a tree• Campus calculates some number of trees

Page 130: Tutorial on Network Layers 2 and 3

Multiple trees

130

R1 specifies which tree(yellow, red, or blue)

R1

Page 131: Tutorial on Network Layers 2 and 3

RPF check

• RPF=reverse path forwarding• For safety on multidestination frames…do

sanity check: Could this frame have arrived on this tree, on this port, from this ingress RB?

131

Page 132: Tutorial on Network Layers 2 and 3

Filtering of Multidestination Frames

• Sometimes a frame need not be “spanning”, i.e., it need not be delivered everywhere

• Filtering is optional• Two things that can help limit the spread

(no RBs along a branch of the tree need to see the pkt)– VLAN– IP multicast group

132

Page 133: Tutorial on Network Layers 2 and 3

Summary Tree distribution

• Each RB, say RB1, calculates which ports are in tree X (for each of the several trees)

• For tree X, for each port in tree X– RPF info: Which ingress RBs on that port– Filtering info: Which VLANs, which IP

multicast addresses, that this port leads to• If RPF=true, and that branch leads to

receivers, transmit on that port133

Page 134: Tutorial on Network Layers 2 and 3

Some of the Future Work• Taming various types of broadcast traffic (ARP,

NETBIOS)– Cache ARP replies and negative responses– Query a directory which stores (IP, MAC, switch

nickname)• Could be ingress switch, hypervisor, or end node

• Pseudonode nickname• OAM• Increasing the number of VLANs

134

Page 135: Tutorial on Network Layers 2 and 3

135

Algorhyme v2I hope that we shall one day see

A graph more lovely than a tree.A graph to boost efficiency

While still configuration-free.A network where RBridges can

Route packets to their target LAN.The paths they find, to our elation,

Are least cost paths to destination.With packet hop counts we now see,

The network need not be loop-free.RBridges work transparently.

Without a common spanning tree.Ray Perlner

Page 136: Tutorial on Network Layers 2 and 3

136

Wrap-up

• folklore of protocol design• things too obvious to say, but everyone gets

them wrong

Page 137: Tutorial on Network Layers 2 and 3

137

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 138: Tutorial on Network Layers 2 and 3

138

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 139: Tutorial on Network Layers 2 and 3

139

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 140: Tutorial on Network Layers 2 and 3

140

Version #

• Nobody seems to do this right• IP, IKEv1, SSL 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 141: Tutorial on Network Layers 2 and 3

141

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 142: Tutorial on Network Layers 2 and 3

142

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 143: Tutorial on Network Layers 2 and 3

143

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 144: Tutorial on Network Layers 2 and 3

144

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 145: Tutorial on Network Layers 2 and 3

145

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!