150 likes | 235 Views
Framework for interfacing with NAT . <draft-ietf-nat-interface-framework-02.txt> Pyda Srisuresh. Objective. Identify the functions of a middlebox device Identify NAT service specific resources. Illustrate resource interface mechanism for NAT service through an API.
E N D
Framework for interfacing with NAT <draft-ietf-nat-interface-framework-02.txt> Pyda Srisuresh Pyda Srisuresh - Jasmine Networks
Objective • Identify the functions of a middlebox device • Identify NAT service specific resources. • Illustrate resource interface mechanism for NAT service through an API. • Provide a framework for the development of a protocol by which NAT MIDCOM agents can interface with NAT. Pyda Srisuresh - Jasmine Networks
Middlebox Devices • Network Address Translator devices (NAT) • Firewalls • Security Gateways • Server-load Balancers • QOS enforcement devices • Intrusion Detection Devices • etc. Pyda Srisuresh - Jasmine Networks
Internet traffic Private network traffic Private Network Boundary Data flow across NATs NAT-Midcom Agent NAT End-to-End Session Client Server Pyda Srisuresh - Jasmine Networks
Server’s view of Session Proxy Exchange Proxy traffic across NAT Device Proxy server NAT Router User’s view of Session Proxy-client Aplication Target server Pyda Srisuresh - Jasmine Networks
Trusted Network Boundary NAT device also terminating a tunnel NAT-Midcom Agent Internet NAT Router T u n n e l Trusted Network Boundary End-to-End Session Server Client Pyda Srisuresh - Jasmine Networks
NAT Elements • NAT Descriptor • ID, Nat-Type, Address map and Type specific parameters. • BIND Descriptor • ID, Bind-Type, specific addresses (ports) bound, Lease time, Controlling Midcom-agent ID etc. • SESSion Descriptor • ID, Session Direction, Original and Translated session tuples, Application Tag, Controlling BIND-ID, Termination heuristic, Controlling agent ID etc. Pyda Srisuresh - Jasmine Networks
NAT-Midcom Agents • In-Path Application Level Gateways (ALGs) • In-Path Application proxies • Out-of-path Application Level Gateway • Backup-NAT devices • RSIP clients. • End-Hosts Pyda Srisuresh - Jasmine Networks
Nat-Midcom Agent Descriptor • Agent ID • Agent Type • Agent Call-back Requirements • Agent Call-back functions • Agent Accessibility Information Pyda Srisuresh - Jasmine Networks
Interface to Nat-Midcom agents • Session-oriented, Service-neutral interface • Functions applicable to any type of stateful IP service on an intermediate device - NAT, firewall, Server-load balancers, Security Gateways etc. • Resource interface based on session identities. • Asynchronous Call-back from device to ext. agents. • NAT specific interface • Functions manipulating NAT specific resources. • Address BINDs • NAT specific session parameters. Pyda Srisuresh - Jasmine Networks
Midcom interface • Query the functions of a middlebox • service_enquire_Identity(service_type, &service_info) • Register a Midcom agent with NAT • service_register_agent(service_id, &agent_info) • Session oriented settings and queries • service_set_sess(), service_free_sess(), service_enquire_sess_range() etc. • Asynchronous call-back to MIDCOM agents • agent_callback_event(event_type, &event_info) • agent_callback_periodic(info_type, length, &info) • agent_callback_packet(sess_id, pkt_direction, packet) Pyda Srisuresh - Jasmine Networks
NAT specific Midcom interface • NAT service Identity • NAT service type (Basic NAT, NAPT, RSIP etc.) • Address Maps, RSIP tunnel-type supported etc. • NAT specific session parameters • Translated session tuples, BIND ID, Pkt-mod funcs • NAT BIND settings and Queries • nat_set_bind(), nat_free_bind(), nat_enquire_address_bind() • Asynchronous Callback Interface • Packet redirection to Midcom agents • BIND notification, NAT statistics notification Pyda Srisuresh - Jasmine Networks
Nat-Midcom agent Registration process service_enquire_Identity() OK. Return an agent-ID. service_register_agent(nat_id, &ftp_alg_descriptor) Nat-Midcom Agent(FTP) NAT OK. Return NAT Descriptor that includes nat-id. Pyda Srisuresh - Jasmine Networks
Nat-Midcom agent at run-time ftp_alg_pkt_notify(nat_id, agent_id, sess_id, pkt_direction, pkt) service_enquire_sess_info(nat_id, agent_id, &sess_info) nat_enquire_address_bind(nat_id, agent_id, &bind_info) nat_set_bind(nat_id, agent_id, &bind_info) service_set_sess(nat_id, agent_id, &sess_info) NAT Nat-Midcom Agent (FTP) Pyda Srisuresh - Jasmine Networks
Session termination notification ftp_alg_notify(nat-id, agent-id, SESSION-TERMINATED, sess-id) service_free_sess_bundle(nat_id, agent-id, sess-id) Nat-Midcom Agent (FTP) NAT Pyda Srisuresh - Jasmine Networks