Apache Traffic Server Extensible Host Resolution at ApacheCon NA 2014.

Slides:



Advertisements
Similar presentations
Enabling Secure Internet Access with ISA Server
Advertisements

MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 6 Managing and Administering DNS in Windows Server 2008.
Remote Procedure Call (RPC)
Precept 6 Hashing & Partitioning 1 Peng Sun. Server Load Balancing Balance load across servers Normal techniques: Round-robin? 2.
Sweeping lame DNS reverse delegations APNIC16 – DNS Operations SIG Seoul, Korea, 20 August 2003.
Apache Traffic Server Cache Toolkit API 9 Apr 2014 at ApacheCon NA
Study of Hurricane and Tornado Operating Systems By Shubhanan Bakre.
2.1 Installing the DNS Server Role Overview of the Domain Name System Role Overview of the DNS Namespace DNS Improvements for Windows Server 2008 Considerations.
Lecture 2: Servers and Services Network Design & Administration.
Domain Name System. DNS is a client/server protocol which provides Name to IP Address Resolution.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Naming (2) DISTRIBUTED.
Internet Networking Spring 2006 Tutorial 12 Web Caching Protocols ICP, CARP.
Web Servers How do our requests for resources on the Internet get handled? Can they be located anywhere? Global?
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #13 Web Caching Protocols ICP, CARP.
EEC-681/781 Distributed Computing Systems Lecture 3 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Hands-On Microsoft Windows Server 2003 Networking Chapter 6 Domain Name System.
Internet Networking Spring 2002 Tutorial 13 Web Caching Protocols ICP, CARP.
Hands-On Microsoft Windows Server 2003 Networking Chapter 7 Windows Internet Naming Service.
Hands-On Microsoft Windows Server 2003 Administration Chapter 9 Administering DNS.
70-293: MCSE Guide to Planning a Microsoft Windows Server 2003 Network, Enhanced Chapter 7: Planning a DNS Strategy.
DOMAIN NAME SYSTEM. Introduction  There are several applications that follow client server paradigm.  The client/server programs can be divided into.
CLUSTER WEBLOGIC SERVER. 1.Creating clusters and understanding its concept GETTING STARTED.
Domain Name Services Oakton Community College CIS 238.
11.1 © 2004 Pearson Education, Inc. Exam Managing and Maintaining a Microsoft® Windows® Server 2003 Environment Lesson 11: Introducing WINS, DNS,
File System. NET+OS 6 File System Architecture Design Goals File System Layer Design Storage Services Layer Design RAM Services Layer Design Flash Services.
Additional SugarCRM details for complete, functional, and portable deployment.
Distributed Deadlocks and Transaction Recovery.
PerfSONAR Client Construction February 11 th 2010, APAN 29 – perfSONAR Workshop Jeff Boote, Assistant Director R&D.
Bigtable: A Distributed Storage System for Structured Data F. Chang, J. Dean, S. Ghemawat, W.C. Hsieh, D.A. Wallach M. Burrows, T. Chandra, A. Fikes, R.E.
Name Resolution Domain Name System.
Chapter 16 – DNS. DNS Domain Name Service This service allows client machines to resolve computer names (domain names) to IP addresses DNS works at the.
DNS (Domain Name System) Protocol On the Internet, the DNS associates various sorts of information with domain names. A domain name is a meaningful and.
Oracle10g RAC Service Architecture Overview of Real Application Cluster Ready Services, Nodeapps, and User Defined Services.
70-291: MCSE Guide to Managing a Microsoft Windows Server 2003 Network Chapter 7: Domain Name System.
25.1 Chapter 25 Domain Name System Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2000 Network Protocols Chapter 25 (Data Communication & Networking Book): Domain Name System (DNS) 1.
Chapter 17 Domain Name System
1 Application Layer Lecture 6 Imran Ahmed University of Management & Technology.
1 Chapter 6: Proxy Server in Internet and Intranet Designs Designs That Include Proxy Server Essential Proxy Server Design Concepts Data Protection in.
Application-Layer Anycasting By Samarat Bhattacharjee et al. Presented by Matt Miller September 30, 2002.
70-291: MCSE Guide to Managing a Microsoft Windows Server 2003 Network Chapter 6: Name Resolution.
Domain Name System CH 25 Aseel Alturki
October 8, 2015 University of Tulsa - Center for Information Security Microsoft Windows 2000 DNS October 8, 2015.
Guide to Linux Installation and Administration, 2e1 Chapter 2 Planning Your System.
Introduction to dCache Zhenping (Jane) Liu ATLAS Computing Facility, Physics Department Brookhaven National Lab 09/12 – 09/13, 2005 USATLAS Tier-1 & Tier-2.
1 Kyung Hee University Chapter 18 Domain Name System.
MapReduce and GFS. Introduction r To understand Google’s file system let us look at the sort of processing that needs to be done r We will look at MapReduce.
Configuring Name Resolution and Additional Services Lesson 12.
® IBM Software Group © 2007 IBM Corporation Best Practices for Session Management
The Replica Location Service The Globus Project™ And The DataGrid Project Copyright (c) 2002 University of Chicago and The University of Southern California.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 19 Domain Name System (DNS)
DNS DNS overview DNS operation DNS zones. DNS Overview Name to IP address lookup service based on Domain Names Some DNS servers hold name and address.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Linux Operations and Administration
Cacheability Control. Problem  Multiple ways to control how a object interacts with the cache.  TSHttpTxnServerRespNoStoreSet  TSHttpTxnRespCacheableSet.
OPTION section It is the first section of the named.conf User can use only one option statement and many option-value pair under the section. Syntax is.
Bigtable: A Distributed Storage System for Structured Data
Introduction Contain two or more CPU share common memory and peripherals. Provide greater system throughput. Multiple processor executing simultaneous.
Chapter 4: server services. The Complete Guide to Linux System Administration2 Objectives Configure network interfaces using command- line and graphical.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Domain Name System: DNS To identify an entity, TCP/IP protocols use the IP address, which uniquely identifies the Connection of a host to the Internet.
Understand Names Resolution
Jean-Philippe Baud, IT-GD, CERN November 2007
IMPLEMENTING NAME RESOLUTION USING DNS
Internet Networking recitation #12
Net 323 D: Networks Protocols
Chapter 15: File System Internals
COMPUTER NETWORKS PRESENTATION
Windows Name Resolution
Presentation transcript:

Apache Traffic Server Extensible Host Resolution at ApacheCon NA 2014

Speaker Alan M. Carroll, Apache Member, PMC – Started working on Traffic Server in summer – Implemented Transparency, IPv6, range acceleration, yada yada yada – Works for Network Geographics Provides ATS and other development services Network Geographics at ApacheCon NA

Outline Current state of things. Design and Implementation. – Not just an API upgrade. Example extensions / use cases. Network Geographics at ApacheCon NA

HOSTDB / DNS Current status Network Geographics at ApacheCon NA 20144

Resolution Services Resolve host names (“FQDN”) to IP addresses. – “Fully Qualified Domain Name” HostDB caches resolutions for performance. – Persistent across process restarts. DNS performs DNS queries (packet level) Partially handles some additional features – Round robin – Split DNS Handles IPv4, IPv6, SRV to some extent. Network Geographics at ApacheCon NA

Host Resolution HTTP state machine creates query for FDQN. HostDB does look up and returns data if found. Otherwise the query is passed to the DNS and a network query is done. HTTP state machine gets raw data, handles server retries and round robin. Network Geographics at ApacheCon NA

What’s the point? High performance is not possible if doing a DNS query for every transaction. Need more control than available from standard OS host resolution calls. – Control latency / retries. – Non-blocking. – May require specialized DNS for Traffic Server. Network Geographics at ApacheCon NA

What’s the problem? Short answer – it’s a mess. Resolution logic is spread between transaction state machine and HostDB. – Example: had to change SM for TS-1422 Little modularity inside HostDB. Mishmash of data structures for IPv4, IPv6, SRV records segregated by hash fiddling. Network Geographics at ApacheCon NA

More problems Very difficult to upgrade or change – Logic is hardwired, not accessible via any API This means changes require expertise in ATS core. – Few configuration options. Fixed sized heap allocation – Configured at process start. – Must configure size and count (inode problem). – Bad things happen if size exceeded. Network Geographics at ApacheCon NA

Doing Better Remove address resolution state from HTTP state machine. Plugin address provisioning. – Customized DNS querying. – Other address sources (file/database/YP/etc.). Filter and re-order addresses. Extensible data associated with addresses or FQDN. Remove requirement for core expertise. Network Geographics at ApacheCon NA

HOST RESOLUTION ARCHITECTURE Take a bow for the new Resolution Network Geographics at ApacheCon NA

Style API – Minimal. – Orthogonal. – Consistent. No limits on extensions. Maintainable. Clean separation of framework from function. Network Geographics at ApacheCon NA

Features Plugins for host resolution. – Access to external address data. – Filtering and control of resolved addresses. Simple interface for HTTP state machine – Generator / forward iterator style. Maintain current functionality, modularized. Minimize performance loss. Asynchronous. Network Geographics at ApacheCon NA

Design Elements Framework – Traffic Server core. Host Query Database – Traffic Server core. Host Resolution Provider – plugin. Host Resolver – rooted tree of providers. Network Geographics at ApacheCon NA

Package Layout The ATS core has the framework and the HQD. Providers are contained in user created plugins. Network Geographics at ApacheCon NA

Host Resolver A host resolver is a tree of providers with a root. The root serves as the external interface of the resolver. Network Geographics at ApacheCon NA

Host Query Database Indexed by FQDN. Record is set of key/value pairs plus fixed metadata. Plugins must register keys. Values are plugin formatted, opaque to framework. Expiration / reaping by framework. Network Geographics at ApacheCon NA

Host Query Database 2 A process persistent store – Each provider can store data in a record. – This is similar to what is done now but more elegantly, explicitly, and extensibly. A communication channel. – Values are cooperative data – no access controls. – Providers are expected to share data via the HQD. Core plugins will document value format Network Geographics at ApacheCon NA

HQD Record Simple hash table mapping from FQDN to a set of key / value pairs. Network Geographics at ApacheCon NA

Provider Interface between framework and plugin. – Framework calls the plugin via provider instance. All providers must have the address iterator interface. Provider state. – Plugin globals. – Provider instance. – HQD record. – Query in HTTP state machine. Network Geographics at ApacheCon NA

State data diagram Providers can access data in the plugin (dynamic library) and any internally defined local state. Data for the FQDN of the query is available and a fixed amount of space in the HTTP state machine (transaction) instance. Network Geographics at ApacheCon NA

Provider Instance State Support multiple instances of the same underlying provider with distinct configuration. Expected to be relatively inexpensive to have multiple instances of a provider. Network Geographics at ApacheCon NA

Provider Query state Need state for each query. Want to avoid allocation, even class allocator. Most providers should need a fixed amount of query state. Provider must export amount of query state required. Network Geographics at ApacheCon NA

Framework Query State Therefore – we can provide a static buffer in the state machine instance for the query. – Buffer size build time configurable. – Obvious error message if exceeded. – Dynamic storage must be allocated. Framework handles doling out memory to each provider. Framework will call provider for cleanup. Network Geographics at ApacheCon NA

Resolver Resolver is a rooted tree of providers. HTTP State machine talks to root provider. Root provider can pass query to descendents. Each provider has complete control of whether any descendent provider is used. Providers share data via the HQD. Network Geographics at ApacheCon NA

Query Actions State machine initiates query by invoking framework. Framework locates the HQD record and passes it and the query to root provider. Root provider can provide addresses out of current data or make requests to descendents. Framework also sends – IP family preference. – ATS HTTP Transaction handle. Network Geographics at ApacheCon NA

Query Results Root provider streams addresses to HTTP state machine. HTTP state machine gets addresses as needed. – Provider can defer decisions until asked. TBD: does state machine provide feedback to provider on failed addresses? Network Geographics at ApacheCon NA

Asynchronicity Provider can return “blocked”. Therefore queries forwarded to descendent providers can block. Provider can forward multiple blocked queries to different descendent providers. – This is how parallelism is done. Provider “resume” called for each completion on ancestor providers of blocking provider. Network Geographics at ApacheCon NA

Asynchronicity 2 Provider that blocks handles continuation and resumption. Must notify framework of resume. Framework calls standard “resume” method on ancestor providers. The “resume” method can return “blocked” to indicate the framework should wait for further continuation completions. Network Geographics at ApacheCon NA

Locking Global lock for HQD for table lookup/modify. Per record lock for local access. Lock is held for query by framework. Lock is released if root provider is blocked. Network Geographics at ApacheCon NA

Expiration Expiration time for record in fixed metadata. Providers can record additional timeouts. Providers control whether stale data is used. Framework cleans up expired records not in use. – Serious issue for forward proxies. Network Geographics at ApacheCon NA

Open HQD HQD API is available to any plugin. Intended for external address control not directly involved with host resolution. – E.g. external updates to propagate to HQD. Network Geographics at ApacheCon NA

Persistence Not in standard / default configuration. Can be useful for quicker restarts. – More useful for reverse proxies. Requires either – Persistence of HQD key registration values. – Key / ID table and conversion on load. Network Geographics at ApacheCon NA

Core Providers DNS Host file Round robin Failover Split DNS Network Geographics at ApacheCon NA

RESOLVER EXAMPLES Network Geographics at ApacheCon NA

DNS Performs DNS queries to an external resolver. Stores results in HQD under ‘ipv4’ or ‘ipv6’ Provides addresses in order of returned record. Each provider locked to a specific name server. Network Geographics at ApacheCon NA

Host File Loads standard Unix host file to HQD. Handles external file update / synchronization. – This is its main function. Can act as pass through or an unaccessed leaf. Network Geographics at ApacheCon NA

Round Robin Cycles HQD address data. Will forward to another provider for data. Shift by time or query count. Network Geographics at ApacheCon NA

Failover Requires descendent DNS providers. Monitors external query success. Only uses one descendent at a time. Shifts among descendents based on availability. Network Geographics at ApacheCon NA

Split DNS Requires descendent providers. Returns data if found. Otherwise selects descendent provider based on split rules. Network Geographics at ApacheCon NA

Gatherer Requires DNS provider. Requests IPv4 and IPv6 addresses in parallel. May also be used to parallel request across multiple DNS servers for performance. Network Geographics at ApacheCon NA

Simple Load Balancer Requires descendent providers for addresses. Permutes address data based on balancing rules. – Client IP address – Query counts – URL Network Geographics at ApacheCon NA

Active Load Balancer Requires descendent providers. – Or not? Derive from load data? Uses external data about current server loads. – Store in global state or HQD. Iterates addresses in inverse proportion to server loads. Network Geographics at ApacheCon NA

Resolver Structure HostFile is used to inject the /etc/hosts files but otherwise not directly used. IPv4 is done in parallel for performance and redundancy. Network Geographics at ApacheCon NA

Walkthrough Root provider receives query. It uses the HQD handle to check for address information but does not find any. It forwards the query to an IPv6 provider which returns “blocked”. The ALB then forwards the query to the SplitDNS. It decides to forward the query to one of its IPv4 providers. This also returns “blocked” which SplitDNS returns and then the ALB returns. When the DNS plugin receives a DNS reply it calls the framework to resume query processing. The framework in turns calls “resume” on the appropriate DNS provider and up the ancestors of that provider. Network Geographics at ApacheCon NA

Other Fundamental point – all of these can be replaced by user without changes to core. Users can build tweaked versions based on core provider plugin code. – Much lower barrier to entry to work on plugin code vs. core code. Network Geographics at ApacheCon NA

APPENDIX descendent information address providers Network Geographics at ApacheCon NA

Current Status Basically this slideware. – Overall design done – Waiting for time / funding to begin implementation. Thanks to Openwave for initial design funding. Network Geographics at ApacheCon NA

Open Design Issues Feedback from server connect fails – Should the provider be told? – Does iteration suffice? Handling overlapping requests for same FQDN from different transactions. Fixed metadata for records – Expiration – Last modified? – Last accessed? Network Geographics at ApacheCon NA

Open Design Issues How is this configured? Network Geographics at ApacheCon NA

Resources ATS has online documentation, a wiki, mailing lists, bug tracker, and IRC channel. Access these via – Active community – become involved! NG Consulting services – Network Geographics at ApacheCon NA