Missing pieces Putting the pieces together EE 122

  • Slides: 68
Download presentation
Missing pieces + Putting the pieces together EE 122, Fall 2013 Sylvia Ratnasamy http:

Missing pieces + Putting the pieces together EE 122, Fall 2013 Sylvia Ratnasamy http: //inst. eecs. berkeley. edu/~ee 122/ Material thanks to Ion Stoica, Scott Shenker, Jennifer Rexford, Nick Mc. Keown, and many other colleagues

Today • Missing pieces – DHCP – ARP • Putting the pieces together –

Today • Missing pieces – DHCP – ARP • Putting the pieces together – “What happens when I click on a link? ” • More missing pieces

Naming • Application layer: URLs and domain names – names “resources” -- hosts, content,

Naming • Application layer: URLs and domain names – names “resources” -- hosts, content, program – (recall: mixes the what and where of an object) • Network layer: IP addresses – host’s network location • Link layer: MAC addresses – host identifier • Use all three for end-to-end communication!

Discovery • A host is “born” knowing only its MAC address • Must discover

Discovery • A host is “born” knowing only its MAC address • Must discover lots of information before it can communicate with a remote host B – what is my IP address? – what is B’s IP address? (remote) – what is B’s MAC address? (if B is local) – what is my first-hop router’s address? (if B is not local) –…

ARP and DHCP • Link layer discovery protocols – “Address Resolution Protocol”, “Dynamic Host

ARP and DHCP • Link layer discovery protocols – “Address Resolution Protocol”, “Dynamic Host Configuration Protocol” – confined to a single local-area network (LAN) – rely on broadcast capability of a LAN Hosts Router

ARP and DHCP • Link layer discovery protocols • Serve two functions – Discovery

ARP and DHCP • Link layer discovery protocols • Serve two functions – Discovery of local end-hosts • for communication between hosts on the same LAN

ARP and DHCP • Link layer discovery protocols • Serve two functions – Discovery

ARP and DHCP • Link layer discovery protocols • Serve two functions – Discovery of local end-hosts – Bootstrap communication with remote hosts • what’s my IP address? • who/where is my local DNS server? • who/where is my first hop router?

DHCP • “Dynamic Host Configuration Protocol” – defined in RFC 2131 • A host

DHCP • “Dynamic Host Configuration Protocol” – defined in RFC 2131 • A host uses DHCP to discover – its own IP address – its netmask – IP address(es) for its DNS name server(s) – IP address(es) for its first-hop “default” router(s)

DHCP: operation 1. One or more local DHCP servers maintain required information – IP

DHCP: operation 1. One or more local DHCP servers maintain required information – IP address pool, netmask, DNS servers, etc. – application that listens on UDP port 67

DHCP: operation 1. One or more local DHCP servers maintain required information 2. Client

DHCP: operation 1. One or more local DHCP servers maintain required information 2. Client broadcasts a DHCP discovery message – L 2 broadcast, to MAC address FF: FF: FF: FF

DHCP: operation 1. One or more local DHCP servers maintain required information 2. Client

DHCP: operation 1. One or more local DHCP servers maintain required information 2. Client broadcasts a DHCP discovery message 3. One or more DHCP servers responds with a DHCP “offer” message – proposed IP address for client, lease time – other parameters

DHCP: operation 1. One or more local DHCP servers maintain required information 2. Client

DHCP: operation 1. One or more local DHCP servers maintain required information 2. Client broadcasts a DHCP discovery message 3. One or more DHCP servers responds with a DHCP “offer” message 4. Client broadcasts a DHCP request message – specifies which offer it wants – echoes accepted parameters – other DHCP servers learn they were not chosen

DHCP: operation 1. One or more local DHCP servers maintain required information 2. Client

DHCP: operation 1. One or more local DHCP servers maintain required information 2. Client broadcasts a DHCP discovery message 3. One or more DHCP servers responds with a DHCP “offer” message 4. Client broadcasts a DHCP request message 5. Selected DHCP server responds with an ACK (DHCP “relay agents” used when the DHCP server isn’t on the same broadcast domain -- see text)

DHCP uses “soft state” • Soft state: if not refreshed, state is forgotten –

DHCP uses “soft state” • Soft state: if not refreshed, state is forgotten – contrast hard state: allocation is explicitly returned/reclaimed – used to track address allocation in DHCP • Implementation – – – address allocations are associated with a lease period server sets a timer associated with the record of allocation client must request a refresh before lease period expires server resets timer when a refresh arrives; sends ACK server reclaims allocated address when timer expires • Simple, yet robust under failure – state always fixes itself in (small constant of) lease time

Soft state under failure a. b. c. d is XYZ’s from (now, now+lease) a.

Soft state under failure a. b. c. d is XYZ’s from (now, now+lease) a. b. c. d is mine from (now, now+lease) DHCP Server XYZ Router • What happens when host XYZ fails? – refreshes from XYZ stop – server reclaims a. b. c. d after ~lease period

Soft state under failure a. b. c. d is XYZ’s from (now, now+lease) a.

Soft state under failure a. b. c. d is XYZ’s from (now, now+lease) a. b. c. d is mine from (now, now+lease) DHCP Server XYZ Router • What happens when server fails? – ACKs from server stop – XYZ releases address after ~lease period; sends new request – A new DHCP server can come up from a `cold start’ and we’re back on track in ~lease time

Soft state under failure a. b. c. d is XYZ’s from (now, now+lease) a.

Soft state under failure a. b. c. d is XYZ’s from (now, now+lease) a. b. c. d is mine from (now, now+lease) DHCP Server XYZ Router • What happens if the network fails? – refreshes and ACKs don’t get through – XYZ release address; DHCP server reclaims it

Are we there yet? What I learnt from DHCP my IP: 1. 2. 3.

Are we there yet? What I learnt from DHCP my IP: 1. 2. 3. 48 netmask: 1. 2. 3. 0/24 (255. 0) DNS: 1. 2. 3. 156 router: 1. 2. 3. 19 DHCP Server DNS Server Host Router Host

Sending Packets Over Link-Layer 1. 2. 3. 48 Host IP packet 1. 2. 3.

Sending Packets Over Link-Layer 1. 2. 3. 48 Host IP packet 1. 2. 3. 53 Host 90 -E 2 -A 1 -09 -66 -1 B 1. 2. 3. 156 DNS 58 -23 -D 7 -FA-20 -B 0 1. 2. 3. 156 Router • Link layer only understands MAC addresses – Translate the destination IP address to MAC address – Encapsulate the IP packet inside a link-level frame

ARP: Address Resolution Protocol • Every node maintains an ARP table – list of

ARP: Address Resolution Protocol • Every node maintains an ARP table – list of (IP address MAC address) pairs • Consult the table when sending a packet – Map destination IP address to destination MAC address – Encapsulate the (IP) data packet with MAC header; transmit • But: what if IP address not in the table? – Sender broadcasts: “Who has IP address 1. 2. 3. 156? ” – Receiver responds: “MAC address 58 -23 -D 7 -FA-20 -B 0” – Sender caches result in its ARP table

What if the destination is remote? • Look up the MAC address of the

What if the destination is remote? • Look up the MAC address of the first hop router – 1. 2. 3. 48 uses ARP to find MAC address for first-hop router 1. 2. 3. 19 rather than ultimate destination IP address • How does the red host know the destination is not local? – Uses netmask (discovered via DHCP) • How does the red host know about 1. 2. 3. 19? – Also DHCP 1. 2. 3. 0/24 (255. 0) 1. 2. 3. 156 1. 2. 3. 48 host . . . DNS host 1. 2. 3. 19 router . . . 5. 6. 7. 0/24 host

Security Analysis of ARP • Impersonation – Any node that hears request can answer

Security Analysis of ARP • Impersonation – Any node that hears request can answer … – … and can say whatever they want • Actual legit receiver never sees a problem – Because even though later packets carry its IP address, its NIC doesn’t capture them since not its MAC address

Steps in Sending a Packet What do hosts need to know? And how do

Steps in Sending a Packet What do hosts need to know? And how do they find out?

Steps in reaching a Host • First look up destination’s IP address • Need

Steps in reaching a Host • First look up destination’s IP address • Need to know where local DNS server is – DHCP • Also needs to know its own IP address – DHCP

Sending a Packet • On same subnet: – Use MAC address of destination. –

Sending a Packet • On same subnet: – Use MAC address of destination. – ARP • On some other subnet: – Use MAC address of first-hop router. – DHCP + ARP • And how can a host tell whether destination is on same or other subnet? – Use the netmask – DHCP

Example: A Sending a Packet to B A R B How does host A

Example: A Sending a Packet to B A R B How does host A send an IP packet to host B?

Example: A Sending a Packet to B A R 1. A sends packet to

Example: A Sending a Packet to B A R 1. A sends packet to R. 2. R sends packet to B. B

Host A Decides to Send Through R • Host A constructs an IP packet

Host A Decides to Send Through R • Host A constructs an IP packet to send to B – Source 111, destination 222 • Host A has a gateway router R – Used to reach destinations outside of 111. 0/24 – Address 111. 110 for R learned via DHCP A R 28 B

Host A Sends Packet Through R • Host A learns the MAC address of

Host A Sends Packet Through R • Host A learns the MAC address of R’s interface – ARP request: broadcast request for 111. 110 – ARP response: R responds with E 6 -E 9 -00 -17 -BB-4 B • Host A encapsulates the packet and sends to R A R 29 B

Two points: R Decides how to to. Forward • Routing table points this port

Two points: R Decides how to to. Forward • Routing table points this port • Destination address is within • Router R’s adapter receives the packet maskthe of IPport’s (i. e. , local) – R extracts packetaddress from the Ethernet frame Packet – R sees the IP packet is destined to 222 • Router R consults its forwarding table – Packet matches 222. 0/24 via other adapter A R 30 B

R Sends Packet to B • Router R’s learns the MAC address of host

R Sends Packet to B • Router R’s learns the MAC address of host B – ARP request: broadcast request for 222 – ARP response: B responds with 49 -BD-D 2 -C 7 -56 -2 A • Router R encapsulates the packet and sends to B A R 31 B

Key Ideas in Both ARP and DHCP • Broadcasting: used for initial bootstrap •

Key Ideas in Both ARP and DHCP • Broadcasting: used for initial bootstrap • Caching: remember the past for a while – Store the information you learn to reduce overhead – Remember your own address & other host’s addresses – Key optimization for performance • Soft state: eventually forget the past – Associate a time-to-live field with the information – … and either refresh or discard the information – Key for robustness

Discovery mechanisms We’ve seen two broad approaches – Broadcast (ARP, DHCP) • flooding doesn’t

Discovery mechanisms We’ve seen two broad approaches – Broadcast (ARP, DHCP) • flooding doesn’t scale • no centralized point of failure • zero configuration – Directory service (DNS) • no flooding • root of the directory is vulnerable (caching is key) • needs configuration to bootstrap (local, root servers, etc. ) Can we get the best of both? – Internet-scale yet zero config?

 • Are we there yet? – Yes!

• Are we there yet? – Yes!

Putting the pieces together Walk through the steps required to download www. google. com/index.

Putting the pieces together Walk through the steps required to download www. google. com/index. html from your laptop your. DNS your. DHCP Google’s datacenter You R router Dorm UCB Count the number of protocols that come into play! • Assume: `cold start’ -- nothing cached anywhere • Assume: your. DNS on a different subnet from your. DHCP • Ignore intra- and interdomain routing protocols

placeholder…

placeholder…

Recap: Name discovery/resolution • MAC addresses? – my own: hardcoded – others: ARP (given

Recap: Name discovery/resolution • MAC addresses? – my own: hardcoded – others: ARP (given IP address) • IP addresses? – my own: DHCP – others: DNS (given domain name) • how do I bootstrap DNS communication? (DHCP) • Domain names? – search engines

Switched Ethernet

Switched Ethernet

Why Switched Ethernet? B A C switch D • Enables concurrent communication • Host

Why Switched Ethernet? B A C switch D • Enables concurrent communication • Host A can talk to C, while B talks to D • No collisions no need for CSMA, CD • No constraints on link lengths, etc.

Switched Ethernet • Constraints (for backward compatibility) • same framing (MAC address structure, headers)

Switched Ethernet • Constraints (for backward compatibility) • same framing (MAC address structure, headers) • maintain plug-n-play aspect • (Old) Ethernet achieved plug-n-play by leveraging a broadcast medium • how do we do this in a switched topology? • Natural first thought: flood (to mimic broadcast)

Problem: Flooding can lead to loops Example: A wants to broadcast a message -

Problem: Flooding can lead to loops Example: A wants to broadcast a message - A sends packet to 1 1 Floods to 2 and 4 2 Floods to B and 3 4 Floods to D and 3 3 Floods packet from 2 to C and 4 3 Floods packet from 4 to C and 2 4 Floods packet from 3 to D and 1 2 Floods packet from 3 to B and 1 1 Floods packet from 2 to A and 4 1 Floods packet from 4 to B and 2 …. A 1 B 2 4 3 C - A “broadcast storm” if the network contains a cycle of switches D

Easiest Way to Avoid Loops • Use a topology where loops are impossible! •

Easiest Way to Avoid Loops • Use a topology where loops are impossible! • Take arbitrary topology • Build spanning tree (algorithm covered later) – Sub-graph that covers all vertices but contains no cycles – Ignore all links not on the spanning tree • Only one path to destinations on spanning trees – So don’t have to worry about loops!

Consider graph

Consider graph

A Spanning Tree 44

A Spanning Tree 44

Another Spanning Tree 45

Another Spanning Tree 45

Flooding on a Spanning Tree • Switches flood using the following rule: – (Ignoring

Flooding on a Spanning Tree • Switches flood using the following rule: – (Ignoring all ports not on spanning tree!) • Originating switch sends “flood” packet out all ports • When a “flood” packet arrives on one incoming port, send it out all other ports

Flooding on Spanning Tree

Flooding on Spanning Tree

Flooding on Spanning Tree

Flooding on Spanning Tree

But isn’t flooding wasteful? • Yes, but we can use it to bootstrap more

But isn’t flooding wasteful? • Yes, but we can use it to bootstrap more efficient forwarding • Idea: watch the packets going by, and learn from that – There is a single path between any two nodes – If node A sees a packet from node B come in on a particular port, it knows what port to use to reach B!

Nodes can “learn” routing tables • Switch can learn how to reach nodes by

Nodes can “learn” routing tables • Switch can learn how to reach nodes by remembering where flooding packets came from! • If flood packet from Node A entered switch from port 4, then switch uses port 4 to reach Node A 50

Learning from Flood Packets Node A can be reached through this port Node B

Learning from Flood Packets Node A can be reached through this port Node B Node A 51 Once a node has sent a flood message, all other switches know how to reach it….

Node B Responds Node B can be reached through this port Node B Node

Node B Responds Node B can be reached through this port Node B Node A 52 When a node responds, some of the switches learn where it is

General Approach • Flood first packet to node you are trying to reach •

General Approach • Flood first packet to node you are trying to reach • All switches learn where you are • When destination responds, some switches learn where it is… – Only some switches, because packet to you follows direct path, and is not flooded • The decision to flood or not is done on a switchby-switch basis….

Self-Learning Switch When a packet arrives • Inspect source MAC address, associate with incoming

Self-Learning Switch When a packet arrives • Inspect source MAC address, associate with incoming port • Store mapping in the switch table • Use time-to-live field to eventually forget mapping Packet tells switch how to reach A. B A C D

Self Learning: Handling Misses When packet arrives with unfamiliar destination • Forward packet out

Self Learning: Handling Misses When packet arrives with unfamiliar destination • Forward packet out all other ports • Response will teach switch about that destination B A C D

Summary of Learning Approach • Avoids loop by restricting to spanning tree • This

Summary of Learning Approach • Avoids loop by restricting to spanning tree • This makes flooding possible • Flooding allows packet to reach destination • And in the process switches learn how to reach source of flood • No route “computation”

Last Piece: Building the Spanning Tree • Distributed • No global information • Must

Last Piece: Building the Spanning Tree • Distributed • No global information • Must adapt when failures occur

What Do We Know? • Shortest paths to (or from) a node form a

What Do We Know? • Shortest paths to (or from) a node form a tree – Covers all nodes in the graph – No shortest path can have a cycle

Algorithm Has Two Aspects • Pick a root: – This will be the destination

Algorithm Has Two Aspects • Pick a root: – This will be the destination to which shortest paths go – Pick the one with the smallest identifier (MAC addr. ) • Compute shortest paths to the root – Only keep the links on shortest-paths – Break ties by picking the lowest neighbor switch addr • Ethernet’s spanning tree construction does both with a single algorithm

Constructing a Spanning Tree • Switches need to elect a root – The switch

Constructing a Spanning Tree • Switches need to elect a root – The switch w/ smallest identifier (MAC addr) • Each switch determines if each interface root is on the shortest path from the root – Excludes it from the tree if not • Messages (Y, d, X) – From node X – Proposing Y as the root – And the distance is d One hop Three hops

Steps in Spanning Tree Algorithm • Initially, each switch proposes itself as the root

Steps in Spanning Tree Algorithm • Initially, each switch proposes itself as the root – Example: switch X announces (X, 0, X) • Switches update their view of the root – Upon receiving message (Y, d, Z) from Z, check Y’s id – If Y’s id < current root: set root = Y • Switches compute their distance from the root – Add 1 to the distance received from a neighbor – exclude links not on shortest path to the root • If root or shortest distance to it changed, “flood” updated message (Y, d+1, X)

Example From Switch #4’s Viewpoint • Switch #4 thinks it is the root –

Example From Switch #4’s Viewpoint • Switch #4 thinks it is the root – Sends (4, 0, 4) message to 2 and 7 1 • Then, switch #4 hears from #2 – Receives (2, 0, 2) message from 2 – … and thinks that #2 is the root – And realizes it is just one hop away • Then, switch #4 hears from #7 – – Receives (2, 1, 7) from 7 And realizes this is a longer path So, prefers its own one-hop path And removes 4 -7 link from the tree 3 5 2 4 7 6

Example From Switch #4’s Viewpoint • Switch #2 hears about switch #1 – Switch

Example From Switch #4’s Viewpoint • Switch #2 hears about switch #1 – Switch 2 hears (1, 1, 3) from 3 – Switch 2 starts treating 1 as root – And sends (1, 2, 2) to neighbors 1 3 5 • Switch #4 hears from switch #2 – Switch 4 starts treating 1 as root – And sends (1, 3, 4) to neighbors 2 4 7 6

Links on spanning tree • • • 3 -1 5 -1 6 -1 2

Links on spanning tree • • • 3 -1 5 -1 6 -1 2 -3 4 -2 7 -2 1 3 5 2 4 7 6

Now which ones are on the spanning tree? • • • 2 is new

Now which ones are on the spanning tree? • • • 2 is new root 3 -2 6 -2 4 -2 7 -2 5 -6 3 5 2 4 7 6

Robust Spanning Tree Algorithm • Algorithm must react to failures – Failure of the

Robust Spanning Tree Algorithm • Algorithm must react to failures – Failure of the root node • Need to elect a new root, with the next lowest identifier – Failure of other switches and links • Need to recompute the spanning tree • Root switch continues sending messages – Periodically re-announcing itself as the root (1, 0, 1) – Other switches continue forwarding messages • Detecting failures through timeout (soft state) – If no word from root, time out and claim to be the root!

Problems with Spanning Tree? • Delay in reestablishing spanning tree – Network is “down”

Problems with Spanning Tree? • Delay in reestablishing spanning tree – Network is “down” until spanning tree rebuilt • Much of the network bandwidth goes unused – Forwarding is only over the spanning tree • Many ongoing efforts to fix these problems in datacenter networks (next lecture)

Schedule • Nov 18: Security part I (Vern Paxson) • Nov 20: Switched Ethernet

Schedule • Nov 18: Security part I (Vern Paxson) • Nov 20: Switched Ethernet (contd. ) and Datacenters (me) • Nov 25: Security part II (Vern) • Nov 27: Thanksgiving • Dec 2: SDN (Scott Shenker) + HKN survey • Dec 4: Final review