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

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Asynchronous Transfer Mode wikipedia , lookup

Net neutrality wikipedia , lookup

CAN bus wikipedia , lookup

IEEE 802.1aq wikipedia , lookup

Zigbee wikipedia , lookup

Peering wikipedia , lookup

Net neutrality law wikipedia , lookup

Distributed firewall wikipedia , lookup

Wake-on-LAN wikipedia , lookup

Deep packet inspection wikipedia , lookup

Net bias 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

Transcript
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.