0% found this document useful (0 votes)
5 views110 pages

Week13 Routing Protocols

The document provides an overview of routing protocols in computer networks, focusing on the network layer, control plane, and various routing algorithms such as link state and distance vector. It discusses the importance of routing in determining efficient paths for data transmission and introduces concepts like Software-Defined Networking (SDN) and Internet Control Message Protocol (ICMP). Additionally, it covers Dijkstra's algorithm for finding the least-cost paths and the complexities involved in routing algorithms.

Uploaded by

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

Week13 Routing Protocols

The document provides an overview of routing protocols in computer networks, focusing on the network layer, control plane, and various routing algorithms such as link state and distance vector. It discusses the importance of routing in determining efficient paths for data transmission and introduces concepts like Software-Defined Networking (SDN) and Internet Control Message Protocol (ICMP). Additionally, it covers Dijkstra's algorithm for finding the least-cost paths and the complexities involved in routing algorithms.

Uploaded by

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

IT005- Introduction to

Computer Networks
Week 13: Routing Protocols

PhD. Ngoc-Tu Nguyen


[email protected]

12-2024 IT005–Computer Networks Week 14: 1


Network layer (review)
Ha M Ha M
application application
message
M1 M2 … Mn M2 M1 … Mn
transport transport
segment Ht Mi … Ht
Mi

network datagram Hn Ht Mi Hn Ht Mi network

link frame Hl Hn Ht Mi Hl Hn Ht Mi
link

physical physical

“Intermediate nodes”
source destination
Deliver packages from host to host
Header: Hn Routing table/ ICMP protocols/routing protocol
ICMP protocol IP addressing: NAT, dynamic
12-2024 IT005–Computer Networks Week 14: 2
Link Layer
Ha M Ha M
application application
message
M1 M2 … Mn M2 M1 … Mn
transport transport
segment Ht Mi … Ht
Mi

network datagram Hn Ht Mi Hn Ht Mi network

link frame Hl Hn Ht Mi Hl Hn Ht Mi
link

physical physical

“Physical medium”
source destination
Header: Hl NIC “name”: MAC
ARP protocol IP > MAC (ARP table)
12-2024 IT005–Computer Networks Week 14: 3
Network layer attacks
(Reviews)
o Resource IP spoofing and revert path filtering (RPF)
• Checks IP address of incoming packets is reachable via the interface
they came from (check routing table) Source IP:
How many consecutive 1’s  network part192.168.1.100?
of the
address.

10.45.0.0/16
10.45.80.141/32
Local
Interface IP
127.0.0.0
/8 directly
Localhos reachable
t
224.0.0.0/4
Multicast
255.255.255.25
5/32
Broadcast
12-2024 IT005–Computer Networks Week 14: 4
Network layer: control plane outline
 introduction
 routing protocols
 link state
 distance vector
 intra-ISP routing: OSPF
 routing among ISPs: BGP
 SDN control plane  network management,
 Internet Control Message configuration
Protocol • SNMP
• NETCONF/YANG

12-2024 IT005–Computer Networks Week 14: 5


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:


 per-router control (traditional)
 logically centralized control (software defined networking)

12-2024 IT005–Computer Networks Week 14: 6


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

Routing
Algorithm
control
plane

data
plane

values in arriving
packet header
0111 1
2
3

12-2024 IT005–Computer Networks Week 14: 7


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

12-2024 IT005–Computer Networks Week 14: 8


Network layer: control plane outline
 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

12-2024 IT005–Computer Networks Week 14: 9


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

 path: sequence of routers packets link


physical
network

traverse from given initial source host to


network
link link
physical physical

final destination host network

 “good”: least “cost”, “fastest”, “least link network


physical link
physical network
datacenter
congested”
link
physical network

 routing: a “top-10” networking application


transport
challenge! enterprise
network
link
network physical

12-2024 IT005–Computer Networks Week 14: 10


Graph abstraction: link
costs
5
ca,b: cost of direct link connecting a and b
3
v w 5 e.g., cw,z = 5, cu,z = ∞
2
u 2 1 z
3
1 cost defined by network operator: could
2
x 1
y always be 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) }

12-2024 IT005–Computer Networks Week 14: 11


Routing algorithm
classification
global: all routers have complete
topology, link cost info
• “link state” algorithms
How fast
dynamic: routes change
do routes static: routes change more quickly
change? slowly over time • periodic updates or in
response to link cost
changes
decentralized: iterative process of
computation, exchange of info with neighbors
• routers initially only know link costs to
attached neighbors
• “distance vector” algorithms
global or decentralized information?

12-2024 IT005–Computer Networks Week 14: 12


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

12-2024 IT005–Computer Networks Week 14: 13


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 x to y; = ∞ if not direct
broadcast” neighbors
• all nodes have same info  D(v): current estimate of cost
 computes least cost paths from one of least-cost-path from source
node (“source”) to all other nodes to destination v
• gives forwarding table for that node  p(v): predecessor node along
path from source to v
 iterative: after k iterations, know  N': set of nodes whose least-
least cost path to k destinations cost-path definitively known

12-2024 IT005–Computer Networks Week 14: 14


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 either old least-cost-path to v or known
14 least-cost-path to w plus direct-cost from w to v */
15 until all nodes in N'

12-2024 IT005–Computer Networks Week 14: 15


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)
D(w),p(w)
0 u 2,u 5,u 1,u ∞ ∞
5,u
1 ux 2,u 4,x 2,x ∞
4,x
2 uxy 2,u 3,y 4,y
3,y
3 uxyv 3,y 4,y
3,y
4 uxyvw 4,y
5 uxyvwz
Initialization (step 0): For all a: if a adjacent to then D(a) = cu,a
5
3 find a not in N' such that D(a) is a minimum
v w 5 add a to N'
2
u 2 1 z update D(b) for all b adjacent to a and b not in N' :
3 D(b) = min ( D(b), D(a) + ca,b )
1 2
x 1
y

D(t): (minimum) distance from source to destination t! p(v): predecessor node along path from source to v
12-2024 IT005–Computer Networks Week 14: 16
Dijkstra’s algorithm: an example

5
D(w),p(w)
3 5,u
v w 5
2
4,x
u 2 1 z 3,y
3
1 2 3,y
x 1
y

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


destination outgoing link
v w
v (u,v) route from u to v directly
u z x (u,x)
y (u,x) route from u to all
x y w (u,x) other destinations
x (u,x) via x
12-2024 IT005–Computer Networks Week 14: 17
Dijkstra’s algorithm: another example
v w x y z
D(v), D(w), D(x), D(y), D(z), x
9
Step N' p(v) p(w) p(x) p(y) p(z)

0 u 7,u 3,u 5,u ∞ ∞ 5 7


4
1 uw 6,w 5,u 11,w ∞ 8
2 uwx 6,w 11,w 14,x 3 w z
u y
2
3 uwxv 10,v 14,x
3
4 uwxvy 12,y 7 4

5 uwxvyz v

notes:
 construct least-cost-path tree by tracing predecessor nodes
 ties can exist (can be broken arbitrarily)
12-2024 IT005–Computer Networks Week 14: 18
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)

12-2024 IT005–Computer Networks Week 14: 19


Dijkstra’s algorithm: oscillations possible
 when link costs depend on traffic volume, route oscillations (not stable) 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

a 2+e
a 0
a 2+e a
1 1+e 0 2+e 0
d b d 1+e 1 b d 0 0 b d 1+e 1 b
0 0
e 1 0 1
1 0
c 0 1 1
c 1+e 1 1 0 0 1
c 1 c
e e e
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

12-2024 IT005–Computer Networks Week 14: 20


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

12-2024 IT005–Computer Networks Week 14: 21


Routing algorithm
classification
global: all routers have complete
topology, link cost info
• “link state” algorithms
How fast
dynamic: routes change
do routes static: routes change more quickly
change? slowly over time • periodic updates or in
response to link cost
changes
decentralized: iterative process of
computation, exchange of info with neighbors
• routers initially only know link costs to
attached neighbors
• “distance vector” algorithms
global or decentralized information?

12-2024 IT005–Computer Networks Week 14: 22


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

12-2024 IT005–Computer Networks Week 14: 23


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 1
y 1 + 3,
5 + 3} = 4
Dx(z) = 3
node achieving minimum (x) is
next hop on estimated least-
cost path to destination (z)

12-2024 IT005–Computer Networks Week 14: 24


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)

12-2024 IT005–Computer Networks Week 14: 25


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

distributed, self-stopping: each


recompute DV estimates using 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!

12-2024 IT005–Computer Networks Week 14: 26


Distance vector: example
DV in a:
Da(a)=0
Da(b) = 8
Da(c) = ∞ a b c
8 1
Da(d) = 1

t=0 Da(e) = ∞
Da(f) = ∞ 1 1
Da(g) = ∞
 All nodes have
Da(h) = ∞
distance estimates
Da(i) = ∞ A few asymmetries:
to nearest 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

12-2024 IT005–Computer Networks Week 14: 27


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

12-2024 IT005–Computer Networks Week 14: 28


Distance vector example: iteration

a
compute compute
b compute
c
8 1

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

g
compute h
compute compute
i
1 1

12-2024 IT005–Computer Networks Week 14: 29


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

12-2024 IT005–Computer Networks Week 14: 30


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

12-2024 IT005–Computer Networks Week 14: 31


Distance vector example: iteration

compute
a compute
b compute
c
2 1

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

g
compute compute
h compute
i
8 1

12-2024 IT005–Computer Networks Week 14: 32


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

12-2024 IT005–Computer Networks Week 14: 33


Distance vector example: iteration

…. and so on

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

12-2024 IT005–Computer Networks Week 14: 34


Distance vector example:
DV in b: DV in c:

computation Db(a) = 8
Db(c) = 1
Db(f) = ∞
Db(g) = ∞
Dc(a) = ∞
Dc(b) = 1
DV in a: Db(d) = ∞ Db(h) = ∞ Dc(c) = 0
Da(a)=0 Db(e) = 1 Db(i) = ∞ Dc(d) = ∞
Da(b) = 8 Dc(e) = ∞
Da(c) = ∞ a b c Dc(f) = ∞
8 1
Da(d) = 1 Dc(g) = ∞

t=1 Da(e) = ∞
Da(f) = ∞ 1 1
Dc(h) = ∞
Dc(i) = ∞
 b receives DVs Da(g) = ∞ DV in e:
from a, c, e Da(h) = ∞ De(a) = ∞
Da(i) = ∞ 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

12-2024 IT005–Computer Networks Week 14: 35


Distance vector example:
DV in b: DV in c:
computation Db(a) = 8 Db(f) = ∞
Dc(a) = ∞
Dc(b) = 1
Db(c) = 1 Db(g) = ∞
DV in a: Db(d) = ∞ Db(h) = ∞ Dc(c) = 0
Da(a)=0 Db(e) = 1 Db(i) = ∞ Dc(d) = ∞
Da(b) = 8 Dc(e) = ∞
Da(c) = ∞ a b c Dc(f) = ∞
8 compute 1
Da(d) = 1 Dc(g) = ∞

t=1 Da(e) = ∞
Da(f) = ∞ 1 1
Dc(h) = ∞
Dc(i) = ∞
 b receives DVs Da(g) = ∞ DV in e:
from a, c, e, Da(h) = ∞ De(a) = ∞
computes: e
Da(i) = ∞ De(b) = 1
d e f De(c) = ∞
1
Db(a) = min{cb,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 1
Db(e) = min{cb,a+Da(e), cb,c +Dc(e), c b,e +De(e)} = min{∞,∞,1} = 1 De(g) = ∞
Db(f) = min{cb,a+Da(f), cb,c +Dc(f), c b,e +De(f)} = min{∞,∞,2} = 2
DV in b: De(h) = 1
Db(g) = min{cb,a+Da(g), cb,c +Dc(g), c b,e+De(g)} = min{∞, ∞, ∞} = ∞ Db(a) = 8 Db(f) =2 De(i) = ∞
g h 1Db(c) = 1 Db(g)i = ∞
1 ∞, 2} = 2
Db(h) = min{cb,a+Da(h), cb,c +Dc(h), c b,e+De(h)} = min{∞,
Db(d) = 2 Db(h) = 2
Db(i) = min{cb,a+Da(i), cb,c +Dc(i), c b,e+De(i)} = min{∞, ∞, ∞} = ∞ Db(e) = 1 Db(i) = ∞
12-2024 IT005–Computer Networks Week 14: 36
Distance vector example:
DV in b: DV in c:
computation Db(a) = 8 Db(f) = ∞
Dc(a) = ∞
Dc(b) = 1
Db(c) = 1 Db(g) = ∞
DV in a: Db(d) = ∞ Db(h) = ∞ Dc(c) = 0
Da(a)=0 Db(e) = 1 Db(i) = ∞ Dc(d) = ∞
Da(b) = 8 Dc(e) = ∞
Da(c) = ∞ a b c Dc(f) = ∞
8 1
Da(d) = 1 Dc(g) = ∞

t=1 Da(e) = ∞
Da(f) = ∞ 1 1
Dc(h) = ∞
Dc(i) = ∞
 c receives DVs Da(g) = ∞ DV in e:
from b Da(h) = ∞ De(a) = ∞
Da(i) = ∞ 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

12-2024 IT005–Computer Networks Week 14: 37


Distance vector example:
DV in b: DV in c:
computation Db(a) = 8 Db(f) = ∞
Dc(a) = ∞
Db(c) = 1 Db(g) = ∞ Dc(b) = 1
Db(d) = ∞ Db(h) = ∞ Dc(c) = 0
Db(e) = 1 Db(i) = ∞ Dc(d) = ∞
Dc(e) = ∞
a b c
compute Dc(f) = ∞
8 1
Dc(g) = ∞

t=1 1 1
Dc(h) = ∞
Dc(i) = ∞
 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(f) = min{cc,b+Db(f)} = 1+ ∞ = ∞ Dc(d) = 2
Dc(g) = min{cc,b+Db(g)} = 1+ ∞ = ∞ Dc(e) = ∞ * Check out the online interactive
Dc(f) = ∞ exercises for more examples:
g b(h)} = 1+ ∞ = ∞
Dc(h) = min{cbc,b+D h i http://gaia.cs.umass.edu/kurose_ross/interactive/
Dc(g) = ∞
Dc(i) = min{cc,b+Db(i)} = 1+ ∞ = ∞
Dc(h) = ∞
12-2024 IT005–Computer Networks Dc(i) = ∞ Week 14: 38
Distance vector example:
DV in b:

computation Db(a) = 8
Db(c) = 1
Db(f) = ∞
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 b c De(c) = ∞
Dc(c) = ∞ 8 1
De(d) = 1
Dc(d) = 0
t=1 Dc(e) = 1
1
Q: what is new DV computed in e at
1t=1?
De(e) = 0
De(f) = 1
 e receives DVs Dc(f) = ∞
De(g) = ∞
from b, d, f, h Dc(g) = 1
De(h) = 1
Dc(h) = ∞
De(i) = ∞
Dc(i) = ∞ d compute
e f DV in f:
1 1
DV in h: 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) = ∞ g h i Dc(g) = ∞
1 1
Dc(g) = 1 Dc(h) = ∞
Dc(h) = 0 Dc(i) = 1
12-2024 IT005–Computer Networks Week 14: 39
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
t=1 may 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.,
d e f
at b and now at a, e as well 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
1 1 1 t=3
and now at c,f,h as well
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
12-2024 IT005–Computer Networks Week 14: 40
Distance vector: link cost changes
link cost changes:
 node detects local link cost change 1
y
4 1
 updates routing info, recalculates local DV
x z
 if DV changes, notify neighbors 50

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.

12-2024 IT005–Computer Networks Week 14: 41


Distance vector: link cost changes
link cost changes: 60
 node detects local link cost change 4
y
1
 “bad news travels slow” – count-to-infinity problem: x z
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!

12-2024 IT005–Computer Networks Week 14: 42


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

12-2024 IT005–Computer Networks Week 14: 43


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

12-2024 IT005–Computer Networks Week 14: 44


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!

12-2024 IT005–Computer Networks Week 14: 45


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

12-2024 IT005–Computer Networks Week 14: 46


Interconnected ASes
forwarding table configured by intra-
and inter-AS routing algorithms
 intra-AS routing determine entries for
Intra-AS Inter-AS
destinations within AS
Routing Routing  inter-AS & intra-AS determine entries
forwarding
table
for external destinations

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

12-2024 IT005–Computer Networks Week 14: 47


Inter-AS routing: a role in intradomain forwarding
 suppose router in AS1 receives AS1 inter-domain routing must:
datagram destined outside of AS1: 1. learn which destinations reachable
through AS2, which through AS3
• router should forward packet to
gateway router in AS1, but which 2. propagate this reachability info to all
one? routers in AS1

3c
3a other
2c
3b 2a networks
2b
1c
AS3
other 1a 1b AS2
networks
1d
AS1

12-2024 IT005–Computer Networks Week 14: 48


Inter-AS routing: routing within an AS
most common intra-AS routing protocols:
 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
• IS-IS protocol (ISO standard, not RFC standard) essentially same as OSPF

12-2024 IT005–Computer Networks Week 14: 49


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)

12-2024 IT005–Computer Networks Week 14: 50


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
12-2024 IT005–Computer Networks Week 14: 51
Network layer: control plane outline
 introduction
 routing protocols
 intra-ISP routing: OSPF
 routing among ISPs: BGP
 SDN control plane
 Internet Control Message
Protocol  network management,
configuration
• SNMP
• NETCONF/YANG

12-2024 IT005–Computer Networks Week 14: 52


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

12-2024 IT005–Computer Networks Week 14: 53


eBGP, iBGP connections

2b

2a 2c

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

AS 1 eBGP connectivity AS 3
logical iBGP connectivity

1c gateway routers run both eBGP and iBGP protocols

12-2024 IT005–Computer Networks Week 14: 54


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
12-2024 IT005–Computer Networks Week 14: 55
Path attributes and BGP routes
 BGP advertised route: prefix + attributes
• prefix: destination being advertised
• two important attributes:
• AS-PATH: list of ASes through which prefix advertisement has passed
• NEXT-HOP: indicates specific internal-AS router to next-hop AS
 policy-based routing:
• gateway receiving route advertisement uses import policy to
accept/decline path (e.g., never route through AS Y).
• AS policy also determines whether to advertise path to other other
neighboring ASes

12-2024 IT005–Computer Networks Week 14: 56


BGP path advertisement
AS 3 3b
AS 1 1b 3a 3c
1a 1c AS 2 3d X
2b
1d AS3, X
AS2,AS3,X 2a 2c

2d

 AS2 router 2c receives path advertisement AS3,X (via eBGP) from AS3 router 3a
 based on AS2 policy, AS2 router 2c accepts path AS3,X, propagates (via iBGP) to all
AS2 routers
 based on AS2 policy, AS2 router 2a advertises (via eBGP) path AS2, AS3, X to
AS1 router 1c
12-2024 IT005–Computer Networks Week 14: 57
BGP path advertisement (more)
AS 3 3b
AS 1 1b AS3,X 3a 3c
AS3,X
AS3,X
1a 1c AS 2 3d X
2b
AS3,X
1d AS3, X
AS2,AS3,X 2a 2c

2d

gateway router may learn about multiple paths to destination:


 AS1 gateway router 1c learns path AS2,AS3,X from 2a
 AS1 gateway router 1c learns path AS3,X from 3a
 based on policy, AS1 gateway router 1c chooses path AS3,X and advertises path
within AS1 via iBGP
12-2024 IT005–Computer Networks Week 14: 58
BGP messages
 BGP messages exchanged between peers over TCP connection
 BGP messages:
• OPEN: opens TCP connection to remote BGP peer and authenticates
sending BGP peer
• UPDATE: advertises new path (or withdraws old)
• KEEPALIVE: keeps connection alive in absence of UPDATES; also ACKs
OPEN request
• NOTIFICATION: reports errors in previous msg; also used to close
connection

12-2024 IT005–Computer Networks Week 14: 59


BGP path advertisement
AS 3 3b
AS 1 1b AS3,X 3a 3c
AS3,X
1
AS3,X
1a 1c AS 2 3d X
2 2b
local link AS3,X
2 1
interfaces 1d AS3, X
at 1a, 1d AS2,AS3,X 2a 2c

2d

dest interface  recall: 1a, 1b, 1d learn via iBGP from 1c: “path to X goes through 1c”
… …
1c 1
 at 1d: OSPF intra-domain routing: to get to 1c, use interface 1
X 1  at 1d: to get to X, use interface 1
… …

12-2024 IT005–Computer Networks Week 14: 60


BGP path advertisement
AS 3 3b
AS 1 1b 3a 3c
1
1a 1c AS 2 3d X
2 2b
1d
2a 2c

2d

dest interface  recall: 1a, 1b, 1d learn via iBGP from 1c: “path to X goes through 1c”
… …
 at 1d: OSPF intra-domain routing: to get to 1c, use interface 1
1c 2
X 2  at 1d: to get to X, use interface 1
… …  at 1a: OSPF intra-domain routing: to get to 1c, use interface 2
 at 1a: to get to X, use interface 2
12-2024 IT005–Computer Networks Week 14: 61
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

12-2024 IT005–Computer Networks Week 14: 62


Hot potato routing
AS 3 3b
AS 1 1b 3a 3c
1a 1c AS 2 3d X
2b 112
1d AS1,AS3,X AS3,X
2a 2c
201 263

2d
OSPF link weights

 2d learns (via iBGP) it can route to X via 2a or 2c


 hot potato routing: choose local gateway that has least intra-domain
cost (e.g., 2d chooses 2a, even though more AS hops to X): don’t worry
about inter-domain cost!
12-2024 IT005–Computer Networks Week 14: 63
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 Aw 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

12-2024 IT005–Computer Networks Week 14: 64


BGP: achieving policy via advertisements (more)

B provider
x network
w A legend:
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,B,C are provider networks
 x,w,y are customer (of provider networks)
 x is dual-homed: attached to two networks
 policy to enforce: x does not want to route from B to C via x
 .. so x will not advertise to B a route to C
12-2024 IT005–Computer Networks Week 14: 65
BGP route selection

 router may learn about more than one route to destination


AS, selects route based on:
1. local preference value attribute: policy decision
2. shortest AS-PATH
3. closest NEXT-HOP router: hot potato routing
4. additional criteria

12-2024 IT005–Computer Networks Week 14: 66


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

12-2024 IT005–Computer Networks Week 14: 67


Software defined networking (SDN)
 Internet network layer: historically implemented via
distributed, per-router control approach:
• monolithic router contains switching hardware, runs proprietary
implementation of Internet standard protocols (IP, RIP, IS-IS, OSPF,
BGP) in proprietary router OS (e.g., Cisco IOS)
• different “middleboxes” for different network layer functions:
firewalls, load balancers, NAT boxes, ..
 ~2005: renewed interest in rethinking network control plane

12-2024 IT005–Computer Networks Week 14: 68


Per-router control plane
Individual routing algorithm components in each and every router
interact in the control plane to computer forwarding tables

Routing
Algorithm
control
plane

data
plane

values in arriving
packet header
0111 1
2
3

12-2024 IT005–Computer Networks Week 14: 69


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

12-2024 IT005–Computer Networks Week 14: 70


Software defined networking (SDN)
Why a logically centralized control plane?
 easier network management: avoid router misconfigurations,
greater flexibility of traffic flows
 table-based forwarding (recall OpenFlow API) allows
“programming” routers
• centralized “programming” easier: compute tables centrally and distribute
• distributed “programming” more difficult: compute tables as result of
distributed algorithm (protocol) implemented in each-and-every router
 open (non-proprietary) implementation of control plane
• foster innovation: let 1000 flowers bloom

12-2024 IT005–Computer Networks Week 14: 71


SDN analogy: mainframe to PC revolution

Ap Ap Ap Ap Ap Ap Ap Ap Ap Ap
Specialized App
p p p p p p p p p p
Application
s Open Interface

Specialized
Operating or or
System
Windows Linux MAC OS
Specialized Open Interface
Hardware
Microprocessor

Vertically integrated Horizontal


Closed, proprietary Open interfaces
Slow innovation Rapid innovation
Small industry Huge industry
12-2024
* Slide courtesy: N. McKeown IT005–Computer Networks Week 14: 72
Traffic engineering: difficult with traditional
routing

5
3
2 v w 5

u 2
3
1 z
1
2
x 1 y

Q: what if network operator wants u-to-z traffic to flow along


uvwz, rather than uxyz?
A: need to re-define link weights so traffic routing algorithm
computes routes accordingly (or need a new routing algorithm)!
link weights are only control “knobs”: not much control!
12-2024 IT005–Computer Networks Week 14: 73
Traffic engineering: difficult with traditional
routing
5
3
2 v w 5

u 2
3
1 z
1
2
x 1 y

Q: what if network operator wants to split u-to-z


traffic along uvwz and uxyz (load balancing)?
A: can’t do it (or need a new routing algorithm)

12-2024 IT005–Computer Networks Week 14: 74


Traffic engineering: difficult with traditional
routing
5
3
2 v w 5

u 2
3
1 z
1
2
x 1 y

Q: what if w wants to route blue and red traffic differently from w to z?


A: can’t do it (with destination-based forwarding, and LS, DV routing)
We learned in Chapter 4 that generalized forwarding and SDN can
be used to achieve any routing desired
12-2024 IT005–Computer Networks Week 14: 75
Software defined networking (SDN)
3. controlplane functions
4. programmable routing
access
… load
control balance
external to data-plane
control switches
applications Remote Controller

control
plane

data
plane

CA 2. control, data plane


CA CA CA CA
separation

1: generalized “flow-based”
forwarding (e.g., OpenFlow)
12-2024 IT005–Computer Networks Week 14: 76
Software defined networking (SDN)
Data-plane switches: network-control
applications
 fast, simple, commodity switches …
routing
implementing generalized data-plane load
access
forwarding (Section 4.4) in hardware control balance
 flow (forwarding) table computed, control
plane
installed under controller supervision northbound API

 API for table-based switch control SDN Controller


(e.g., OpenFlow) (network operating system)

• defines what is controllable, what is not


southbound API
 protocol for communicating with
controller (e.g., OpenFlow) data
plane

SDN-controlled switches
12-2024 IT005–Computer Networks Week 14: 77
Software defined networking (SDN)
SDN controller (network OS): network-control
 maintain network state applications

routing
information load
access
 interacts with network control control balance

applications “above” via control


plane
northbound API
northbound API
 interacts with network switches SDN Controller
(network operating system)
“below” via southbound API
 implemented as distributed system southbound API

for performance, scalability, fault-


tolerance, robustness data
plane

SDN-controlled switches
12-2024 IT005–Computer Networks Week 14: 78
Software defined networking (SDN)

network-control
network-control apps: applications

routing
 “brains” of control: implement load
access
control functions using lower- control balance

level services, API provided by northbound API


control
plane
SDN controller
 unbundled: can be provided by SDN Controller
(network operating system)
3rd party: distinct from routing
vendor, or SDN controller southbound API

data
plane

SDN-controlled switches
12-2024 IT005–Computer Networks Week 14: 79
Components of SDN controller
routing access load
control balance

interface layer to network Interface, abstractions for network control apps

control apps: abstractions API network


graph
RESTful
API
… intent

network-wide state statistics … flow tables


SDN
management : state of
networks links, switches,
Network-wide distributed, robust state management
controller
services: a distributed database Link-state info host info … switch info

communication: communicate OpenFlow … SNMP


between SDN controller and Communication to/from controlled devices
controlled switches

12-2024 IT005–Computer Networks Week 14: 80


OpenFlow protocol
 operates between controller, switch
 TCP used to exchange messages OpenFlow Controller
• optional encryption
 three classes of OpenFlow messages:
• controller-to-switch
• asynchronous (switch to controller)
• symmetric (misc.)
 distinct from OpenFlow API
• API used to specify generalized
forwarding actions

12-2024 IT005–Computer Networks Week 14: 81


OpenFlow: controller-to-switch messages

Key controller-to-switch messages OpenFlow Controller


 features: controller queries switch
features, switch replies
 configure: controller queries/sets
switch configuration parameters
 modify-state: add, delete, modify flow
entries in the OpenFlow tables
 packet-out: controller can send this
packet out of specific switch port

12-2024 IT005–Computer Networks Week 14: 82


OpenFlow: switch-to-controller messages

Key switch-to-controller messages


 packet-in: transfer packet (and its OpenFlow Controller
control) to controller. See packet-out
message from controller
 flow-removed: flow table entry deleted
at switch
 port status: inform controller of a
change on a port.

Fortunately, network operators don’t “program” switches by creating/sending


OpenFlow messages directly. Instead use higher-level abstraction at controller
12-2024 IT005–Computer Networks Week 14: 83
SDN: control/data plane interaction
example
Dijkstra’s link-state
routing 1 S1, experiencing link failure uses
4 OpenFlow port status message to
network
graph
RESTful
API
… intent notify controller

statistics
3 … flow tables
2 SDN controller receives OpenFlow
message, updates link status info
Link-state info host info … switch info
2 3 Dijkstra’s routing algorithm
OpenFlow … SNMP
application has previously registered
to be called when ever link status
changes. It is called.
1
4 Dijkstra’s routing algorithm access
s2 network graph info, link state info
s1
s4 in controller, computes new
s3 routes
12-2024 IT005–Computer Networks Week 14: 84
SDN: control/data plane interaction
example
Dijkstra’s link-state
routing

4 5
network
graph
RESTful
API
… intent 5 link state routing app interacts
3 … with flow-table-computation
statistics flow tables component in SDN controller,
Link-state info host info … switch info
which computes new flow tables
2 needed
OpenFlow … SNMP
6 controller uses OpenFlow to
6
install new tables in switches
1 that need updating
s2
s1
s4
s3
12-2024 IT005–Computer Networks Week 14: 85
OpenDaylight (ODL) controller

Traffic
Engineering Firewalling Load Balancing … Network Orchestrations and Applications
Northbound API

REST/RESTCONF/NETCONF APIs
Enhanced Basic Network Functions
Services
Topology Switch Stats
AAA … processing mgr. mgr.
Forwarding Host
… rules mgr. Tracker
Service Abstraction Layer:
config. and
Service Abstraction
 interconnects internal,
operational data messaging
store Layer (SAL) external applications
and services
OpenFlow NETCONF SNMP OVSDB … Southbound API

12-2024 IT005–Computer Networks Week 14: 86


ONOS controller

Traffic
Engineering Firewalling Load Balancing … Network Applications
Northbound API  control apps separate
northbound
REST API Intent abstractions, from controller
protocols
 intent framework: high-
hosts paths flow rules topology
level specification of
service: what rather
devices links statistics
ONOS
distributed
than how
core  considerable emphasis
on distributed core:
packet southbound
device link host flow
abstractions, service reliability,
OpenFlow Netconf OVSDB protocols replication performance
Southbound API scaling

12-2024 IT005–Computer Networks Week 14: 87


SDN: selected challenges
 hardening the control plane: dependable, reliable, performance-
scalable, secure distributed system
• robustness to failures: leverage strong theory of reliable distributed
system for control plane
• dependability, security: “baked in” from day one?
 networks, protocols meeting mission-specific requirements
• e.g., real-time, ultra-reliable, ultra-secure
 Internet-scaling: beyond a single AS
 SDN critical in 5G cellular networks

12-2024 IT005–Computer Networks Week 14: 88


SDN and the future of traditional network
protocols

 SDN-computed versus router-computer forwarding tables:


• just one example of logically-centralized-computed versus protocol
computed
 one could imagine SDN-computed congestion control:
• controller sets sender rates based on router-reported (to
controller) congestion levels

How will implementation of


network functionality (SDN
versus protocols) evolve?
12-2024 IT005–Computer Networks Week 14: 89
Network layer: control plane outline

 introduction
 routing protocols
 intra-ISP routing: OSPF
 routing among ISPs: BGP
 SDN control plane
 Internet Control Message  network management,
Protocol configuration
• SNMP
• NETCONF/YANG

12-2024 IT005–Computer Networks Week 14: 90


ICMP: internet control message protocol
 used by hosts and routers to
Type Code description
communicate network-level 0 0 echo reply (ping)
information 3 0 dest. network unreachable
3 1 dest host unreachable
• error reporting: unreachable host, 3 2 dest protocol unreachable
network, port, protocol 3 3 dest port unreachable
• echo request/reply (used by ping) 3 6 dest network unknown
3 7 dest host unknown
 network-layer “above” IP: 4 0 source quench (congestion
control - not used)
• ICMP messages carried in IP 8 0 echo request (ping)
datagrams 9 0 route advertisement
10 0 router discovery
 ICMP message: type, code plus first 11 0 TTL expired
8 bytes of IP datagram causing 12 0 bad IP header
error

12-2024 IT005–Computer Networks Week 14: 91


Traceroute and ICMP

3 probes 3 probes

3 probes

 source sends sets of UDP segments to


stopping criteria:
destination  UDP segment eventually
• 1st set has TTL =1, 2nd set has TTL=2, etc. arrives at destination host
 datagram in nth set arrives to nth router:  destination returns ICMP
• router discards datagram and sends source “port unreachable”
ICMP message (type 11, code 0) message (type 3, code 3)
 source stops
• ICMP message possibly includes name of
router & IP address
 when ICMP message arrives at source: record RTTs

12-2024 IT005–Computer Networks Week 14: 92


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

12-2024 IT005–Computer Networks Week 14: 93


What is network management?
 autonomous systems (aka “network”): 1000s of interacting
hardware/software components
 other complex systems requiring monitoring, configuration,
control:
• jet airplane, nuclear power plant, others?

"Network management includes the deployment, integration


and coordination of the hardware, software, and human
elements to monitor, test, poll, configure, analyze, evaluate,
and control the network and element resources to meet the
real-time, operational performance, and Quality of Service
requirements at a reasonable cost."

12-2024 IT005–Computer Networks Week 14: 94


Components of network
management

Managed device:
Managing server: agent data equipment with manageable,
application, typically managing configurable hardware,
with network server/controller
software components
managers (humans) in data managed device
the loop Data: device “state”
agent data configuration data,
Network agent data
operational data,
management managed device device statistics
protocol: used by managed device
managing server to query,
agent data
configure, manage device;
agent data
used by devices to inform
managing server of data, managed device
events. managed device

12-2024 IT005–Computer Networks Week 14: 95


Network operator approaches to management

CLI (Command Line Interface)


• operator issues (types, scripts) direct to agent data
individual devices (e.g., vis ssh) managing
server/controller
SNMP/MIB data managed device

• operator queries/sets devices data


(MIB) using Simple Network agent data
Management Protocol (SNMP)
agent data
managed device
NETCONF/YANG managed device
• more abstract, network-wide, holistic
• emphasis on multi-device configuration agent data

management. agent data


• YANG: data modeling language managed device
• NETCONF: communicate YANG-compatible managed device

actions/data to/from/among remote devices


12-2024 IT005–Computer Networks Week 14: 96
SNMP protocol

Two ways to convey MIB info, commands:

managing data managing data


server/controller server/controller

request

response trap message

agent data agent data

managed device managed device

request/response mode trap mode


12-2024 IT005–Computer Networks Week 14: 97
SNMP protocol: message types

Message type Function


GetRequest manager-to-agent: “get me data”
GetNextRequest (data instance, next data in list,
GetBulkRequest block of data).

SetRequest manager-to-agent: set MIB value

Response Agent-to-manager: value, response


to Request
Trap Agent-to-manager: inform manager
of exceptional event

12-2024 IT005–Computer Networks Week 14: 98


SNMP protocol: message formats

Get/set header Variables to get/set


PDU Error
Request Error
message types 0-3 type Status Name Value Name Value ….
ID Index
(0-3) (0-5)

Trap header Trap info

PDU Trap
message type 4 type Enterprise Agent Type
Specific Time
Name Value ….
Addr code stamp
4 (0-7)

SNMP PDU

12-2024 IT005–Computer Networks Week 14: 99


SNMP: Management Information
Base (MIB)
 managed device’s operational (and some configuration) data agent data

 gathered into device MIB module


• 400 MIB modules defined in RFC’s; many more vendor-specific MIBs
 Structure of Management Information (SMI): data definition language
 example MIB variables for UDP protocol:
Object ID Name Type Comments
1.3.6.1.2.1.7.1 UDPInDatagrams 32-bit counter total # datagrams delivered
1.3.6.1.2.1.7.2 UDPNoPorts 32-bit counter # undeliverable datagrams (no application at port)
1.3.6.1.2.1.7.3 UDInErrors 32-bit counter # undeliverable datagrams (all other reasons)
1.3.6.1.2.1.7.4 UDPOutDatagrams 32-bit counter total # datagrams sent
1.3.6.1.2.1.7.5 udpTable SEQUENCE one entry for each port currently in use

12-2024 IT005–Computer Networks Week 14: 100


NETCONF overview
 goal: actively manage/configure devices network-wide
 operates between managing server and managed network devices
• actions: retrieve, set, modify, activate configurations
• atomic-commit actions over multiple devices
• query operational data and statistics
• subscribe to notifications from devices
 remote procedure call (RPC) paradigm
• NETCONF protocol messages encoded in XML
• exchanged over secure, reliable transport (e.g., TLS) protocol

12-2024 IT005–Computer Networks Week 14: 101


NETCONF initialization, exchange,
close

managing agent data


server/controller Session initiation,
capabilities exchange: <hello>
data


<rpc>
<rpc-reply>



<rpc>
<rpc-reply>



<notification>


<rpc>
<rpc-reply>


Session close: <close-session>
12-2024 IT005–Computer Networks Week 14: 102
Selected NETCONF Operations

NETCONF Operation Description


<get-config> Retrieve all or part of a given configuration. A device may have multiple
configurations.
<get> Retrieve all or part of both configuration state and operational state data.
<edit-config> Change specified (possibly running) configuration at managed device.
Managed device <rpc-reply> contains <ok> or <rpcerror> with rollback.
<lock>, <unlock> Lock (unlock) configuration datastore at managed device (to lock out
NETCONF, SNMP, or CLIs commands from other sources).
<create-subscription>, Enable event notification subscription from managed device
<notification>

12-2024 IT005–Computer Networks Week 14: 103


Sample NETCONF RPC message

note message id

change a configuration

change the running configuration

change MTU of Ethernet 0/0 interface to 1500

12-2024 IT005–Computer Networks Week 14: 104


YANG
 data modeling language used to specify
structure, syntax, semantics of managing data
server/controller
NETCONF network management data
• built-in data types, like SMI NETCONF RPC message
 XML document describing device, <edit-config>
YANG-generated XML
capabilities can be generated from </edit-config> YANG
YANG description generated
 can express constraints among data that
must be satisfied by a valid NETCONF
configuration agent data

• ensure NETCONF configurations satisfy


correctness, consistency constraints

12-2024 IT005–Computer Networks Week 14: 105


Network layer: Summary
we’ve learned a lot!
 approaches to network control plane
• per-router control (traditional)
• logically centralized control (software defined networking)
 traditional routing algorithms
• implementation in Internet: OSPF , BGP
 SDN controllers
• implementation in practice: ODL, ONOS
 Internet Control Message Protocol
 network management
next stop: link layer!
12-2024 IT005–Computer Networks Week 14: 106
Network layer, control plane: Done!
 introduction
 routing protocols
 link state
 distance vector
 intra-ISP routing: OSPF
 routing among ISPs: BGP
 SDN control plane  network management,
 Internet Control Message configuration
Protocol • SNMP
• NETCONF/YANG

12-2024 IT005–Computer Networks Week 14: 107


Additional Chapter 5 slides

12-2024 IT005–Computer Networks Week 14: 108


Distance vector: another example
cost to cost to
Dx() x y z x y z
x 0 2 7 x 0 2 3

from
from

y ∞∞ ∞ y 2 0 1 Dx(z) = min{cx,y+ Dy(z), cx,z+ Dz(z)}


z ∞∞ ∞ z 7 1 0
= min{2+1 , 7+0} = 3
cost to y
Dy() x y z
Dx(y) = min{cx,y + Dy(y), cx,z+ Dz(y)}
2 1
x ∞ ∞ ∞ = min{2+0 , 7+1} = 2
x z
7
from

y 2 0 1
z ∞∞ ∞

cost to
Dz() x y z
x ∞∞ ∞
from

y ∞∞ ∞
z 7 1 0
time
12-2024 IT005–Computer Networks Week 14: 109
Distance vector: another example
cost to cost to cost to
Dx() x y z x y z x y z
x 0 2 7 x 0 2 3 x 0 2 3

from
from

y ∞∞ ∞ y 2 0 1 y 2 0 1

from
z ∞∞ ∞ z 7 1 0 z 3 1 0

cost to cost to cost to y


Dy() x y z x y z x y z 2 1
x ∞ ∞ ∞ x 0 2 7 x 0 2 3
x z
7
from

y 2 0 1 y 2 0 1
from
y 2 0 1

from
z ∞∞ ∞ z 7 1 0 z 3 1 0

cost to cost to cost to


Dz() x y z x y z x y z

x ∞∞ ∞ x 0 2 7 x 0 2 3
from

from
y 2 0 1 y 2 0 1
from

y ∞∞ ∞
z 7 1 0 z 3 1 0 z 3 1 0
time
12-2024 IT005–Computer Networks Week 14: 110

You might also like