Hálózati réteg és útvonalválasztás
Hálózati réteg és útvonalválasztás
2
A hálózati réteg Vég hoszt
Vég hoszt Application
Application
Presentation
Presentation
Session
Session
Transport
Transport
Network
Network
Network
Network
Data link
Data link
Data link
Data link
Physical
Physical
Physical
Physical
Csomópont a hálózatban
Hálózati réteg és útvonalválasztás
3
A hálózati réteg feladatai
• A szállítási réteg számára nyújtott szolgáltatások • Csomagok célbajuttatása • sávszélesség • jitter • csomagvesztés • csomag sorrend tartás • torlódás kezelés • Tevékenység • útvonal meghatározása (routolás) • kapcsolás (switching) • kapcsolat felépítés
Hálózati réteg és útvonalválasztás
4
Csomagkapcsolás • • • •
csomagok továbbítása a kapcsolók által küldő hoszt nem ismeri a hálózati viszonyokat egymástól független csomagtovábbítás alternatív útvonalak Hoszt D Hoszt E
0 Kapcsoló 1 3 Hoszt C
Hoszt F
1 2 Kapcsoló 2 2
3
1 0
Hoszt A
Hoszt G 1
0 Kapcsoló 3 3 2 Hoszt H
Hoszt B
Kapcsoló 2 továbbítási táblája
Cél A B C D E F G H
Port 3 0 3 3 2 1 0 0
Hálózati réteg és útvonalválasztás
5
Áramkörkapcsolás
• kapcsolat felépítés (jelzés) • erőforrás foglalás • áramkör azonosítók (VCI) • VC táblák 0 Kapcsoló 1 1
3
2 5 5
Hoszt A
11
3 11
2 Kapcsoló 2 1 0
7 7 1
0 Kapcsoló 3 3 4 2
4
Hoszt B
Hálózati réteg és útvonalválasztás
6
Forrás routolás 0 Kapcsoló 1 3
0
1 2 2
3 0 1
3
3
Kapcsoló 2 1
1 2
1 3 0 0
Hoszt o A 0 1 3 0 Kapcsoló 3 1
3 2
Hoszt o B
Bejövő fejléc
D C B A
D C B A
Ptr D C B A
Kimenő fejléc
A D C B
D C B
Ptr D C B A
Hálózati réteg és útvonalválasztás
7
Kapcsolók Input port
Output port
Input port
Output port
Input port
Input port
Összekötő szerkezet
Output port
Output port
Hálózati réteg és útvonalválasztás
8
Kapcsolók
R Pro oute ce (C ssor PU )
In te rf a
s c e c a rd
(a) Sketch of a router chassis with slotted interface cards.
(a) Photograph of a slotted router chassis.
(b) Interface card.
Figure 3.11. Router with Interface cards and Interface card. (This pictures are taken from
http://www.juniper.net/images/artwork-download/libraries/product_photo_library.zip). Needs to be replaced with own photos.
Hálózati réteg és útvonalválasztás
9
Kapcsoló tevékenység Router
Routolási protokoll
Útvonal meghatározás
Routolási protokoll
Routolási tábla
Bejöv! csomag
Csomag továbbítás
Kimen! csomag
Hálózati réteg és útvonalválasztás
10
Router generációk Útvonal processzor
CPU
Útvonal processzor
CPU
cache
mem.
cache
mem.
DMA
DMA
DMA
Út cache
Út cache
Út cache
mem.
mem.
mem.
MAC
MAC
MAC
Összeköt! szerkezet
Intf.
Intf.
Intf.
Útvonal feldolg.
Útvonal feldolg.
Útvonal feldolg.
mem.
mem.
mem.
MAC
MAC
MAC
Útvonal processzor CPU
DMA
DMA
DMA
Interfész kártya
Interfész kártya
Interfész kártya
MAC
MAC
MAC
Továbbító motor
Továbbító motor
Útvonal processzor CPU
CPU
CPU
cache
cache
mem.
mem.
mem.
mem.
mem.
MAC
MAC
MAC
mem.
mem.
Hálózati réteg és útvonalválasztás
11
Kapcsoló hardver 1
• Általános számítógép mint kapcsoló I/O bus CPU
Interface 1
Interface 2
Interface 3 Main memory
Hálózati réteg és útvonalválasztás
12
Kapcsoló hardver 2
• Crossbar switch
Hálózati réteg és útvonalválasztás
13
Kapcsoló hardver 3
• Knock-out concentrator Bemenetek
Shifter
Buffers
D
D
D
D
D
D
D
D
D
Shifter
Buffers
D
D
1
D
D
Shifter
D
2
3 Kimenetek
Buffers
4
Hálózati réteg és útvonalválasztás
14
Kapcsoló hardver 4
• Shared memory switch Mux
Kimenetek
Buffer memory
Write control
Read control
Demux
…
…
Bemenetek
Hálózati réteg és útvonalválasztás
15
Kapcsoló hardver 5
• Banyan network 001 011
001
110 111
011
110 111
Hálózati réteg és útvonalválasztás
16
Kapcsoló hardver 6
• Batcher network
Hálózati réteg és útvonalválasztás
17
Kapcsoló hardver 6
• Sunshine switch k
Inputs
n
k
Delay
Batcher
n+k
Trap
n+k
Selector
n n n
l banyans
n n n
Outputs
Hálózati réteg és útvonalválasztás
18
Útvonalválasztási algoritmusok
• Routolási protokoll • routolási algoritmus • routolási információk cseréje • Legkisebb költségű útvonal meghatározása
• Globális algoritmus • kapcsolat-állapot routolás • Decentralizált algoritmus • távolság-vektor algoritmus • Statikus vagy dinamikus
Hálózati réteg és útvonalválasztás
19
Kapcsolat-állapot routolás
• A routerek a következőket teszik: • Szomszédos routerek felderítése • A szomszédokhoz vezető útvonalak értékelése • Információs csomagok létrehozása. • Csomagok szétküldése • árasztás • Legrövidebb út kiszámítása az elérhető routerek felé • az összes kapcsolat állapot info alapján Dijkstra alg.
Hálózati réteg és útvonalválasztás
20
Távolság-vektor routolás
• A routerek a következőket teszik: • Szomszédos routerek felderítése • A szomszédokhoz vezető útvonalak értékelése • Információs csomagok létrehozása. • Csomagok (távolság vektor) szétküldése a közvetlen szomszédoknak • Saját táblázat frissítése • konvergencia • Bellman-Ford alg.
Hálózati réteg és útvonalválasztás
21
Költség metrikák
• csomagszám • link kapacitás kihasználtsága • késleltetés • routerek száma az útvonalon • összetett metrikák New metric (routing units)
225
9.6-Kbps satellite link 140
9.6-Kbps terrestrial link 56-Kbps satellite link 56-Kbps terrestrial link
90 75 60 30
25%
50% Utilization
75%
100%
ARPANet metrika
Hálózati réteg és útvonalválasztás
22
Hierarchikus routolás
• Routolási szempontból autonóm rendszerek • méretezhetőség • adminisztráció • Intra-AS routolás • Inter-AS routolás Inter-AS routolás
C.b
a
C
Hoszt h1
b
B.a
A.a A.c a
d c b A Intra-AS routolás
a
c B
b
Hoszt h2
Intra-AS routolás
Hálózati réteg és útvonalválasztás
23
Torlódás Forrás 1 10-M
bps
Ethe
rnet
Router 1.5-Mbps T1 link
Forrás 2
1
bp 00-M
s FD
Cél
DI
Sikeresen továbbított csomagok
Torlódás
Elméleti Kívánatos
Valódi
Hálózatba berakott csomagok
Router viselkedése terheléskor
Hálózati réteg és útvonalválasztás
24
Hálózatok összekapcsolása
• Hálózatok különbözősége • Protokoll tunneling • Csomagok fragmentációja • traszparens, nem transzparens Hálózat 1
R1
Internetwork
Protokoll tunneling
R2
Hálózat 2
Hálózati réteg és útvonalválasztás
25
Az ARPANet tervezési elvei
• Megbízható működés • Egyszerűség • Egyértelmű megoldások • Modularitás kihasználása • Heterogenitás feltételezése • Statikus paraméterek alkalmazásának elkerülése • Kellően jó megoldás már megfelel • Méretezhetőség • Teljesítmény és költségek összevetése
Hálózati réteg és útvonalválasztás
26
Hosztok az Interneten is illustrated in Figure 0.18 which shows the number of hosts connected to the Internet since the early 1980s.
100000000 10000000 1000000 100000 10000
Aug-01
Aug-99
Aug-97
Aug-95
Aug-93
Aug-91
Aug-89
Aug-87
Aug-85
100
Aug-83
1000
Aug-81
Number of Hosts on the Internet
1000000000
Figure 0.18. Growth of the Internet since the 1980s. The data is based on the Internet Domain Survey by the Internet Software Consortium
3.2.
Infrastructure of the Internet
Hálózati réteg és útvonalválasztás
27
A korai Internet szerkezete
NSFNET backbone
Stanford BARRNET regional Berkeley
PARC
UNM UA
MidNet regional
…
Westnet regional NCAR
ISU
UNL
KU
Hálózati réteg és útvonalválasztás
28
Az Internet mai szerkezete Large corporation “Consumer ” ISP Peering point
Backbone service provider
“ Consumer” ISP Large corporation Small corporation
“Consumer”ISP
Peering point
Hálózati réteg és útvonalválasztás
29
Az IP protokoll Szállítási réteg: TCP, UDP
Hálózati réteg
IP protokoll •Címzés •Csomag formátum •Csomag kezelés
Routolási protokollok •útvonal választás •RIP, OSPF, BGP
ARP protokoll •IP cím MAC cím összerendelés
routolási tábla
ICMP protokoll •hiba jelzés •router “signaling”
Adatkapcsolati réteg Fizikai réteg
Hálózati réteg és útvonalválasztás
30
IP címek (IPv4)
• IP cím • 32 bit • dotted-decimal notation • hosztok, router interfészek 223.1.1.1 = 11011111 00000001 00000001 00000001 223
1
1
223.1.1.1 223.1.1.2 223.1.1.4 223.1.1.3
223.1.3.1
223.1.2.1 223.1.2.9
223.1.3.27
223.1.2.2
223.1.3.2
1
Hálózati réteg és útvonalválasztás
31
IP címek (folyt.) • •
IP cím hálózat címrész (magas helyiértékű bitek) hoszt címrész (alacsony helyiértékű bitek) hálózat IP cím szempontból azonos hálózati címrész router nélkül elérhető eszközök ICANN: Internet Corporation for Assigned Names and Numbers
• • • •
•
223.1.1.1 223.1.1.2 223.1.1.4 223.1.1.3
223.1.2.1 223.1.2.9
223.1.3.27
223.1.2.2
LAN 223.1.3.1
223.1.3.2
pl. 24 bites hálózati címek
Hálózati réteg és útvonalválasztás
32
Hálózat címek
• Cím hoszt részén 0-k 223.1.1.2
223.1.1.1
Hálózat címek: 223.1.1.0/24 223.1.2.0/24 233.1.3.0/24 233.1.7.0/24 233.1.8.0/24 233.1.9.0/24
223.1.1.4
223.1.1.3 223.1.9.2
223.1.7.2
223.1.9.1 223.1.8.1 223.1.2.6 223.1.2.1
223.1.8.2
223.1.7.1
223.1.3.27
223.1.2.2 223.1.3.1
223.1.3.2
Hálózati réteg és útvonalválasztás
33
IP és MAC Transmit IP datagrams
write to IP input queue
Yes
Receive IP datagrams
IP module
Is the IP destination address a multicast or broadcast address?
Ethernet driver
No loopback driver
Yes
IP datagram
Is the IP destination address local? No MAC address of destination or gateway known?
No: send/ receive ARP packet
ARP packet
Yes
build Ethernet frame
to MAC layer
ARP
demultiplex Ethernet frame
from MAC layer
Figure 2.6. Ethernet and loopback device drivers (from W. Stevens: TCP/IP Illustrated, Volume 1).
When a datagram is transmitted it can be processed by either, the loopback driver, or the
Hálózati réteg és útvonalválasztás
34
Címfeloldás
• IP cím -> Ethernet MAC cím • ARP request (IP cím) broadcast • ARP response (Ethernet cím) • ARP tábla • < IP address; MAC address; TTL>
Hálózati réteg és útvonalválasztás
35
Címosztályok Osztály A
0 network
B
10
C
110
D
1110
1.0.0.0 to 126.255.255.255
host
network
128.0.0.0 to 191.255.255.255
host
network multicast address
32 bit
host
192.0.0.0 to 223.255.255.255 224.0.0.0 to 239.255.255.255
Hálózati réteg és útvonalválasztás
36
Címosztályok (folyt.)
• Speciális címek • összes hoszt a hálózaton (broadcast)
• x.x.x.255 (C-oszt.)
• hoszt ezen a hálózaton (BootP) • 0.0.0.x (C-oszt.) • internal loopback • 127.0.0.1 (0.0.0.0) • lo0 interfész
Hálózati réteg és útvonalválasztás
37
Alhálózatok (subnetting)
• Problémák • IP címigénylés a hálózatokhoz • Routolási táblázatok mérete • Megoldás • újabb szint bevezetése a címzési hierarchiába
• alhálózatok
Hálózati réteg és útvonalválasztás
38
Subnet mask Network number
Host number
B osztályú cím 111111111111111111111111
00000000
Subnet mask (255.255.255.0) Network number
Subnet ID
Alhálózatos cím
Host ID
Hálózati réteg és útvonalválasztás
39
Subnettelés példa Subnet mask: 255.255.255.128 Alhálózat: 128.96.34.0 128.96.34.15 128.96.34.1
H1
R1 Subnet mask: 255.255.255.128 Alhálózat: 128.96.34.128
128.96.34.130
128.96.34.139
128.96.34.129
H2
R2 H3 128.96.33.14
128.96.33.1
Subnet mask: 255.255.255.0 Alhálózat: 128.96.33.0
Hálózati réteg és útvonalválasztás
40
Subnetelés és proxy ARP
• IP router válaszol az ARP kérdésre Argon
Neon Router137 128.143.137.144/16
128.143.137.1/16 00:e0:f9:23:a8:20
128.143.0.0/16 Subnet
128.143.71.1/24
128.143.171.21/24 00:20:af:03:98:28
128.143.71.0/24 Subnet
ARP Request: What is the MAC address of 128.143.71.21? ARP Reply: The MAC address of 128.143.71.21 is 00:e0:f9:23:a8:20
Figure 2.10. Proxy ARP.
3. The Internet Protocol (IP) The Internet Protocol (IP) carries IP datagrams from a source to a destination across a path of
Hálózati réteg és útvonalválasztás
41
Osztályok nélküli routolás
• CIDR • tetszőleges hosszúságú hálózati címrész • címzés a.b.c.d/x • x bit hosszúságú hálózati címrész
network part
host part
11001000 00010111 00010000 00000000 200.23.16.0/23
Hálózati réteg és útvonalválasztás
42
Osztályok nélküli routolás (folyt.)
• útvonal aggregálás • longest prefix match szervezet 0
200.23.16.0/23 200.23.16.0/20
szervezet 2
200.23.20.0/23
szervezet 7
. . .
. . .
ISP1 Internet
200.23.30.0/23 ISP2 szervezet 1
200.23.18.0/23
199.31.0.0/16 200.23.18.0/23
Hálózati réteg és útvonalválasztás
43
DHCP
• DHCP szerver • DHCPDISCOVER broadcast • relay agent Unicast to server
DHCP relay Broadcast
Host
Hálózatok
DHCP server
Hálózati réteg és útvonalválasztás
44
DHCP (folyt.) DHCP szerver: 223.1.2.5 DHCP discover src : 0.0.0.0, 68 dest.: 255.255.255.255,67 DHCPDISCOVER yiaddr: 0.0.0.0 transaction ID: 654
DHCP offer src: 223.1.2.5, 67 dest: 223.1.2.4, 68 DHCPOFFER yiaddrr: 223.1.2.4 transaction ID: 654 DHCP server ID: 223.1.2.5 Lifetime: 3600 secs
DHCP request
Idő
src: 0.0.0.0, 68 dest:: 255.255.255.255, 67 DHCPREQUEST yiaddrr: 223.1.2.4 transaction ID: 655 DHCP server ID: 223.1.2.5 Lifetime: 3600 secs
DHCP ACK src: 223.1.2.5, 67 dest: 223.1.2.4, 68 DHCPACK yiaddrr: 223.1.2.4 transaction ID: 655 DHCP server ID: 223.1.2.5 Lifetime: 3600 secs
érkező kliens
Hálózati réteg és útvonalválasztás
45
ICMP
• hálózati réteg
információ csere
• error message • advice message
• ICMP message:
type, code +hibás IP datagram első 8 byte-ja
• ping • traceroute
Type 0 3 3 3 3 3 3 4
Code 0 0 1 2 3 6 7 0
8 9 10 11 12
0 0 0 0 0
description echo reply (ping) dest. network unreachable dest host unreachable dest protocol unreachable dest port unreachable dest network unknown dest host unknown source quench (congestion control - not used) echo request (ping) route advertisement router discovery TTL expired bad IP header
Hálózati réteg és útvonalválasztás
46
IP csomag IP protokoll verzió szám fejléc hossz (32 bites szó) QoS felhasználás élettartam max hop
32 bit ver
head. len
type of service
16-bit identifier time to live
flgs
upper layer
Teljes datagram hossz (byte) length fragment offset
szekvenciaszám fragmentálás
Internet checksum
32 bit source IP address demultiplexálás
32 bit destination IP address Options (if any)
data (variable length, typically a TCP or UDP segment)
kiegészítő fejléc
Hálózati réteg és útvonalválasztás
47
IP fragmentáció
• különböző MTU • reassembly csak a célnál length ID fragflag offset =4000 =x =0 =0
length =1500
ID fragflag offset =x =1 =0
length =1500
ID fragflag offset =x =1 =1480
length =1040
ID fragflag offset =x =0 =2960
reassembly
Hálózati réteg és útvonalválasztás
48
Routolási táblák Dest. Net. next router Nhops 223.1.1 223.1.2 223.1.3
223.1.1.4 223.1.1.4
1 2 2
223.1.1 223.1.2 223.1.3
A 223.1.1.1 223.1.1.2 223.1.1.4
223.1.2.1 223.1.2.9
B 223.1.1.3 223.1.3.1
223.1.3.27
223.1.2.2 223.1.3.2
Dest. next network router Nhops interface
E
-
1 1 1
223.1.1.4 223.1.2.9 223.1.3.27
Hálózati réteg és útvonalválasztás
49
Routolási táblák (pl.) Routing tables Destination
Gateway
Flags
Refs
Route Tree for Protocol Family 2 (Internet): default 193.224.128.9 UGc 0 12.129.192.150 193.224.128.9 UGHW 0 24.25.227.66 193.224.128.9 UGHW 0 24.123.17.58 193.224.128.9 UGHW 1 24.226.10.16 193.224.128.9 UGHW 0 38.117.174.2 193.224.128.9 UGHW 0 61.148.215.125 193.224.128.9 UGHW 1 62.26.220.12 193.224.128.9 UGHW 0 62.80.80.10 193.224.128.9 UGHW 0 62.112.217.197 193.224.128.9 UGHW 1 62.112.223.75 193.224.128.9 UGHW 0 62.218.24.196 193.224.128.9 UGHW 0 63.211.17.228 193.224.128.9 UGHW 1 63.215.198.79 193.224.128.9 UGHW 0 63.215.241.225 193.224.128.9 UGHW 0 63.219.179.221 193.224.128.9 UGHW 1 63.219.179.222 193.224.128.9 UGHW 0 63.246.128.180 193.224.128.9 UGHW 0 63.246.128.182 193.224.128.9 UGHW 0
netstat -r
Use 0 2 2 116 8 1 7 3 3 1964 9 3 4 8 1218 2 2 6664 6903
If en0 en0 en0 en0 en0 en0 en0 en0 en0 en0 en0 en0 en0 en0 en0 en0 en0 en0 en0
PMTU -
Exp -
-
-
-
1 1 1 1 1 1 1 1 1 1 2 1 1
Groups
Hálózati réteg és útvonalválasztás
50
IP csomag továbbítása
configured. With dynamic routing, the route calculation is performed by a routing protocol. A routing protocol implements a distributed algorit hm where routers exchange information to calculate the best possible paths between hosts, most often, using a shortest path algorithm. This chapter covers IP forwarding and static routing. Dynamic routing is discussed in Chapter 4. Routing Protocol
Static routing
UDP
TCP
Demultiplex Yes routing table
Lookup next hop
Yes
IP forwarding enabled?
No
Destination address local?
No
IP module
Send datagram
Discard
Input queue
Data Link Layer Figure 3.4. Processing an IP datagram in an IP module.
1.2.
IP Forwarding
The processing of an IP datagram at a host or a router is almost identical, with the exception that IP forwarding is enabled on routers, but disabled on hosts. Having IP forwarding disabled means that a host only transmits an IP datagram if the payload of this datagram is locally
Hálózati réteg és útvonalválasztás
51
Routolási alapalgoritmus
Hálózati réteg és útvonalválasztás
52
...részletek Ipaddr netnum(IPaddr ipa){ IPaddrmask = ~0; if (IP_CLASSA(ipa)) mask = hl2net(0xff000000); if (IP_CLASSB(ipa)) mask = hl2net(0xffff0000); if (IP_CLASSC(ipa)) mask = hl2net(0xffffff00); return ipa & mask; } Bool netmatch(IPaddr dst, IPaddr net, IPaddr mask, Bool islocal){ if ((dst & mask) != (net & mask)) return FALSE; /* local srcs should only match unicast addresses (host routes) */ if (islocal) if (isbrc(dst) || IP_CLASSD(dst)) return mask != ip_maskall; return TRUE; }
#defineIP_CLASSA(x)(((x) #defineIP_CLASSB(x)(((x) #defineIP_CLASSC(x)(((x) #defineIP_CLASSD(x)(((x)
& & & &
0x80) 0xc0) 0xe0) 0xf0)
== == == ==
0x00)/* 0x80)/* 0xc0)/* 0xe0)/*
IP IP IP IP
Class Class Class Class
A B C D
address*/ address*/ address*/ address*/
Hálózati réteg és útvonalválasztás
53
...további részletek struct route * rtget(IPaddr dest, Bool local){ struct route *prt; int hv; if (!Route.ri_valid) rtinit(); wait(Route.ri_mutex); hv = rthash(dest); for (prt=rttable[hv]; prt; prt=prt->rt_next) { if (prt->rt_ttl <= 0) continue;/* route has expired */ if (netmatch(dest, prt->rt_net, prt->rt_mask, local)) if (prt->rt_metric < RTM_INF) break; } if (prt == 0) prt = Route.ri_default;/* may be NULL too... */ if (prt != 0 && prt->rt_metric >= RTM_INF) prt = 0; if (prt) { prt->rt_refcnt++; prt->rt_usecnt++; } signal(Route.ri_mutex); return prt; }
Hálózati réteg és útvonalválasztás
54
...további részletek
struct route { Ipaddr rt_net;/* network address for this route*/ Ipaddr rt_mask;/* mask for this route*/ Ipaddr rt_gw;/* next IP hop*/ u_short rt_metric;/* distance metric*/ u_short rt_ifnum;/* interface number*/ short rt_key;/* sort key*/ short rt_ttl;/* time to live(seconds)*/ struct route *rt_next;/* next entry for this hash value*/ /* stats */ int rt_refcnt;/* current reference count*/ int rt_usecnt;/* total use count so far*/ };
Hálózati réteg és útvonalválasztás
55
Forrás routolás
• Forrás befolyásolja a csomag vagy a válasz útvonalát • optimális útvonal • diagnosztika • rosszindulatú kihasználás • IP opció • loose source routing • strict source routing
Hálózati réteg és útvonalválasztás
56
ICMP és routolás solicitations, and, in addition, send advertisements periodically without having received a solicitation, about once every five to ten minutes. The ICMP route redirect message is sent by a router to a host when this host has made a poor routing decision. Specifically, a router sends an ICMP route redirect message to the source IP address of a datagram, when the router forwards the datagram on the same network on which the datagram was received. Such a situation is undesirable since, the datagram is transmitted twice over the same network. The situation could be avoided if the source of the datagram selected a different next hop. The ICMP route redirect message sent by the router contains the routing table entry that should be used by the host. When a host receives an ICMP route redirect, it immediately updates its routing table. ICMP route redirect messages are a useful mechanism for hosts which only have a default route in their routing table, but are located on a network with multiple routers. With ICMP route redirect, such hosts can learn about additional routes without the need for a routing protocol.
• ICMP router solicitation • ICMP router advertisement • ICMP route redirect R2
R1 (2) IP datagram
Destination Next Hop 10.1.0.0/24 R1 …
(3) ICMP redirect (1) IP datagram
Ethernet
H1
Destination Next Hop 10.1.0.0/24 R2 …
Figure 3.8. Scenario with an ICMP Redirect message.
A scenario of an ICMP route redirect is shown in Figure 3.8. The figure shows an Ethernet
Hálózati réteg és útvonalválasztás
57
Intra-AS routolás
• RIP: Routing Information Protocol • OSPF: Open Shortest Path First • IGRP: Interior Gateway Routing Protocol (Cisco proprietary)
Hálózati réteg és útvonalválasztás
58
RIP (Routing Information Protocol)
• 4.3 BSD • interior gateway protocol • infinity=16 -> max. 15 hop • hálózatok távolsága • update üzenetek 30 sec • RIPv2
Hálózati réteg és útvonalválasztás
59
RIP (folyt.)
• távolság vektor routolás • költs(R,G)+költs(G,D)
Hálózati réteg és útvonalválasztás
60
Routolási tábla frissítése int rtadd(IPaddr net, IPaddr mask, IPaddr gw, unsigned metric,unsigned intf, unsigned ttl){ … if (isdup) { struct route *tmprt; if (srt->rt_gw == prt->rt_gw) {/* just update the existing route */ if (dorip) { srt->rt_ttl = ttl; if (srt->rt_metric != metric) { if (metric == RTM_INF) srt->rt_ttl = RIPZTIME; send(rippid, 0); } } srt->rt_metric = metric; RTFREE(prt); signal(Route.ri_mutex); return OK; }/* else, someone else has a route there... */ if (srt->rt_metric <= prt->rt_metric) { /* no better off to change; drop the new one */ RTFREE(prt); signal(Route.ri_mutex); return OK; } … }
Hálózati réteg és útvonalválasztás
61
RIP (folyt.)
• RIP csomagok • Request • összes út vagy specifikus • indulás, time-out • Response • periodikusan (30 sec) • kérdésre válaszul • routolási tábla változásakor
Hálózati réteg és útvonalválasztás
62
RIP (folyt.)
• IP címek • maszk nélkül (címosztályok default maszkjai) • feltételezett maszkok kezelése a routerben • default route • host route • Metrika • max 16 • hop count
Hálózati réteg és útvonalválasztás
63
•
RIP (folyt.) Ha valahonnan 180 sec-ig nem jön update --> link halott rajta átvezető utak érvénytelenek új hírdetés a szomszédoknak szomszédok is tovább hírdetnek, ha változnak a tábláik link megszűnése elterjed a hálózatban poison reverse a ping-pong hurkok megelőzésére split horizon: útvonal frissítés esetén az interfészre a rajta keresztül kapott utat nem hírdeti split horizon with poison reverse: útvonal frissítés esetén az interfészre a rajta keresztül kapott utat végtelen metrikával hírdeti
• • • • •
• •
Hálózati réteg és útvonalválasztás
64
RIP működési mechanizmusa
• hírdetések UDP csomagban periódikusan
Hálózati réteg és útvonalválasztás
65
OSPF (Open Shortest Path First)
• Interior Gateway Protocol • Password authentikáció • info továbbítás: OSPF protokoll IP fölött • További hierarchia bontás • area • Terhelés elosztás • multiple routes with same cost • Link típus • network, router
Area 3 Area 1 Area 0 R9 R7 R3 R8 R1 R4 R2 Area 2 R6 R5
Hálózati réteg és útvonalválasztás
66
OSPF hierarchikus routolás
• Két szintű hierarchia: local area, backbone. • Kapcsolat-állapot hírdetés csak areaban • részletes információk a saját arearól; irány más areakban lévő hálózatok felé • Area border routers: • több areahoz kapcsolódik • saját areaban lévő hálózatok távolságának hírdetése a többi Area Border routernek Backbone routers: routolás csak backbone-on AS boundary routers: kapcsolat más AS-ek felé
• • • •
Hálózati réteg és útvonalválasztás
67
OSPF hírdetések • • • • •
Router link point-to-point szomszédság arean belüli árasztás Network link LAN designated router a LAN routerjeit arean belül Network summary link külső AS információk az area border routertől az arean belülre AS boundary router summary AS boundary router információk egy arean belülre AS external link border routerek az AS-en kívüli linkeket minden routernek az AS-ben
• • • • •
Hálózati réteg és útvonalválasztás
68
OSPF üzenetek
• hello • szomszédok között, subnet maszk, opciók • database description • master/slave per link, LS ID • link state request • LS ID • link state update • LS hírdetés • link state acknowledgement • csak fejléc
Hálózati réteg és útvonalválasztás
69
Inter-AS routolás
• BGP • Path vector protocol • hasonló a distance vector routoláshoz • teljes útvonalak hírdetése Path (X,Z) = X,Y1,Y2,Y3,…,Z R4 R5
R3
AS1
BGP AS2
(RIP intra-AS routing)
BGP R1
R2
(OSPF intra-AS routing)
AS3 (OSPF intra-AS routing)
Hálózati réteg és útvonalválasztás
70
BGP
• routolási politika érvényesítése B W
X
A
provider network customer network:
C Y
Hálózati réteg és útvonalválasztás
71
NAT (Network Address Translation)
• IP címtér kimerülése • Privát címek • Külső és belső hálózat • NAT megoldások • statikus • dinamikus • multiplexelt (PAT)
Hálózati réteg és útvonalválasztás
72
Nem regisztrált IP címek
• Range 1: Class A - 10.0.0.0 through 10.255.255.255
• Range 2: Class B - 172.16.0.0 through 172.31.255.255
• Range 3: Class C - 192.168.0.0 through 192.168.255.255
• Link local self assigned addresses
169.254.1.0 through 169.254.254.255
Hálózati réteg és útvonalválasztás
73
IPv6
• Elsődleges motiváció: 32-bites címtér kimerülése 2008-ra
• További motiváció: • gyorsabban feldolgozható fejléc • QoS • IPv6 datagram formátum: • fix 40 byte header • fragmentáció nem megengedett
Hálózati réteg és útvonalválasztás
74
IPv6 csomag 0
4 Version
12 TrafficClass PayloadLen
16
24
31
FlowLabel NextHeader SourceAddress
DestinationAddress
Next header/data
HopLimit
Hálózati réteg és útvonalválasztás
75
IPv6 címzés •
•
128 bites címek 8 16-bites részben megadva, hexa v. decimális pl.: 2001:0db8:85a3:08d3:1319:8a2e:0370: 7334, 2001:db8::1428:57ab, ::ffff:1.2.3.4
• •
Cím típusok unicast anycast interfészek halmaza, legjobb alternatíva multicast link-local multicast egy linken több interfészre
• • • • • •
Hálózati réteg és útvonalválasztás
76
Áttérés IPv6-ra
• Kevert IPv4 IPv6 hálózat • Dual Stack: dual stack routerek protocol translation • Tunneling: IPv6 IPv4 payloadként IPv4 routerek között
Hálózati réteg és útvonalválasztás
77
Multicast routolás
• Vevők csoportja • Alkalmazás • folytonos média streaming • megosztott adatalkalmazások • WWW cache update • interaktív többfelhasználós játékok • Megoldások • multiple unicast • unicast network • hálózati multicast
Hálózati réteg és útvonalválasztás
78
Multicast és a protokollok
unicast applications
multicast applications UDP
TCP IP unicast
IP multicast
Data link
Figure 10.3. Protocol layers for unicast and multicast.
1.2.
IP Multicast Addresses
The range of IP multicast addresses, 224.0.0.0 to 239.255.255.255, corresponds to the Class D addresses in the class-based IP address scheme. These are the addresses that start with “1110”
Hálózati réteg és útvonalválasztás
79
IP multicast
• D oszt. multicast csoport címek • permanent • transient • dinamikus, nyílt csoportok
Hálózati réteg és útvonalválasztás
80
IGMP protokoll
• Internet Group Management Protocol
• host és first/last hop router
IGMP Message types membership query: general
Sent by router
membership query: specific
router
membership report
host
leave group
host
Purpose query multicast groups joined by attached hosts query if specific multicast group joined by attached hosts report host wants to join or is joined to given multicast group report leaving given multicast group
Hálózati réteg és útvonalválasztás
81
Multicast routolás
3.1.
• Shortest path tree • source dependent • Minimum cost tree • NP-teljes számítás
Multicast Routing Algorithms in a Graph S
(a) Network graph
S
S
(b) Shortest-path tree
(c) Minimum-cost tree
Figure 10.11. Objectives of multicast routing.
Before discussing the routing protocols of the Internet in detail, let us look at multicast routing
Hálózati réteg és útvonalválasztás
82
Multicast routolás (folyt.)
•
B
Source
Kapcsolat állapot multicast multicast fa a forrásoktól a csoporttagokhoz
A
R1
R2
R3
•
R4
C
A
R1
R7
Source
R2
R3
R4
C
R1
R6
B
B
A
R5
R5
R6
R7
R2
B
R3
R4
R5 A
C
R6
R7
R1
R2
R3
R4
C Source
R6
R5
R7
Hálózati réteg és útvonalválasztás
83
Multicast routolás (folyt.)
• Source based tree • Core based tree • Reverse path forwarding • RPF interface (up stream) • out going interfaces • flood-and-prune
An arriving multicast packet must match the source address and the group address in an (S, G) entry, and the group address in an (*, G) entry. If there are matches for both (S, G) and (*, G) entries, the (S, G) entries take preference. When a match is found in the routing table, the router verifies that the packet arrived on the incoming interface listed in the incoming interface column Hálózati rétegofés the routing table. This is called an RPF check. If an RPF check is successful, one copy of the útvonalválasztás datagram is forwarded on each interface listed in the outgoing interface list. If there is no match in the routing table or if the RPF check failed, the packet is discarded. 84
Multicast routolás (folyt.)
Source IP address
Multicast group
Incoming interface (RPF interface)
Outgoing interface list
S1
G1
I1
I2, I3
G2
I2
I1, I3
*
Figure 10.13. General structure of a multicast routing table.
3.3.
Source-based trees H1 H1 Source Source
R1 R1 R3 R3
R2 R2
H2 H2
The second phase of the flood-and-prune method ensures datagrams are delivered to a router only if the router is on a path to a multicast group member. This second phase is called pruning H1 receives a multicast packet on an interface that is not and works as follows. Whenever, a router Source the RPF interface, the router sends a prune message on that interface. A router sends a prune message on its RPF interface if it is not connected to a LAN with group members and one of the following holds: (1) the router does not have a downstream neighbor in the distribution tree, or (2) the router has received prune messages R1 from all downstream neighbors. When a router receives a prune message for an (S, G) entry on an interface, R3 it stops forwarding multicast packets for group G fromR2source S on that interface. H2 R4
R4 R4
R5 R5 R6 R6
R7 R7
H3 H3
R8 R8
joined joined
H4 H4
H5 H5
joined joined
Figure 10.14.Figure Multicast group with RPF forwarding tree. 10.15. Flood-and-prune.
Figure 10.16 illustrates the transmission of prune messages. R2 sends a prune message to R4 since the packet from R4 is not the RPF for source H1. R8 sends a prune message because it does not have a R5group member in its local network, and it also does not have downstream R6 neighbors. The prune message from R6 to R3 is sent because R6 has received prune messages from all downstream neighbors. R7
H1H1
H1 We illustrate the construction of a source-based tree for the network shown in Figure 10.14. Source Each host is connected to a router via an Ethernet network and routers are connected by pointto-point links. H1 is the source of a multicast group and hosts H3 and H4 are receivers that have joined the multicast group. The arrows in the figure indicate the reverse shortest paths for all routers in the network. Data transmissions R1 in the source-based distribution tree for H1 follow R2
Pru ne
P ru
P ru n e
R7R7P rune
H3H3
R8R8
joined joined
joined
H4 joined
Figure 10.16. Prune messages.
H5
H4H4 joined joined
Figure 10.16. Prune Figure 10.17. Graftmessages. messages.
0.17 0.16
0.16
R6R6 Graft
Pr u n e
Prune
R8
a ft Gr ne
R7 P rune H3
e
e Pr u n
Pr u ne
Prune
Pr u n e
R6
H2H2 P run
ne Pr u
R5R5
P ru n e
ne
P ru ne
R4R4
e Pru n
u Pr
P rune
R3R3
Pru ne
P ru
ne
P ru ne
e Pr u n
Pr u ne
ne
e P run
ne Pr u
R5
e Pru n
R1R1 R2R2
H2
u Pr
P rune
R4
Source Source
R3
0.14
R8
H3
As a result of pruning, routers receive multicast messages only if they have group members in joined their connected LANs, or if they are on the reverse shortest path from a multicast group member to the source. Since a multicast group is dynamic and new hosts may join or leave the multicast H4 group, prune message stop the forwarding on an interface only H5 temporarily and reinstate a joined pruned link, and packets are forwarded over a previously pruned link. This may trigger the transmission of another prune message. Figure 10.15. Flood-and-prune.
H5H5 joined
Hálózati réteg és útvonalválasztás
85
Multicast routolás (folyt.)
• Protocol
Independent Multicast rendezvous pont minden R1 csoporthoz designated router közös és forrás Join specifikus multicast fák R1
• • •
RP
RP Join
R3
R2
R4
R3
R2
R4
Join R5
R1
R5
(a)
(b)
RP
RP
R3
R2
R4
R3
R2 Join
Join R5 (c)
RP = Rendezvous pont Közös fa Forrás-specifikus fa R1-hez
R1
R5 (d)
R4