* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Internet Routing Technology Primer & On the edge in 2 hrs
Net neutrality wikipedia , lookup
Asynchronous Transfer Mode wikipedia , lookup
IEEE 802.1aq wikipedia , lookup
Net neutrality law wikipedia , lookup
Distributed firewall wikipedia , lookup
Wake-on-LAN wikipedia , lookup
Deep packet inspection wikipedia , lookup
Network tap wikipedia , lookup
Multiprotocol Label Switching wikipedia , lookup
Computer network wikipedia , lookup
Piggybacking (Internet access) wikipedia , lookup
Airborne Networking wikipedia , lookup
Cracking of wireless networks wikipedia , lookup
Zero-configuration networking wikipedia , lookup
UniPro protocol stack wikipedia , lookup
Internet protocol suite wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
MPLS: A Packet forwarding technology for the next generation Internet Internet routing primer and cutting edge technology in only 2+ hours Yoichi Shinoda Japan Advanced Institute of Science and Technology Lecture Structure • Concept of layering in network software/hardware • Internet address architecture • Internet datagram forwarding • MPLS: a new forwarding technology • Introduction of the Ayame MPLS project Layering in networking software Layering in networking software/hardware • We will learn: – Meaning of commonly used words such as: • • • • Layer Layer Service Service interface Protocol • We will also orient ourselves to the part of the Internet software/hardware hierarchy we will be learning for the rest of this lecture. Layers in networking software (1) Layers, services and interfaces Upper layer module “Use” Services “Provides” services Rules when utilizing Services = interface Lower layer module Layers in networking software (2) Layering : Use simple services provided by a lower layer, build more complex functions and provide them as services to an upper layer. Window based application Layer 4 services(Toolkit services) Layer 4: Window toolkit Layer 3/4 interface Layer 3 services (C-runtime library functions) Layer 3: System libraries Layer 2/3 interface Layer 2 services (Operating system calls) Layer 2: Operating system Layer 1/2 interface Layer 1 services (Inst execution, I/O execution) Layer 1: Physical computer (Bare computer system) Layers in networking software (3) Proc A A close-up of a layer N Proc B Proc D Proc E Proc F Procedure call & return Service call & return Proc C Intra-layer interface = protocol A close-up of a layer N in distributed implementation Proc A Proc B Proc C Proc D Proc E Proc F Procedure call & return Service call & return Layers in networking software (4) APP APP protocol APP Layer 4 Layer 4 protocol Layer 4 Layer 3/4 interface Layer 3 Layer 2/3 interface Layer 2 Layer 1/2 interface Layer 1 Layer 3 services Layer 3 protocol Layer 3 Layer 2 services Layer 2 protocol Layer 2 Layer 1 services Layer 1 protocol Layer 1 Layers in networking software (5) A layering example: OSI reference model Layer 7: Application Provided service The intended application. 6: Presentation Conversion of data representation. 5: Session Signification of a communication (start and end a communication). 4: Transport End-to-end transmission and receipt of messages and/or data streams with various characteristics. 3: Network End-to-end transmission and receipt of “datagram”s. 2: Datalink Transmission and receipt of datalink “frame”s over a particular media. 1: Physical Transmission and receipt of “bit” stream over a particular media. Layers in networking software (6) Rough correspondence between the OSI model and TCP/IP protocols/applications 7: Application NIS/NFS app 6: Presentation XDR 5: Session Routing Protocols RPC TCP 4: Transport UDP 3: Network IP ARP/RARP 2: Datalink 1: Physical ICMP IPCP LCP Datalink & Physical Internet Address Architecture • We will learn: – What network addresses are. – Structure of Internet addresses. – How the structure influence datagram forwarding. Network (system) address examples • Traditional surface address Japan, Ishikawa, Nomi, Tatsunokuchi, Asahidai, 1-1 • ZIP codes 923-1211 • Telephone numbers +81-761-51-1251 • Computer memory addresses – Usually linear, but sometimes divided into smaller units (pages, segments, …) – Hardware assist for quickly locating a particular memory cell from its address. Network addresses • Network addresses are used to locate (uniquely identify) communication endpoints (hosts) in a network system. • Address architecture implies network architecture. • Address space = A set of all possible address values. • Different layers may have different address space. Internet address • • • • Also called as IP address. Identifies a “network interface”. 32-bit fixed length (4G addressable range). Often denoted in dotted-decimal format (Four decimal notation of 8-bit units, concatenated with period as a separator, e.g.: 0x9641f211=150.65.242.17). Internet address architecture Hierarchical addressing • An IP address contains “network-ID” and “hostID” with in the network identified by the “networkID”. 32-bit Network ID Host ID Internet address architecture: Hierarchical routing NetID = 2 HostID = 4 source Network ID = 3 Interconnecting network 1 5 Network ID = 2 1 2 3 Network ID = 1 2 2 3 4 Host ID = 4 Internet address architecture Network classes • Size of network-ID/host-ID? – Long network-ID and Short host-ID • Larger number of networks, but smaller capacity of hosts within a network 32-bit net-ID host-ID – Short network-ID and long host-ID • Larger capacity of hosts within a network, but fewer number of networks. 32-bit net-ID host-ID Internet address architecture Network classes Net ID Host ID 0 7-bits 24-bits 1 0 14-bits 1 1 0 #Nets #Hosts/Net 16-bits 21-bits 8-bits A 128 16M B 16384 65534 C 2M 254 1 1 1 0 28-bits D ( Multicast ) 1 1 1 1 28-bits E ( Experimental ) Network mask • A bit pattern with: – Bits of ‘1’s for network-ID – Bits of ‘0’s for host-ID • Used to extract network-ID from an address. • Inverted pattern is called a host mask. Class A MSB Network mask pattern 0xff000000 0 # of ‘1’s 8 B 10 0xffff0000 16 C 110 0xffffff00 24 Datagram Forwarding in the Internet • We will learn: – How a datagram destined for a particular address is forwarded through the Internet. Datagram forwarding control • What is the information required for correct forwarding? addr X addr A if#0 addr B if#1 addr Y addr B addr Z addr C if#2 A mapping of addr B → (addr Y, if#1) is required Datagram forwarding with route table if#0 destIP addr B datagram Matching entry if#1 table lookup (key: destIP = addr B) destIP nextIP if# addr A X 0 addr B Y 1 addr C Z 2 Route table if#2 (flags) Route table entry types (1) --- by source • Static – An entry is manually entered into the table. • Dynamic – An entry is learned automatically through routing protocols. • Redirected – An entry is created as a result of redirection by another router (suggested better route). Route table entry types (2) -- by route specific-ness Type Network # of significant bits for Description comparison 8, 16 or 24 Route to a network (# of 1’s in the network mask for this network ) Host 32 (full IP address, match only with one search key) Route to a host Default 0 (match with any search key) Selected when no other entry match Specific-ness of routes Entire Internet Network V Network W Z A Y B X dest 1 default next X B’s visibility from A Member of the entire Internet 2 W 3 B Y Z Member of the network W Specific host “Longest match first” rule • When multiple entries match for an address, then more specific route (entries with more significant bits in key field) must be chosen. Simple lookup algorithm (1) // 3 x linear search routeTableEntry lookup(key) { routeTableEntry e; // Search host route foreach e in table if (e.destIP == key) return(e); // Search network route foreach e in table if (e.destIP == key & netmask(destIP)) return(e); // Search default route foreach e in table if (e.destIP == 0) return(e); } Simple lookup algorithm (2) // Single linear search // Entries must be sorted in descending order of significance // Entries are accompanied with comparison mask: // Host route: all 1’s // Network route: netmask(destIP) // Default route: all 0’s routeTableEntry lookup(key) { routeTableEntry e; foreach e in table if (e.destIP == (key & e.cmpmask)) return(e); } Other factors in routing and forwarding • Subnets – Sub-divide a network’s host-ID part into set of fixed size subnets. – Introduced for higher utilization of a network. – Subnets are only recognized in the subnetted network. • Variable Length Subnet Mask (VLSM) – Subnetting with variable sized subnets. • Supernets and Classless Inter-Domain Routing (CIDR) – Aggregate multiple VLSM’s beyond network-ID boundary to form larger a network. Requirements for the Next Generation Internet forwarding • Characteristics for QoS support – Low latency: Low forwarding overhead, regardless of route table size (may vary from 1 to thousands). – Low jitter: Consistent forwarding overhead, regardless of route table size (may vary from 1 to thousands). – Predictable and consistent transit time. • Ability to distinguish “flows” or bundle of flows and route them through different routes (called traffic engineering). Requirements for the Next Generation Internet forwarding • Multi-protocol capability to allow different protocols to pass through under the control of IP. • You name it. Current Approach • Hardware assisted/implemented route lookup and forwarding engines. – VERY expensive. – Hard to incorporate new features. • Distributed parallel forwarding engines. – Makes expensive routers even more expensive. Switched inter-networking approach • Combines advantages of layer 3 forwarding and layer 2 switching – Layer 3 (network layer) • End-to-end reachability. • Exchange routing information. • Control Layer 2 switching functions. – Layer 2.5 (switched network layer) • Route datagrams using simple “label”s. • Use layer 2 (datalink layer) function for actual transmission. – Layer 2 (datalink layer) • Send and receive datalink frames. Label switching framework X Label switched network X Ingress LSR X 5 i/f #1 i/f #1 i/f #2 destIP Y Y destIP Outi/f Outlabel Net(Y) 1 4 Net(X) 1 5 Dest-to-Label Mapping Table 4 Egress LSR Y Outi/f Outlabel 4 2 1 5 1 2 Label Mapping Table The MPLS advantages • Provides QoS support – Fast, consistent forwarding. • Provides traffic engineering support – Different routes can be assigned to flows at ingress routers. • Provides multi-protocol support – Different protocols are only distinguished at ingress and egress routers. – IPv4, IPv6 – 802.3 (Ethernet), VLAN – IEEE1394(DV) The Ayame project • AYAME – MPLS core/edge LSR – Software router (currently) – Publically available • Support protocols – – – – LDP, CR-LDP Static label allocation(TE) RSVP (planed) Co-operate with COPS • Interoperable with – Cisco, Juniper, Hitachi, Riverstone, Furukawa, Fujitsu, Zebos, Unispere • http://www.ayame.org The Ayame MPLS stack Policy Network entities bgpd ospfd L3 routing (zebra) (COPS, etc..) (RSVPd) CR-LDPd LDPd (Label allocation, Filter/flow spec insertion) AYAMEd userland NetBSD kernel TCP/IP stack MPLS Ethernet ATM IP tunnel Moonbear/Ayame collaboration • Moonbear project: – QoS-enabling implementation based on COPS (Common Open Policy Service) and DiffServ (Differentiated Service) frameworks. – Ayame provides actual datagram forwarding mechanism with QoS support. – http://www.moon-bear.net Ayame in DISTIX project • DISTIX (Distributed Internet eXchange) project: – National project that exploits possibility of MPLS-based Internet eXchange (IX). – Several dozen participants (router vendors, ISPs and end-users such as contents providers). – http://www.distix.net (in Japanese) • Ayame is playing an important role in the project. – Provides inexpensive solution. – Quickly modifiable software. – Ayame testbed used for advance-inter-operability test. Future Ayame related projects • Star-BED and Ayame – Star-BED is the 500 physical node (5000 VMsimulated node) programmable Internet simulator being built next to JAIST, intended for used as a versatile testbed for network oriented products. – Ayame is expected to be one of the first and heavy user of the Star-BED • MPlS and Ayame – Ayame is planned to be used as software development platform for wave-length(l) based DWDM switching.