Top Banner
In-band Network Telemetry (INT) Mukesh Hira, VMware Naga Katta, Princeton University
27

In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

Aug 12, 2020

Download

Documents

dariahiddleston
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: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

In-bandNetworkTelemetry(INT)

Mukesh Hira,VMwareNagaKatta,PrincetonUniversity

Page 2: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

VirtualL2andL3topologies,Firewalls,Load-balancers,…

Policies,Service-chaining

End-points

Container

Spine

Leaf

PhysicalTransport

DatacenterNetworkTopologies

Page 3: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

Currentmonitoringmethodsareinadequate

§ Notfastenough§ InvolveCPUandcontrolplanes§ Networkstatechangesrapidly

§ Donotprovideend-to-endstate§ Difficulttocorrelateper-elementstatewiththeactualpathofaflow

Page 4: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

INT:In-bandNetworkTelemetry

§ Mechanismforcollectingnetworkstateinthedataplane§ Asclosetorealtime aspossible§ Atcurrentandfuturelinerates§ Withaframeworkthatcanadapt overtime

§ Examplesofnetworkstate§ SwitchID,IngressPortID,EgressPortID§ EgressLinkUtilization§ HopLatency§ EgressQueueOccupancy§ EgressQueueCongestionStatus§ ….

Page 5: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

INTExample

vSwitch vSwitch

Payload

L1,P1,P2,Eg-Util

Encap

INTinstructions PortP1SWL1

PortP2

PortP1SWS2

PortP2 PortP1

SWL2

PortP2 S2,P1,P2,Eg-Util

L2,P1,P2,Eg-Util

SwitchID

IngressPortID

EgressPortID

EgressLinkUtilizationPayload

Payload

Encap

INTinstructions

Encap

INTinstructions

L1,P1,P2,Eg-Util

Payload

Encap

INTinstructions

S2,P1,P2,Eg-Util

L1,P1,P2,Eg-Util

Payload

Payload

Page 6: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

INTHeaderFormat

Ver Flags InstructionCount MaxHopCount TotalHopCount

InstructionBitmap ReservedMostRecentINTMetadata

00

1

INTMetadata..

FirstINTMetadata

MetadataHeader

Metadata

4Bytes

Page 7: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

INTHeader:PotentialLocations

OuterEth,IP,UDPHeaders

Geneve Header

OptionClass,Type,Length

INTMetadataHeadersandMetadata

InnerPayload

Variable-lengthGENEVEoptions

GENEVE

OuterEth,IP,UDPHeaders

VXLANHeaderNext_Protocol =INT

VXLANGPEHeader

INTMetadataHeadersandMetadata

InnerPayload

INTasVXLANNext-Protocol

VXLAN-GPE

INTmetadatamayalsobecarriedas• NetworkServiceHeaderMetadata• TCPoptions/payload• UDPpayload

Page 8: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

INTusingP4

§ P4enablesflexiblepacketparsingandmodificationforINT

§ P4allowsINTtoadaptto§ AnyEncapsulationformat§ AnyStaterequiredtobecollected§ Anyfeature,protocol– currentandfuture

Page 9: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

INT:P4CodeSnippet

header_type int_header_t {fields{ver :2;flags:9;ins_cnt :5;max_hop_cnt :8;total_hop_cnt :8;instruction_mask :16;

}}

header_type vxlan_gpe_int_header_t{fields{int_type :8;rsvd :8;len :8;next_proto :8;

}}

header_type vxlan_gpe_t{fields{flags:8;reserved:16;next_proto :8;vni :24;reserved2:8;

}}

HeaderDefinitions

ParserDefinitions parserparse_gpe_int_header {

extract(vxlan_gpe_int_header);set_metadata(int_metadata.gpe_int_hdr_len,

latest.len);returnparse_int_header;

}

parserparse_int_header {extract(int_header);….

}

Page 10: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

INT:P4CodeSnippetExact-matchTableDefinition

ActionDefinitions

tableint_inst {reads{int_header.instruction_mask :exact;

}actions{int_set_header_i0;int_set_header_i1;int_set_header_i2;int_set_header_i3;…..

}

actionint_set_header_i0(){}actionint_set_header_i1(){int_set_header_3();

}actionint_set_header_i2(){int_set_header_2();

}actionint_set_header_i3(){int_set_header_3();int_set_header_2();

}…..

Page 11: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

INTApplicationReal-timemonitoringandtroubleshooting

Page 12: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

OverlayNetworkMonitoringtoday

Page 13: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

Real-timeNetworkMonitoring

20% 80%

40% 20%

22% 85%

45% 26%

25% 90%

50% 24%

35% 82%

48% 28%

30% 75%

42% 30%

Next:Pickaflowonthesourcelogicalportandviewthepathittakesandexactnetworkstateitexperiences

Leaf1 Leaf2

Spine1

Spine2

Page 14: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

Real-timetroubleshootingdemo

Page 15: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

INTApplicationHop-by-HopUtilization-AwareLoad-balancingArchitecture

Page 16: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

HULA:INT+Flowlet routing

1. PeriodicINTprobes§ disseminatepathutilizationtoswitches

2. Flowlet detectionandpathselection§ happensatall switches§ hop-by-hopadaptive routing

Page 17: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

INTprobestraversemultiplepaths

ToR

Aggregate

Spines

Probeoriginates

Probereplicates

Page 18: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

Probescarrypathutilization

S1

S2

S3

S4

ToR 10

ToR ID=10Max_util =50%

ToR 1Probe

ToR ID=10Max_util =80%

ToR ID=10Max_util =60%

Page 19: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

Probesupdateswitchstate

S1

S2

S3

S4

ToR 10

Dst Besthop Pathutil

ToR 10 S4 50%

ToR 1 S2 10%

… …

ToR 1

PathUtil table

Probe

ToR ID=10Max_util =50%

Page 20: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

Switchesloadbalanceflowlets

S1

S2

S3

S4

ToR 10

Dst Besthop Pathutil

ToR 10 S4 50%

ToR 1 S2 10%

… …

Dst Flowlet # Next hop

Tor_10 1 S4

… …

… …

ToR 1

Flowlet table

PathUtil table

Data

Page 21: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

Simulation:TopologyAsymmetry

8serversperleaf

40Gbps

40Gbps

10Gbps

LinkFailure

Page 22: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

HULAVs.ECMP

Page 23: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

HULA- Advantages

• Topologyoblivious• Adaptive tonetworkdynamics• Scalable tolargetopologies• Noseparatesourceroutingrequired• Programmable inP4!

§ Processingprobes§ Flowlet routing

Page 24: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

Summary

§ INTprovidesreal-timenetworkstatedirectlyinthedataplane§ Scalestoarbitrarilylargenetworks§ Scalestocurrentandfuturelinkspeeds§ Canadapttoanynetwork,anyencap,anyapplication

§ Knowledgeofreal-timenetworkstateopensupnewpossibilities§ Enhancedmonitoringandtroubleshooting§ Network-stateawarerouting§ …

Page 25: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

Moreinformation

http://p4.org/p4/inband-network-telemetry/Blogpostwithlinksto

§ INTdemovideo§ INTspecification§ P4sourcecoderepository

MoreinformationonUtilizationawareroutingwillbepostedonp4.orginthenearfuture

Page 26: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

INTSpecification– CollaborativeEffort

http://p4.org/wp-content/uploads/fixed/INT/INT-current-spec.pdf

Page 27: In-band Network Telemetry (INT) · INT Header: Potential Locations Outer Eth, IP, UDP Headers Geneve Header Option Class, Type, Length INT Metadata Headers and Metadata Inner Payload

ThankYou