33
REVEALING MIDDLEBOXES INTERFERENCE WITH TRACEBOX Gregory Detal *, Benjamin Hesmans*, Olivier Bonaventure*, Yves Vanaubel° and Benoit Donnet°. *Université catholique de Louvain °Université de Liège http://www.tracebox.org

Revealing Middleboxes Interference with Tracebox

  • Upload
    lana

  • View
    52

  • Download
    0

Embed Size (px)

DESCRIPTION

Revealing Middleboxes Interference with Tracebox. Gregory Detal *, Benjamin Hesmans *, Olivier Bonaventure*, Yves Vanaubel ° and Benoit Donnet °. *Université catholique de Louvain °Université de Liège. http:// www.tracebox.org. Outline. Middleboxes interference - PowerPoint PPT Presentation

Citation preview

Page 1: Revealing  Middleboxes  Interference with  Tracebox

REVEALING MIDDLEBOXES INTERFERENCE WITH TRACEBOXGregory Detal*, Benjamin Hesmans*, Olivier Bonaventure*, Yves Vanaubel° and Benoit Donnet°.

*Université catholique de Louvain°Université de Liège

http://www.tracebox.org

Page 2: Revealing  Middleboxes  Interference with  Tracebox

Outline• Middleboxes interference• Detect packet modification with ICMP• Tracebox• Measurements results

Page 3: Revealing  Middleboxes  Interference with  Tracebox

The end-to-end principle …

Application

Transport

Network

Data link

Physical

Application

Transport

Network

Data link

PhysicalData link

Physical

Network

Data link

Physical

Page 4: Revealing  Middleboxes  Interference with  Tracebox

… does not hold

Application

Transport

Network

Data link

Physical

Application

Transport

Network

Data link

PhysicalData link

Physical

Application

Transport

Network

Data link

Physical

Page 5: Revealing  Middleboxes  Interference with  Tracebox

In reality

Sherry, Justine, et al. "Making middleboxes someone else's problem: Network processing as a cloud service." Proceedings of the ACM SIGCOMM 2012 conference. ACM, 2012.

Page 6: Revealing  Middleboxes  Interference with  Tracebox

TCP Segment processed by a router

Source port Destination port

Checksum Urgent pointer

THL Reserved Flags

Acknowledgment number

Sequence number

Window

Ver IHL ToS Total length

Checksum TTL Protocol

Flags Frag. Offset

Source IP address

Identification

Destination IP address

Payload

Options

Source port Destination port

Checksum Urgent pointer

THL Reserved Flags

Acknowledgment number

Sequence number

Window

Ver IHL ToS Total length

Checksum TTL Protocol

Flags Frag. Offset

Source IP address

Identification

Destination IP address

Payload

Options

IP

TCP

Page 7: Revealing  Middleboxes  Interference with  Tracebox

How transparent is the Internet ?• 25th September 2010 to

30th April 2011• 142 access networks• 24 countries• Craft TCP segments using

custom scripts• Sent specific TCP

segments from client to a server in Japan

Honda, Michio, et al. "Is it still possible to extend TCP?" Proceedings of the 2011 ACM SIGCOMM conference on Internet measurement conference. ACM, 2011.

Page 8: Revealing  Middleboxes  Interference with  Tracebox

TCP Segments on the today’s Internet

Source port Destination port

Checksum Urgent pointer

THL Reserved Flags

Acknowledgment number

Sequence number

Window

Ver IHL ToS Total length

Checksum TTL Protocol

Flags Frag. Offset

Source IP address

Identification

Destination IP address

Payload

Options

IP

TCP

Source port Destination port

Checksum Urgent pointer

THL Reserved Flags

Acknowledgment number

Sequence number

Window

Ver IHL ToS Total length

Checksum TTL Protocol

Flags Frag. Offset

Source IP address

Identification

Destination IP address

Payload

Options

Page 9: Revealing  Middleboxes  Interference with  Tracebox

Potentially miss a lot of middleboxes

Page 10: Revealing  Middleboxes  Interference with  Tracebox

Outline• Middleboxes interference• Detect packet modification with ICMP• Tracebox• Measurements results

Page 11: Revealing  Middleboxes  Interference with  Tracebox

Traceroute with ICMP in a nutshell

Source port Destination port

Checksum Urgent pointer

THL Reserved Flags

Acknowledgment number

Sequence number

Window

Ver IHL ToS Total length

Checksum TTL Protocol

Flags Frag. Offset

Source IP address

Identification

Destination IP address

TTL=1

IP/TCP

TTL=2

Page 12: Revealing  Middleboxes  Interference with  Tracebox

Traceroute with ICMP in a nutshell

IP/ICMP

Source port Destination port

Sequence number

Ver IHL ToS Total length

Checksum 1 Protocol

Flags Frag. Offset

Source IP address

Identification

Destination IP address

IP

type = 11 code = 0 checksum

0 (unused)Use the IP source to identify routers

Page 13: Revealing  Middleboxes  Interference with  Tracebox

Middlebox detection with ICMP

Source port Destination port

Checksum Urgent pointer

THL Reserved Flags

Acknowledgment number

Sequence number

Window

Ver IHL ToS Total length

Checksum 2 Protocol

Flags Frag. Offset

Source IP address

Identification

Destination IP address

Source port Destination port

Sequence number

Ver IHL ToS Total length

Checksum 1 Protocol

Flags Frag. Offset

Source IP address

Identification

Destination IP address

Compare

Page 14: Revealing  Middleboxes  Interference with  Tracebox

ICMP-based modification detection• RFC792 requires ICMP to include only the first 8 bytes of

the transport header.

• In 1995 RFC1812 and in 2007 RFC4884 requires that routers should quote the complete original packet.

• By default on Linux, Cisco IOX, HP routers, Alcatel routers, PaloAlto Firewall, etc.

Source port Destination port

Checksum Urgent pointerTHL Reserved Flags

Acknowledgment numberSequence number

Window

Ver IHL ToS Total length

Checksum TTL ProtocolFlags Frag. Offset

Source IP address

Identification

Destination IP address

Payload

Options

Page 15: Revealing  Middleboxes  Interference with  Tracebox

80 % of Internet paths contains at least one RFC1812-capable router

Page 16: Revealing  Middleboxes  Interference with  Tracebox

ICMP detection limitations• Similar to traceroute:

• Filtering of ICMP• Routers throttle or does not send ICMP

• To detect middlebox in front of server, the latter should generate an ICMP.

Page 17: Revealing  Middleboxes  Interference with  Tracebox

Outline• Middleboxes interference• Detect packet modification with ICMP• Tracebox• Measurements results

Page 18: Revealing  Middleboxes  Interference with  Tracebox

Tracebox• Uses the previous mechanism to detect middleboxes.

• Implemented in C++ with Lua embedded.

• Libcrafter allows to efficiently describe probes as Scapy.

• Open source and available at http://www.tracebox.org• Supports Linux and Mac OSX

Page 19: Revealing  Middleboxes  Interference with  Tracebox

TraceboxUsage: tracebox [ OPTIONS ] hostOptions are: -h Display this help and exit -n Do not resolve IP addresses -6 Use IPv6 for static probe generated -u Use UDP for static probe generated -d port Use the specified port for static probe generated. Default is 80. -i device Specify a network interface to operate with -m hops_max Set the max number of hops (max TTL to be reached). Default is 30 -p probe Specify the probe to send. -s script Run a script.

Page 20: Revealing  Middleboxes  Interference with  Tracebox

Probe definition• SYN probe that contains the window scale option

• ip{} / tcp{flags=0x2,dst=80} / WSCALE• IP / TCP / wscale(9) / NOP

• IPv6/UDP probe with payload• IPv6 / udp{dst=5678} / raw(‘this is a payload’)

• Multiple options:• ip{} / RR(8) / tcp{dst=80} / mss(1400) / WSCALE / TS

Page 21: Revealing  Middleboxes  Interference with  Tracebox

Output example# tracebox -n -p “IP/TCP/MSS/MPCAPABLE/WSCALE” bahn.de tracebox to 81.200.198.6 (bahn.de): 64 hops max 1: 130.104.228.126 IP::CheckSum 2: 130.104.254.229 IP::TTL IP::CheckSum 3: 193.191.3.85 IP::TTL IP::CheckSum 4: 193.191.16.21 IP::TTL IP::CheckSum 5: 195.69.144.123 IP::TTL IP::CheckSum 6: 145.254.5.158 IP::TTL IP::CheckSum 7: 88.79.13.62 IP::TTL IP::CheckSum 8: 81.200.194.234 IP::TTL IP::CheckSum 9: 81.200.197.9 IP::TTL IP::CheckSum 10: 81.200.198.6 TCP::CheckSum IP::TTL IP::CheckSum TCPOptionMaxSegSize::MaxSegSize –TCPOptionMPTCPCapable -TCPOptionWindowScale

Page 22: Revealing  Middleboxes  Interference with  Tracebox

Output example# tracebox -n -p IP/TCP/MSS/MPCAPABLE/WSCALE bahn.de tracebox to 81.200.198.6 (bahn.de): 64 hops max 1: 130.104.228.126 IP::CheckSum 2: 130.104.254.229 IP::TTL IP::CheckSum 3: 193.191.3.85 IP::TTL IP::CheckSum 4: 193.191.16.21 IP::TTL IP::CheckSum 5: 195.69.144.123 IP::TTL IP::CheckSum 6: 145.254.5.158 IP::TTL IP::CheckSum 7: 88.79.13.62 IP::TTL IP::CheckSum 8: 81.200.194.234 IP::TTL IP::CheckSum 9: 81.200.197.9 IP::TTL IP::CheckSum 10: 81.200.198.6 TCP::CheckSum IP::TTL IP::CheckSum TCPOptionMaxSegSize::MaxSegSize –TCPOptionMPTCPCapable -TCPOptionWindowScale

Page 23: Revealing  Middleboxes  Interference with  Tracebox

Output example# tracebox -n -p IP/TCP/MSS/MPCAPABLE/WSCALE bahn.de tracebox to 81.200.198.6 (bahn.de): 64 hops max 1: 130.104.228.126 IP::CheckSum 2: 130.104.254.229 IP::TTL IP::CheckSum 3: 193.191.3.85 IP::TTL IP::CheckSum 4: 193.191.16.21 IP::TTL IP::CheckSum 5: 195.69.144.123 IP::TTL IP::CheckSum 6: 145.254.5.158 IP::TTL IP::CheckSum 7: 88.79.13.62 IP::TTL IP::CheckSum 8: 81.200.194.234 IP::TTL IP::CheckSum 9: 81.200.197.9 IP::TTL IP::CheckSum 10: 81.200.198.6 TCP::CheckSum IP::TTL IP::CheckSum TCPOptionMaxSegSize::MaxSegSize –TCPOptionMPTCPCapable -TCPOptionWindowScale

Page 24: Revealing  Middleboxes  Interference with  Tracebox

Outline• Middleboxes interference• Detect packet modification with ICMP• Tracebox• Measurements results

Page 25: Revealing  Middleboxes  Interference with  Tracebox

Measurements• Used PlanetLab to perform experiments

• PlanetLab nodes are supposed to be directly connected to the Internet.

• Sources: 70 vantage points

• Destinations: Top 5000 Alexa

Page 26: Revealing  Middleboxes  Interference with  Tracebox

Some middleboxes randomize the TCP sequence number …

Page 27: Revealing  Middleboxes  Interference with  Tracebox

… but does not modify the SACK blocks

Missmatch

Page 28: Revealing  Middleboxes  Interference with  Tracebox

Evaluation of the impact

Click

TCP SeqModification

Discard

1 %Ack’ = Ack - Δ

Seq’ = Seq + Δ

Page 29: Revealing  Middleboxes  Interference with  Tracebox

Linux performance significantly drops

Page 30: Revealing  Middleboxes  Interference with  Tracebox

Firewall at source modified the MSS

Page 31: Revealing  Middleboxes  Interference with  Tracebox

Core network also look at the MSS option and modifies it

Page 32: Revealing  Middleboxes  Interference with  Tracebox

Lessons learned• There exists middleboxes that affect performances and network operators are not always aware of them.

• Tracebox can detect some middleboxes.

• Tracebox could help network operators to debug their network even better with more routers that are RFC1812-capable.

Page 33: Revealing  Middleboxes  Interference with  Tracebox

Thank you. Questions ?

[email protected]://www.tracebox.org