Internet Routing Technology Primer & On the edge in 2 hrs

Download Report

Transcript Internet Routing Technology Primer & On the edge in 2 hrs

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.