Top Banner
I Know What Your Packet Did Last Hop: Using Packet Histories to Troubleshoot Networks Nikhil Handigol, Brandon Heller, Vimalkumar Jeyakumar, David Mazières, and Nick McKeown, Stanford University NSDI 2014 Speaker:Cheng-Da Tsai 1
23

I know what your packet did last hop using packet histories to troubleshoot networks

Jul 15, 2015

Download

Internet

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: I know what your packet did last hop  using  packet histories to troubleshoot networks

I Know What Your Packet Did Last Hop: Using

Packet Histories to Troubleshoot Networks

Nikhil Handigol, Brandon Heller, Vimalkumar Jeyakumar, David Mazières, and Nick McKeown, Stanford University

NSDI 2014 Speaker:Cheng-Da Tsai

1

Page 2: I know what your packet did last hop  using  packet histories to troubleshoot networks

OutlineMotivation

Netsight architecture

Implementation

Debug tool(API + Application)

Compression

Evaluation

Scaling Netsight

Summary

2

Page 3: I know what your packet did last hop  using  packet histories to troubleshoot networks

Motivation

Provide direct evidence to diagnose network problem

Bug example:

3

Page 4: I know what your packet did last hop  using  packet histories to troubleshoot networks

Motivation

Provide direct evidence to diagnose network problem

Bug example:

4

Page 5: I know what your packet did last hop  using  packet histories to troubleshoot networks

Motivation

Provide direct evidence to diagnose network problem

Bug example:

After hours of debugging…..

5

Page 6: I know what your packet did last hop  using  packet histories to troubleshoot networks

Motivation

Provide direct evidence to diagnose network problem

Bug example:

forwarding rules were improperly update in wired switch…..QQ

6

Page 7: I know what your packet did last hop  using  packet histories to troubleshoot networks

Motivation

Use Netsight: you can only ask

“Show me all packet histories for packets to the client when the handover occurred. “

This packet go to the wrong AP.You can also check which switch flow table updated error.

7

Page 8: I know what your packet did last hop  using  packet histories to troubleshoot networks

Motivation

Packet History Definition:(3W1H)

What the packet looked like as it entered the network (headers)

Where the packet was forwarded (switches + ports)

How it was changed (header modifications)

Why it was forwarded that way (matched flow/actions + flow table).

Goal:

Complete visibility: every event that ever happened to every packet

8

Page 9: I know what your packet did last hop  using  packet histories to troubleshoot networks

Netsight architecture

9

Topology 保證正確

Page 10: I know what your packet did last hop  using  packet histories to troubleshoot networks

Implementation

Life Of a Postcard:

10

Page 11: I know what your packet did last hop  using  packet histories to troubleshoot networks

Implementation

Postcard Generation:Control Plane

Flow table state table recorder

Postcard

collector

Packet headerSwitch

id outport

version #

copy

tag

11

Page 12: I know what your packet did last hop  using  packet histories to troubleshoot networks

Implementation

Postcard Collection:Control Plane

Flow table state table recorder

Postcard

collector

All postcards for a packet to one server send by VLAN ID

12

Page 13: I know what your packet did last hop  using  packet histories to troubleshoot networks

Implementation

Postcard Collection:

Postcard

collectorhash based on flow key

(5-tuple)

13

Page 14: I know what your packet did last hop  using  packet histories to troubleshoot networks

Implementation

History Assembly:

Topo-Sort: assemble to a flow

14

Page 15: I know what your packet did last hop  using  packet histories to troubleshoot networks

Debug tool(API)

Postcard Filters: --bpf [packet description] -- dpis [switch id] --inport [port#] … EX:--bpf "ip src A" --dpid S --inport not P.

Packet History Filter: start at X: ^{{X}}

end at X: {{X}}$

go through X: {{X}}

go through X, and later Y: {{X}}.*{{Y}}

start at X, never reach Y: ^{{X}}[^{{Y}}]*$

experience a loop: (.).*(\1)

15

Page 16: I know what your packet did last hop  using  packet histories to troubleshoot networks

Debug tool(Application)

ndb:Interactive Network Debugger

netwatch:Live Invariant Monitor

netshark:Network-wide Path-Aware Packet Logger

netprof: Hierarchical Network Profiler

16

Page 17: I know what your packet did last hop  using  packet histories to troubleshoot networks

Implementation

Filter triggers:

PHFPHFPHFPHFPHFnotify

Application17

Page 18: I know what your packet did last hop  using  packet histories to troubleshoot networks

Compression

Compress in two places:

Before shuffling postcards to servers.

Before archiving assembled histories to disk.

18

Page 19: I know what your packet did last hop  using  packet histories to troubleshoot networks

Compression

Huge redundancy in packet header fields

19

Page 20: I know what your packet did last hop  using  packet histories to troubleshoot networks

Evaluation

Compression

20

Page 21: I know what your packet did last hop  using  packet histories to troubleshoot networks

Evaluation

Matching latency

21

Page 22: I know what your packet did last hop  using  packet histories to troubleshoot networks

Scaling Netsight

Basic Netsight (No Compress):

extract 31% traffic.

Netsight-SwitchAssist(Compress in Switch side):

extract 7% traffic.

Netsight-HostAssist(Compress in Host side):

extract 3% traffic.

22

Page 23: I know what your packet did last hop  using  packet histories to troubleshoot networks

Summary

Complete visibility: every event that ever happened to every packet is possible.

Exact traffic can be resolved by compression.

Speed of generating Postcard can be resolved by map-reduce method.

23