400 likes | 621 Views
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
E N D
MPLS: A Packet forwarding technology for the next generation InternetInternet routing primer andcutting 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/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 services (C-runtime library functions) Layer 3/4 interface 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 Proc D Proc E A close-up of a layer N Procedurecall & return Proc B Proc F Proc C Service call & return Intra-layer interface = protocol Proc A Proc D Proc E A close-up of a layer N indistributed implementation Procedurecall & return Proc B Proc F Service call & return Proc C
Layers in networking software (4) APP APP APP protocol Layer 4 Layer 4 Layer 4 protocol Layer 3 services Layer 3/4 interface Layer 3 Layer 3 Layer 3 protocol Layer 2/3 interface Layer 2 services Layer 2 Layer 2 Layer 2 protocol Layer 1/2 interface Layer 1 services Layer 1 Layer 1 Layer 1 protocol
Layers in networking software (5)A layering example: OSI reference model
Layers in networking software (6)Rough correspondence between the OSI model and TCP/IP protocols/applications Routing Protocols 7: Application app NIS/NFS 6: Presentation XDR 5: Session TCP RPC 4: Transport UDP 3: Network IP ICMP ARP/RARP 2: Datalink Datalink & Physical IPCP LCP 1: 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 end-points (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 architectureHierarchical addressing • An IP address contains “network-ID” and “host-ID” with in the network identified by the “network-ID”. 32-bit Network ID Host ID
Internet address architecture:Hierarchical routing NetID = 2 HostID = 4 source Network ID = 3 Inter- connecting network 2 1 5 Network ID = 2 1 2 2 3 3 Network ID = 1 4 Host ID = 4
Internet address architectureNetwork 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 • 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 32-bit net-ID host-ID
Internet address architectureNetwork classes Net ID #Nets #Hosts/Net Host ID A 128 16M 0 7-bits 24-bits 1 0 14-bits 16-bits B 16384 65534 1 1 0 21-bits 8-bits 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.
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 requiredfor correct forwarding? addr A addr X if#0 addr B addr B if#1 addr Y if#2 A mapping ofaddr B → (addr Y, if#1)is required addr C addr Z
Datagram forwarding with route table if#0 destIP addr B if#1 datagram table lookup (key: destIP = addr B) if#2 Matchingentry Route table
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).
Specific-ness of routes Entire Internet Network V Network W Z B A Y X
“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.
X Y Label switching framework X Label switched network 2 X 5 X X IngressLSR i/f #1 i/f #1 i/f #2 destIP EgressLSR Y 4 Y Y 1 Y Dest-to-Label Mapping Table 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 (COPS, etc..) bgpd ospfd L3 routing (zebra) (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 VM-simulated 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.