0% found this document useful (0 votes)
28 views53 pages

CRI Reti 08 Network Layer-Control Plane

This document discusses network layer control plane concepts and routing algorithms. It begins with an introduction and overview of routing protocols including link state and distance vector algorithms. It then covers intra-ISP routing using OSPF, routing between ISPs using BGP, and software-defined networking control planes. The document also discusses network management protocols like SNMP and NETCONF/YANG. The goal is to understand the principles behind traditional per-router and centralized SDN approaches to structuring the network control plane and examples of their implementation in the Internet.

Uploaded by

erospatarini
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views53 pages

CRI Reti 08 Network Layer-Control Plane

This document discusses network layer control plane concepts and routing algorithms. It begins with an introduction and overview of routing protocols including link state and distance vector algorithms. It then covers intra-ISP routing using OSPF, routing between ISPs using BGP, and software-defined networking control planes. The document also discusses network management protocols like SNMP and NETCONF/YANG. The goal is to understand the principles behind traditional per-router and centralized SDN approaches to structuring the network control plane and examples of their implementation in the Internet.

Uploaded by

erospatarini
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 53

Network Layer: Control Plane

Contents:
We will follow more or less (we’ll cut quite a lot) the corresponding chapter of the textbook:
“Computer Networking: a Top-Down Approach” by Jim Kurose and Keith Ross, 8th Ed. (7th is fine as well)

Disclaimers - Changelog
copyright 1996-2020 J.F Kurose and K.W. Ross, All Rights Reserved
▪ 1999-2020 Original slides are courtesy of the textbook authors
Network Layer = Control Plane: 5-1
▪ 2021 Main content selection made by dott. Luca Tagliapietra
▪ 2022 Compacting action by prof. Michele Geronazzo
Network layer control plane: our goals
▪understand principles ▪ instantiation, implementation
behind network control in the Internet:
plane: • OSPF, BGP
• traditional routing algorithms • OpenFlow, ODL and ONOS
• SDN controllers controllers
• network management, • Internet Control Message
configuration Protocol: ICMP
• SNMP, YANG/NETCONF

Network Layer: 5-2


Network layer: “control plane” roadmap
▪ introduction
▪ routing protocols
▪ link state
▪ distance vector
▪ intra-ISP routing: OSPF
▪ routing among ISPs: BGP
▪ network management,
▪ SDN control plane configuration
▪ Internet Control Message • SNMP
Protocol • NETCONF/YANG

Network Layer: 5-3


Network-layer functions
▪ forwarding: move packets from router’s
input to appropriate router output
data plane
▪ routing: determine route taken by packets
from source to destination
control plane

Two approaches to structuring network control plane:


1. per-router control (traditional)
2. logically centralized control (software defined networking)

Network Layer: 5-4


1. Per-router control plane
Individual routing algorithm components in each and every router
interact in the control plane

Routing
Algorithm
control
plane
Local forwarding
table
data
header output
plane
0100 3
0110 2
0111 2
1001 1

values in arriving
packet header
0111 1
2
3

Network Layer: 5-5


2. Software-Defined Networking (SDN)
control plane
Remote controller computes, installs forwarding tables in routers

Remote Controller

control
plane

data
plane

CA
CA CA CA CA
values in arriving
packet header

0111 1
2
3

Network Layer: 5-6


Network layer: “control plane” roadmap
▪ introduction
▪ routing protocols
▪ link state
▪ distance vector
▪ intra-ISP routing: OSPF
▪ routing among ISPs: BGP ▪ network management,
▪ SDN control plane configuration
▪ Internet Control Message • SNMP
Protocol • NETCONF/YANG

Network Layer: 5-7


Routing protocols
mobile network
national or global ISP
Routing protocol goal: determine
“good” paths (equivalently, routes),
from sending hosts to receiving application
transport

host, through network of routers network


link
physical
▪ path: sequence of routers packets network
link
physical
network
link
physical

traverse from given initial source


host to final destination host network
link
physical
network
link

▪ “good”: least “cost”, “fastest”,


physical network
link datacenter
physical network
“least congested”
application
transport
network
enterprise link
network physical

routing: a “top-10” networking challenge! Network Layer: 5-8


Graph abstraction: link costs
5 ca,b: cost of direct link connecting a
v 3 w and b e.g., cw,z = 5, cu,z = ∞
2 5
u 2 1 z
3 cost defined by network operator:
1
x y 2 could always be 1,
1
or inversely related to bandwidth,
or inversely related to congestion

graph: G = (N,E)
N: set of routers = { u, v, w, x, y, z }
E: set of links ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }
Network Layer: 5-9
Routing algorithm classification
global: all routers have complete
topology, link cost info
• “link state” algorithms
dynamic: routes change
static: routes change more quickly
slowly over time • periodic updates or in
How fast response to link cost
do routes changes
change? decentralized: iterative process of
computation, exchange of info with neighbors
• routers initially only know link costs to
attached neighbors
• “distance vector” algorithms

Network Layer: 5-10

global or decentralized information?


Network layer: “control plane” roadmap
▪ introduction
▪ routing protocols
▪ link state
▪ distance vector
▪ intra-ISP routing: OSPF
▪ routing among ISPs: BGP ▪ network management,
▪ SDN control plane configuration
▪ Internet Control Message • SNMP
Protocol • NETCONF/YANG

Network Layer: 5-11


Dijkstra’s link-state routing algorithm
▪ centralized: network topology, link notation
costs known to all nodes
▪ cx,y: direct link cost from node
• accomplished via “link state broadcast” x to y; = ∞ if not direct
• all nodes have same info neighbors
▪ computes least cost paths from one ▪ D(v): current estimate of cost
node (“source”) to all other nodes of least-cost-path from source
to destination v
• gives forwarding table for that node
▪ p(v): predecessor node along
▪ iterative: after k iterations, know path from source to v
least cost path to k destinations ▪ N': set of nodes whose least-
(more clear after the next example) cost-path definitively known

Network Layer: 5-12


Dijkstra’s link-state routing algorithm
1 Initialization:
2 N' = {u} /* compute least cost path from u to all other nodes */
3 for all nodes v
4 if v adjacent to u /* u initially knows direct-path-cost only to direct neighbors */
5 then D(v) = cu,v /* but may not be minimum cost! */
6 else D(v) = ∞
7
8 Loop
9 find w not in N' such that D(w) is a minimum
10 add w to N'
11 update D(v) for all v adjacent to w and not in N' :
12 D(v) = min ( D(v), D(w) + cw,v )
13 /* new least-path-cost to v is
14 either old least-cost-path to v or
15 known least-cost-path to w plus direct-cost from w to v */
16 until all nodes in N' Network Layer: 5-13
Dijkstra’s algorithm: example
D(v), D(w), D(x), D(y), D(z)
Step N' p(v) p(w) p(x) p(y) ,p(z)
0 u 7,u 3,u 5,u ∞ ∞
1 uw 6,w 5,u 11,w ∞
2 uwx 6,w 11,w 14,x
3 uwxv 10,v 14,x
4 uwxvy 12,y
5 uwxvyz x
9

notes: 5
4
7
❖ construct shortest path tree by
8
tracing predecessor nodes
ties can exist (can be broken 3 w z
❖ u y
arbitrarily) 2
3
7 4
v
Network Layer: Control Plane 5-14
Dijkstra’s algorithm: an example
v w x y z
Step N' D(v),p(v) D(w),p(w) D(x),p(x) D(y),p(y) D(z),p(z)
0 u 2,u 5,u 1,u ∞ ∞
1 ux 2,u 4,x 2,x ∞
2 uxy 2,u 3,y 4,y
3 uxyv 3,y 4,y
4 uxyvw 4,y
5 uxyvwz
Initialization (step 0): For all a: if a adjacent to then D(a) = cu,a
5
find a not in N' such that D(a) is a minimum
v 3 w
2 5 add a to N'
u 2 z update D(b) for all b adjacent to a and not in N' :
1
3 D(b) = min ( D(b), D(a) + ca,b )
1 2
x y
1
Network Layer: 5-15
Dijkstra’s algorithm: an example
5

v 3 w
2 5
u 2 1 z
3
1 2
x y
1

resulting least-cost-path tree from u: resulting forwarding table in u:


destination outgoing link
v w (u,v) route from u to v and x direct
v
u z x (u,x)
y (u,x)
x y w (u,x) from u to all other destinations
via x
x (u,x)
Network Layer: 5-16
Dijkstra’s algorithm: discussion
algorithm complexity: n nodes
▪ each of n iteration: need to check all nodes, w, not in N
▪ n(n+1)/2 comparisons: O(n2) complexity
▪ more efficient implementations possible: O(nlogn)
message complexity:
▪ each router must broadcast its link state information to other n routers
▪ efficient (and interesting!) broadcast algorithms: O(n) link crossings to disseminate a
broadcast message from one source
▪ each router’s message crosses O(n) links: overall message complexity: O(n2)

Network Layer: 5-17


Dijkstra’s algorithm: oscillations possible
▪ when link costs depend on traffic volume, route oscillations possible
▪ sample scenario:
• routing to destination a, traffic entering at d, c, e with rates 1, e (<1), 1
• link costs are directional, and volume-dependent

1
A 1+e A A A
2+e 0 0 2+e 2+e 0
D 0 0 B D 1+e 1 B D B D 1+e 1 B
0 0
0 e 0 0
C 0 1 1+e 0
1 C C C
1
e
given these costs, given these costs, given these costs,
initially find new routing…. find new routing…. find new routing….
resulting in new costs resulting in new costs resulting in new costs

Network Layer: 5-18


Network layer: “control plane” roadmap
▪ introduction
▪ routing protocols
▪ link state
▪ distance vector
▪ intra-ISP routing: OSPF
▪ routing among ISPs: BGP ▪ network management,
▪ SDN control plane configuration
▪ Internet Control Message • SNMP
Protocol • NETCONF/YANG

Network Layer: 5-28


Distance vector algorithm
Based on Bellman-Ford (BF) equation (dynamic programming):
Bellman-Ford equation

Let Dx(y): cost of least-cost path from x to y.


Then:
Dx(y) = minv { cx,v + Dv(y) }

v’s estimated least-cost-path cost to y


min taken over all neighbors v of x direct cost of link from x to v
Network Layer: 5-29
Bellman-Ford Example
Suppose that u’s neighboring nodes, x,v,w, know that for destination z:
Dv(z) = 5 Dw(z) = 3 Bellman-Ford equation says:
5
Du(z) = min { cu,v + Dv(z),
3 w
v 5 cu,x + Dx(z),
2
u 2 1 z cu,w + Dw(z) }
3
1 2
= min {2 + 5,
x y
1 + 3,
1
5 + 3} = 4
Dx(z) = 3
node achieving minimum (x) is
next hop on estimated least-
cost path to destination (z)
Network Layer: 5-30
Distance vector algorithm
key idea:
▪ from time-to-time, each node sends its own distance vector estimate
to neighbors
▪ when x receives new DV estimate from any neighbor, it updates its own
DV using B-F equation:
Dx(y) ← minv{cx,v + Dv(y)} for each node y ∊ N

▪ under minor, natural conditions, the estimate Dx(y) converge to the


actual least cost dx(y)

Network Layer: 5-31


Distance vector algorithm:
each node: iterative, asynchronous: each local
iteration caused by:
wait for (change in local link ▪ local link cost change
cost or msg from neighbor) ▪ DV update message from neighbor

recompute DV estimates using distributed, self-stopping: each


node notifies neighbors only when
DV received from neighbor its DV changes
▪ neighbors then notify their
if DV to any destination has neighbors – only if necessary
changed, notify neighbors ▪ no notification received, no
actions taken!

Network Layer: 5-32


Distance vector: example
DV in a:
Da(a)=0
Da(b) = 8
Da(c) = ∞ a b c
Da(d) = 1 8 1
Da(e) = ∞
t=0 Da(f) = ∞
1 1
Da(g) = ∞
Da(h) = ∞
▪ All nodes have Da(i) = ∞
distance estimates
to nearest A few asymmetries:
d e f ▪ missing link
neighbors (only) 1 1
▪ larger cost
▪ All nodes send
their local
distance vector to 1 1 1
their neighbors

g h i
1 1

Network Layer: 5-33


Distance vector example: iteration

a b c
8 1

t=1 1 1
All nodes:
▪ receive distance
vectors from
neighbors d e f
▪ compute their new 1 1
local distance
vector
▪ send their new 1 1 1
local distance
vector to neighbors

g h i
1 1

Network Layer: 5-34


Distance vector example: iteration

comapute combpute comcpute


8 1

t=1 1 1
All nodes:
▪ receive distance
vectors from
neighbors comdpute comepute comfpute
▪ compute their new 1 1
local distance
vector
▪ send their new 1 1 1
local distance
vector to neighbors

comgpute 1
comhpute 1
comp
i ute

Network Layer: 5-35


Distance vector example: iteration

a b c
8 1

t=1 1 1
All nodes:
▪ receive distance
vectors from
neighbors d e f
▪ compute their new 1 1
local distance
vector
▪ send their new 1 1 1
local distance
vector to neighbors

g h i
1 1

Network Layer: 5-36


Distance vector example: iteration

a b c
8 1

t=2 1 1
All nodes:
▪ receive distance
vectors from
neighbors d e f
▪ compute their new 1 1
local distance
vector
▪ send their new 1 1 1
local distance
vector to neighbors

g h i
1 1

Network Layer: 5-37


Distance vector example: iteration

comapute combpute comcpute


2 1

t=2 1 1
All nodes:
▪ receive distance
vectors from
neighbors com
dpute comepute comf pute
▪ compute their new 1 1
local distance
vector
▪ send their new 1 1 1
local distance
vector to neighbors

comgpute comhpute comipute


8 1

Network Layer: 5-38


Distance vector example: iteration

a b c
8 1

t=2 1 1
All nodes:
▪ receive distance
vectors from
neighbors d e f
▪ compute their new 1 1
local distance
vector
▪ send their new 1 1 1
local distance
vector to neighbors

g h i
1 1

Network Layer: 5-39


Distance vector example: iteration

…. and so on

Let’s next take a look at the iterative computations at nodes

Network Layer: 5-40


Distance vector
example: DV in b:
computation
Db(a) = 8 Db(f) = ∞
DV in c:
Dc(a) = ∞
Db(c) = 1 Db(g) = ∞ Dc(b) = 1
Db(d) = ∞ Db(h) = ∞ Dc(c) = 0
DV in a: Dc(d) = ∞
Db(e) = 1 Db(i) = ∞
Da(a)=0 Dc(e) = ∞
Da(b) = 8
Dc(f) = ∞
Da(c) = ∞ a b c Dc(g) = ∞
Da(d) = 1 8 1
Dc(h) = ∞
Da(e) = ∞
Dc(i) = ∞
t=1 Da(f) = ∞
1 1
Da(g) = ∞
▪ b receives DVs Da(h) = ∞ DV in e:
from a, c, e Da(i) = ∞ De(a) = ∞
De(b) = 1
d e f De(c) = ∞
1 1 De(d) = 1
De(e) = 0
De(f) = 1
1 1 1 De(g) = ∞
De(h) = 1
De(i) = ∞

g h i
1 1

Network Layer: 5-41


Distance vector
example: DV in b:
computation
Db(a) = 8 Db(f) = ∞
DV in c:
Dc(a) = ∞
Db(c) = 1 Db(g) = ∞ Dc(b) = 1
Db(d) = ∞ Db(h) = ∞ Dc(c) = 0
DV in a: Dc(d) = ∞
Db(e) = 1 Db(i) = ∞
Da(a)=0 Dc(e) = ∞
Da(b) = 8
Dc(f) = ∞
Da(c) = ∞ a b c Dc(g) = ∞
Da(d) = 1 8 compute 1
Dc(h) = ∞
Da(e) = ∞
Dc(i) = ∞
t=1 Da(f) = ∞
1 1
Da(g) = ∞
▪ b receives DVs Da(h) = ∞ DV in e:
from a, c, e, Da(i) = ∞ De(a) = ∞
computes: e
De(b) = 1
d e f De(c) = ∞
1
Db(a) = min{c b,a+Da(a), cb,c +Dc(a), cb,e+De(a)} = min{8,∞,∞} =8 1 De(d) = 1
Db(c) = min{cb,a+Da(c), cb,c +Dc(c), c b,e +De(c)} = min{∞,1,∞} = 1 De(e) = 0
Db(d) = min{cb,a+Da(d), cb,c +Dc(d), c b,e +De(d)} = min{9,∞,2} = 2 De(f) = 1
1 1 De(g) = ∞
Db(e) = min{cb,a+Da(e), cb,c +Dc(e), c b,e +De(e)} = min{∞,∞,1} = 1 De(h) = 1
Db(f) = min{cb,a+Da(f), cb,c +Dc(f), c b,e +D
DV in b:
1e(f)} = min{∞,∞,2} = 2 De(i) = ∞
Db(g) = min{cb,a+Da(g), cb,c +Dc(g), c b,e+De(g)} = min{∞,∞, ∞} = ∞ Db(a) = 8 Db(f) =2
h Db(c) = 1 Db(g) = ∞
Db(h) = min{cb,a+Da(h), cb,c +Dc(h), c b,e+De(h)} = min{∞, ∞, 2} = 2 1Db(d) = 2 Db(h) = 2
Db(i) = min{cb,a+Da(i), cb,c +Dc(i), c b,e+De(i)} = g
min{∞,∞, ∞} = ∞ Db(e) = 1 Db(i) = ∞
1 i Network Layer: 5-42
Distance vector
DV in c:
example: DV in b:
computation
Db(a) = 8 Db(f) = ∞ Dc(a) = ∞
Dc(b) = 1
Db(c) = 1 Db(g) = ∞
Db(d) = ∞ Db(h) = ∞ Dc(c) = 0
DV in a: Dc(d) = ∞
Db(e) = 1 Db(i) = ∞
Da(a)=0 Dc(e) = ∞
Da(b) = 8
Dc(f) = ∞
Da(c) = ∞ a b c Dc(g) = ∞
Da(d) = 1 8 1
Dc(h) = ∞
Da(e) = ∞
Dc(i) = ∞
t=1 Da(f) = ∞
1 1
Da(g) = ∞
▪ c receives DVs Da(h) = ∞ DV in e:
from b Da(i) = ∞ De(a) = ∞
De(b) = 1
d e f De(c) = ∞
1 1 De(d) = 1
De(e) = 0
De(f) = 1
1 1 1 De(g) = ∞
De(h) = 1
De(i) = ∞

g h i
1 1

Network Layer: 5-43


DV in b: DV in c:
Distance vector computation
Db(a) = 8 Db(f) = ∞ Dc(a) = ∞
Db(c) = 1 Db(g) = ∞ Dc(b) = 1

example: Db(d) = ∞ Db(h) = ∞


Db(e) = 1 Db(i) = ∞
Dc(c) = 0
Dc(d) = ∞
Dc(e) = ∞
Dc(f) = ∞
a b comcpute Dc(g) = ∞
8 1
Dc(h) = ∞
Dc(i) = ∞
t=1 1 1
▪ c receives DVs
from b computes:

d b(a}} = 1 + 8 = 9
Dc(a) = min{cc,b+D e f
DV in c:
Dc(b) = min{cc,b+Db(b)} = 1 + 0 = 1
Dc(a) = 9
Dc(d) = min{cc,b+Db(d)} = 1+ ∞ = ∞ Dc(b) = 1
Dc(e) = min{cc,b+Db(e)} = 1 + 1 = 2 Dc(c) = 0
Dc(d) = 2
Dc(f) = min{cc,b+Db(f)} = 1+ ∞ = ∞
Dc(e) = ∞
Dc(g) = min{cc,b+Db(g)} = 1+ ∞ = ∞ Dc(f) = ∞
Dc(h) = min{cbc,bg+Db(h)} = 1+ ∞ = ∞ Dc(g) = ∞
h Dc(h) = ∞
Dc(i) = min{cc,b+Db(i)} = 1+ ∞ = ∞
Dc(i) = ∞
Network Layer: 5-44

* Check out the online interactive


exercises for more examples:
http://gaia.cs.umass.edu/kurose_ross/interactive/
Distance vector DV in b:
example: computation
Db(a) = 8 Db(f) = ∞
Db(c) = 1 Db(g) = ∞
Db(d) = ∞ Db(h) = ∞ DV in e:
DV in d: Db(e) = 1 Db(i) = ∞
De(a) = ∞
Dc(a) = 1 De(b) = 1
Dc(b) = ∞ a De(c) = ∞
b c
Dc(c) = ∞ 8 1 De(d) = 1
Dc(d) = 0 De(e) = 0
t=1 Dc(e) = 1
Dc(f) = ∞ 1
Q: what is new DV computed in e at
1t=1?
De(f) = 1
De(g) = ∞
▪ e receives DVs Dc(g) = 1 De(h) = 1
from b, d, f, h Dc(h) = ∞ De(i) = ∞
Dc(i) = ∞
d com
e pute f DV in f:
DV in h: 1 1
Dc(a) = ∞
Dc(a) = ∞ Dc(b) = ∞
Dc(b) = ∞ Dc(c) = ∞
Dc(c) = ∞ 1 1 1 Dc(d) = ∞
Dc(d) = ∞ Dc(e) = 1
Dc(e) = 1 Dc(f) = 0
Dc(f) = ∞ Dc(g) = ∞
Dc(g) = 1 g h i Dc(h) = ∞
1 1
Dc(h) = 0 Dc(i) = 1
Dc(i) = 1 Network Layer: 5-45
Distance vector: state information
diffusion
Iterative communication, computation steps diffuses information through network:
t=0 c’s state at t=0 is at c only
a b c
8 1
c’s state at t=0 has propagated to b, and may
t=1 influence distance vector computations up
to 1 hop away, i.e., at b 1 1 t=1
t=2
c’s state at t=0 may now influence distance
t=2 vector computations up to 2 hops away, i.e.,
at b and now at a, e as well d e f
1 1
c’s state at t=0 may influence distance vector
t=3 computations up to 3 hops away, i.e., at b,a,e
and now at c,f,h as well 1 1 1 t=3

c’s state at t=0 may influence distance vector


t=4 computations up to 4 hops away, i.e., at b,a,e, g h i
c, f, h and now at g,i as well 1 1 t=4
Distance vector: link cost changes

1
link cost changes: y
4 1
▪ node detects local link cost change x z
▪ updates routing info, recalculates local DV 50

▪ if DV changes, notify neighbors

t0 : y detects link-cost change, updates its DV, informs its neighbors.


“good news t1 : z receives update from y, updates its table, computes new least
travels fast” cost to x , sends its neighbors its DV.
t2 : y receives z’s update, updates its distance table. y’s least costs
do not change, so y does not send a message to z.

Network Layer: 5-47


Distance vector: link cost changes

60
link cost changes: y
4 1
▪ node detects local link cost change x z
▪ “bad news travels slow” – count-to-infinity problem: 50

• y sees direct link to x has new cost 60, but z has said it has a path at cost of 5. So y
computes “my new cost to x will be 6, via z); notifies z of new cost of 6 to x.
• z learns that path to x via y has new cost 6, so z computes “my new cost to x
will be 7 via y), notifies y of new cost of 7 to x.
• y learns that path to x via z has new cost 7, so y computes “my new cost to x
will be 8 via y), notifies z of new cost of 8 to x.
• z learns that path to x via y has new cost 8, so z computes “my new cost to x
will be 9 via y), notifies y of new cost of 9 to x.

▪ see text for solutions. Distributed algorithms are tricky!
Network Layer: 5-48
Comparison of LS and DV algorithms
robustness: what happens if router
message complexity malfunctions, or is compromised?
LS: n routers, O(n2) messages sent LS:
DV: exchange between neighbors; • router can advertise incorrect link cost
convergence time varies • each router computes only its own
table
speed of convergence DV:
LS: O(n2) algorithm, O(n2) messages • DV router can advertise incorrect path
• may have oscillations cost (“I have a really low cost path to
DV: convergence time varies everywhere”): black-holing
• may have routing loops • each router’s table used by others: error
• count-to-infinity problem propagate thru network

Network Layer: 5-49


Network layer: “control plane” roadmap
▪ introduction
▪ routing protocols
▪ intra-ISP routing: OSPF
▪ routing among ISPs: BGP
▪ SDN control plane
▪ Internet Control Message ▪ network management,
Protocol configuration
• SNMP
• NETCONF/YANG

Network Layer: 5-50


Making routing scalable
our routing study thus far - idealized
▪ all routers identical
▪ network “flat”
… not true in practice
scale: billions of destinations: administrative autonomy:
▪ can’t store all destinations in ▪ Internet: a network of networks
routing tables! ▪ each network admin may want to
▪ routing table exchange would control routing in its own network
swamp links!

Network Layer: 5-51


Internet approach to scalable routing
aggregate routers into regions known as “autonomous
systems” (AS) (a.k.a. “domains”)

intra-AS (aka “intra-domain”): inter-AS (aka “inter-domain”):


routing among within same AS routing among AS’es
(“network”) ▪ gateways perform inter-domain
▪ all routers in AS must run same intra- routing (as well as intra-domain
domain protocol routing)
▪ routers in different AS can run different
intra-domain routing protocols
▪ gateway router: at “edge” of its own AS,
has link(s) to router(s) in other AS’es
Network Layer: 5-52
Interconnected ASes
forwarding table configured by intra-
and inter-AS routing algorithms
Intra-AS Inter-AS
Routing Routing ▪ intra-AS routing determine entries for
forwarding destinations within AS
table
▪ inter-AS & intra-AS determine entries for
external destinations

intra-AS
routing3a intra-AS
3b 2a routing
2b
AS3 intra-AS
1a routing 1b AS2
1
d AS1

Network Layer: 5-54


3c
3a
Intra-AS routing: routing within an AS 3b
AS3
other
most common intra-AS routing protocols: networks

▪ RIP: Routing Information Protocol [RFC 1723]


• classic DV: DVs exchanged every 30 secs
• no longer widely used
▪ EIGRP: Enhanced Interior Gateway Routing Protocol
• DV based
• formerly Cisco-proprietary for decades (became open in 2013 [RFC 7868])
▪ OSPF: Open Shortest Path First [RFC 2328]
• link-state routing

Network Layer: 5-56


OSPF (Open Shortest Path First) routing
▪ “open”: publicly available
▪ classic link-state
• each router floods OSPF link-state advertisements (directly over IP
rather than using TCP/UDP) to all other routers in entire AS
• multiple link costs metrics possible: bandwidth, delay
• each router has full topology, uses Dijkstra’s algorithm to compute
forwarding table
▪ security: all OSPF messages authenticated (to prevent malicious
intrusion)

Network Layer: 5-57


Hierarchical OSPF
▪ two-level hierarchy: local area, backbone.
• link-state advertisements flooded only in area, or backbone
• each node has detailed area topology; only knows direction to reach other
destinations
area border routers: boundary router:
“summarize” distances to connects to other ASes
backbone
destinations in own area, backbone router:
advertise in backbone runs OSPF limited
to backbone
local routers:
• flood LS in area only area 3
• compute routing within
area
• forward packets to outside internal
area 1 routers
via area border router
area 2 Network Layer: 5-58
Network layer: “control plane” roadmap
▪ introduction
▪ routing protocols
▪ intra-ISP routing: OSPF
▪ routing among ISPs: BGP
▪ SDN control plane
▪ Internet Control Message ▪ network management,
Protocol configuration
• SNMP
• NETCONF/YANG

Network Layer: 5-59


Internet inter-AS routing: BGP
▪ BGP (Border Gateway Protocol): the de facto inter-domain routing
protocol
• “glue that holds the Internet together”
▪ allows subnet to advertise its existence, and the destinations it can
reach, to rest of Internet: “I am here, here is who I can reach, and how”
▪ BGP provides each AS a means to:
• eBGP: obtain subnet reachability information from neighboring ASes
• iBGP: propagate reachability information to all AS-internal routers.
• determine “good” routes to other networks based on reachability information
and policy

Network Layer: 5-60


eBGP, iBGP
connections
2b

2a 2∂c
1b 3b
2d
1a 1c 3∂a 3c
AS 2
1d 3d

AS 1 eBGP connectivity AS 3
logical iBGP connectivity

1c gateway routers run both eBGP and iBGP protocols

Network Layer: 5-61


BGP basics
▪ BGP session: two BGP routers (“peers”) exchange BGP messages over
semi-permanent TCP connection:
• advertising paths to different destination network prefixes (BGP is a “path
vector” protocol)
▪ when AS3 gateway 3a advertises path AS3,X to AS2 gateway 2c:
• AS3 promises to AS2 it will forward datagrams towards X
AS 3 3b
AS 1 1b 3a 3c

1a 1c AS 2 3d
2b
1d BGP advertisement:
2a 2c X
AS3, X
2d
Network Layer: 5-62
BGP: achieving policy via advertisements
A,w B provider
x network
w A legend:
A,w C y customer
network:

ISP only wants to route traffic to/from its customer networks (does not want to
carry transit traffic between other ISPs – a typical “real world” policy)
▪ A advertises path A,w to B and to C
▪ B chooses not to advertise BAw to C!
▪ B gets no “revenue” for routing CBAw, since none of C, A, w are B’s customers
▪ C does not learn about CBAw path
▪ C will route CAw (not using B) to get to w Network Layer: 5-67
Why different Intra-, Inter-AS routing ?
policy:
▪ inter-AS: admin wants control over how its traffic routed, who
routes through its network
▪ intra-AS: single admin, so policy less of an issue
scale:
▪ hierarchical routing saves table size, reduced update traffic
performance:
▪ intra-AS: can focus on performance
▪ inter-AS: policy dominates over performance

Network Layer: 5-72

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy