200 likes | 291 Vues
This paper presents an innovative End-Middle-End (EME) approach to connection establishment in networking. It addresses the naming and addressing requirements in both the old and current Internet setups, highlighting the limitations and need for improvement. The proposed EME framework introduces a Name-routed Signaling Network Structure, incorporating core nodes, P-Boxes for name-routed signaling, and M-Boxes for data forwarding. The paper also discusses flow negotiation, security mechanisms, and incremental deployment strategies. Use cases and extensions explore mobility, legacy NAT traversal, and protocol negotiation, among others. The implementation details a SIP-variant system with insights on optimizations and findings regarding latency and message routing efficiency.
E N D
An End-Middle-End Approach to Connection Establishment Saikat Guha Paul Francis {saikat,francis}@cs.cornell.edu Presented by Xin Liu
Outline • The Problem • System Architecture • Use Cases & Extensions • Proof-of-concept Implementation
EME Naming & Addressing Requirements: Old Internet • User-friendly naming (DNS) • Network-level identification (IP) • Identification of the application (Port) • Implication: application takes care of security • Whether to receive a packet • No danger processing a packet
More EME Naming & Addressing Requirements: Current Internet • Blocking of unwanted packets (Firewall) • Middleboxes interrupt E2E semantics • There is poor defense against DDoS attacks • Explicit negotiation of middlebox usage • Limited NAT hole punching techniques
NUTSS • User-friendly names • (foo@bar.com, ftpd) • Dynamic and secure name-address binding • SIP-like • Both on-path and off-path signaling (related work does not have both) • With middlebox usage negotiation • More than satisfying EME requirements • Mobility, multi-homing, protocol stack negotiation
Network Structure • Core: no middleboxes • P-Box: overlay node for name-routed signaling • M-Box: data-forwarding nodes including firewalls and NAT gateways • One P-Box is associated with multiple M-Boxes and has zero or more parent P-Boxes • Discovery of parent P-Box: the child sends an address-routed message to upstream, and due to lack of authentication token, the parent’s M-Box will send back the address of the parent’s P-Box
Name Registration Access Control: REGISTER message may be rejected
Flow Negotiation On-path & off-path coupling: Tok signed by P-Box and verified by M-Box
Address-routed Packets Token validation is only done for FlowInit packets Flow states are setup by FlowInit packets AddToFlowTable(P)
Connection Setup Example • Previous approaches do not work • TCP/IP & HIP does not work: both endpoints are behind NAT gateways • SIP+STUN etc: M4 blocks the communication
Security • Akamai-like protection: allowing massive replication of P-Boxes and M-Boxes • External DDoS protection required • Token mechanism may be co-opted with capabilities • Trust between P-Boxes: not regulated by the paper • Token eavesdropping: a small alternation needed, i.e. never send tokens in the clear • Hop-by-hop authentication prevents off-path P-Boxes from injection • Token replay: finer grained tokens, similar to TVA capabilities
Incremental Deployment • 1st phase: only endpoints support NUTSS • Incentives: mobility, (limited) NAT traversal, end-to-end access control • 2nd phase: P-Boxes deployment • Incentives: gaining insight into and weak access control over flows • 3rd phase: full deployment
Use Cases & Extensions • Mobility • SIP-like • Legacy NAT traversal • Endpoint-imposed middleboxes • Allowing endpoints to specify anonymizers to hide real addresses • Application-level anycast • Multiple endpoints REGISTER a single name • Pseudo-anycast? Address contains instance number
Use Cases & Extensions • Negotiating multicast • Identify group members with instances and transmit messages to all members • Default-off • Disallow name-routed messages by default • Protocol negotiation • SIP-like
Optimizations • Goal: reducing latency • Piggyback application data in signaling messages • Combine FlowNegotiate and FlowInit when P-Box and M-Box are on the same machine (states are setup with FlowNegotiate) • Include Self-Certifying Identifiers in FlowInit messages and send mutiple FlowInit messages in parallel to pre-establish failover paths
Implementation • SIP-variant • P-Boxes: SIP Express Router proxies • M-Boxes: including shim P-Boxes to couple name-routing and address-routing • Endpoints: user space library • New socket API • Hacking gethostbyname(), connect(), etc
Implementation Findings • SIP can almost implement NUTSS • Lack of nested domains • Latency • 15ms when P-Boxes are deployed on the same network segment as the endpoints • P-Box can route about 1200 name-routed messages per second