* 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
Asynchronous Transfer Mode wikipedia , lookup
Net neutrality 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
Piggybacking (Internet access) wikipedia , lookup
Computer network wikipedia , lookup
Multiprotocol Label Switching wikipedia , lookup
Cracking of wireless networks wikipedia , lookup
Airborne Networking wikipedia , lookup
UniPro protocol stack wikipedia , lookup
Zero-configuration networking wikipedia , lookup
Routing in delay-tolerant networking 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”. – A host may have multiple network interfaces. Such host is called “multi-homed”. • 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 source HostID = 4 destination IP address 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 Network masks : An example Class A MSB Network mask pattern 0xff000000 0 # of ‘1’s 8 B 10 0xffff0000 16 C 110 0xffffff00 24 Address 10.87.93.54 0x0a575d36 MSB Class Network mask Network-ID Pattern 0xff000000 10.87.93.00 0001 A 176.86.247.30 0xb056f71e 1011 B 0xffff0000 176.86.0.0 192.168.43.87 0xc0a82b57 1100 C 0xffffff00 192.168.43.0 Datagram Forwarding in the Internet • We will learn: – How a datagram destined for a particular address is forwarded through the Internet. Forwarding and Routing • The two major functions of the Layer 3 (network layer) function in the Internet are: – Forwarding • A datagram is forwarded to an appropriate “nexthop” intermediate node (router). – Routing • A datagrams is eventually delivered from its source to destination as a result of repeated forwarding. Forwarding and Routing S D 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 X if#1 Y if#2 Z destIP addr B datagram Matching entry table lookup (key: destIP = addr B) destIP nextIP if# addr A X 0 addr B Y 1 addr C Z 2 Route table (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); } Routing • Static routing – Route tables are statically configured. • Dynamic routing – Route information are automatically exchanged among routers using routing protocols. Routing example: distance vector network Net-A Distance (metric) ↑(Net-C,2) (Net-B,1) R1 Net-B ↓(Net-A,1) (Net-C,2) ↑(Net-A,2) (Net-C,1) R2 Net-C ↑(Net-C,1) (Net-B,2) ↓(Net-B,1) (Net-A,2) Route table network Net-A Net-B next(metric) R2(2), R3(1) R2(1), R3(2) R3 ↓(Net-A,1) (Net-B,2) Commonly used routing protocols • RIP (Routing Information Protocol) – Based on distance vector. – Used in small networks. • OSPF (Open Shortest Path First) – Based on link state and shortest-path-routing. – Used in large, but uniformly adminstrated networks. • BGP (Border Gateway Protocol) – Based on modified distance vector. – Used between networks of different administration. 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 the Internet under the control of IP (the Internet as universal communication infrastructure). • 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.5 switching functions. – Layer 2.5 (label switching 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 Net-A Label distribution example 2 Lblreq(Net-B) LSR1 3 Y LSR2 Net-B Lblmap(Net-B, 9) Dest next Net-A X Net-B Y Route table (LSR1) Dest next Net-B Z Net-A Z X 2 Route table (LSR2) Z 1 InLabel Dest OutLabel InLabel Dest OutLabel … … Net-B Net-A 9 7 7 9 Net-A Net-B … … Label table (LSR1) 3 Label table (LSR2) The MPLS advantages (1) • 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) MPLS advantages (2) • Low cost of implementation – Complex control functions are only required at label distribution phase, and executed once. • Can be implemented and excuted in software with least impact to performance. • Softwares can easily be updated – Actual forwarding can be executed with simple hardware. • Hardware switch for LSR is only L2-switch + a – Ingress LSRs must be intelligent and fast, but required only at edge. 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.