1
SC250Computer Networking I
Network Layer and IP (2)
http://lcawww.epfl.ch
Prof. Matthias Grossglauser
LCA/I&C
2
Objectives
Internet routing in practice Intra-AS routing: RIP, OSPF Inter-AS routing: BGP
Some other protocols/topics of interest ICMP, the IP “signaling” protocol DHCP to obtain an IP address automatically NAT
3Network Layer 4- 3
Network Layer and IP
Routing in the InternetIntra-AS routing: RIP and OSPFInter-AS routing: BGP
4Network Layer 4- 4
Routing in the Internet
The Global Internet consists of Autonomous Systems (AS) interconnected with each other: Stub AS: small corporation: one connection to other AS’s Multihomed AS: large corporation (no transit): multiple
connections to other AS’s Transit AS: provider, hooking many AS’s together
Two-level routing: Intra-AS: administrator responsible for choice of routing
algorithm within network Inter-AS: unique standard for inter-AS routing: BGP
5Network Layer 4- 5
Internet AS Hierarchy
In t ra- AS border (exter ior gateway) routers
In ter- AS in ter ior (gateway) routers
6Network Layer 4- 6
Intra-AS Routing
Also known as Interior Gateway Protocols (IGP)
Most common Intra-AS routing protocols:
RIP: Routing Information Protocol
OSPF: Open Shortest Path First
IGRP: Interior Gateway Routing Protocol (Cisco proprietary)
7Network Layer 4- 7
RIP (Routing Information Protocol)
Distance vector algorithm Included in BSD-UNIX Distribution in 1982 Distance metric: # of hops (max = 15 hops)
Can you guess why?
Distance vectors: exchanged among neighbors every 30 sec via Response Message (also called advertisement)
Each advertisement: list of up to 25 destination nets within AS
8Network Layer 4- 8
RIP: Example
Destination Network Next Router Num. of hops to dest. w A 2
y B 2 z B 7
x - - 1…. …. ....
w x y
z
A
C
D B
Rou t in g tab le in D
9Network Layer 4- 9
RIP: Example
Destination Network Next Router Num. of hops to dest. w A 2
y B 2 z B A 7 5
x - - 1…. …. ....
Rou t in g tab le in D
w x y
z
A
C
D B
Dest Next hops w - - x - - z C 4 …. … ...
Advertisementfrom A to D
10Network Layer 4- 10
RIP: Link Failure and Recovery
If no advertisement heard after 180 sec --> neighbor/link declared dead routes via neighbor invalidated new advertisements sent to neighbors neighbors in turn send out new advertisements (if tables
changed) link failure info quickly propagates to entire net poison reverse used to prevent ping-pong loops (infinite
distance = 16 hops)
11Network Layer 4- 11
RIP Table processing
RIP routing tables managed by application-level process called route-d (daemon)
advertisements sent in UDP packets, periodically repeated
physical
link
network forwarding (IP) table
Transport (UDP)
rou ted
physical
link
network (IP)
Transport (UDP)
rou ted
forwardingtable
12Network Layer 4- 12
RIP Table example (continued)
Router: giroflee.eurocom.fr
Three attached class C networks (LANs) Router only knows routes to attached LANs Default router used to “go up” Route multicast address: 224.0.0.0 Loopback interface (for debugging)
Destination Gateway Flags Ref Use Interface -------------------- -------------------- ----- ----- ------ --------- 127.0.0.1 127.0.0.1 UH 0 26492 lo0 192.168.2. 192.168.2.5 U 2 13 fa0 193.55.114. 193.55.114.6 U 3 58503 le0 192.168.3. 192.168.3.5 U 2 25 qaa0 224.0.0.0 193.55.114.6 U 3 0 le0 default 193.55.114.129 UG 0 143454
13Network Layer 4- 13
OSPF (Open Shortest Path First)
“open”: publicly available Uses Link State algorithm
LS packet dissemination Topology map at each node Route computation using Dijkstra’s algorithm
OSPF advertisement carries one entry per neighbor router
Advertisements disseminated to entire AS (via flooding) Carried in OSPF messages directly over IP (rather than
TCP or UDP
14Network Layer 4- 14
OSPF “advanced” features (not in RIP)
Security: all OSPF messages authenticated (to prevent malicious intrusion)
Multiple same-cost paths allowed (only one path in RIP)
For each link, multiple cost metrics for different TOS (e.g., satellite link cost set “low” for best effort; high for real time)
Integrated uni- and multicast support: Multicast OSPF (MOSPF) uses same topology data base as
OSPF
Hierarchical OSPF in large domains.
16Network Layer 4- 16
Hierarchical OSPF
Two-level hierarchy: local area, backbone. Link-state advertisements only in area each nodes has detailed area topology; only
know direction (shortest path) to nets in other areas.
Area border routers: “summarize” distances to nets in own area, advertise to other Area Border routers.
Backbone routers: run OSPF routing limited to backbone.
Boundary routers: connect to other AS’s.
17Network Layer 4- 17
Inter-AS routing in the Internet: BGP
Figure 4.5.2-new2: BGP use for inter-domain routing
AS2 (OSPF
int ra-AS r out ing)
AS1 (RI P int r a-AS
r out ing) BGP
AS3 (OSPF int ra-AS
r out ing)
BGP
R1 R2
R3
R4
R5
18Network Layer 4- 18
Internet inter-AS routing: BGP
BGP (Border Gateway Protocol): the de facto standard
Path Vector protocol: similar to Distance Vector protocol each Border Gateway broadcast to neighbors (peers)
entire path (i.e., sequence of AS’s) to destination BGP routes to networks (ASs), not individual hosts E.g., Gateway X may send its path to dest. Z:
Path (X,Z) = X,Y1,Y2,Y3,…,Z
19Network Layer 4- 19
Internet inter-AS routing: BGP
Suppose: gateway X send its path to peer gateway W W may or may not select path offered by X
cost, policy (don’t route via competitors AS), loop prevention reasons.
If W selects path advertised by X, then:
Path (W,Z) = w, Path (X,Z) Note: X can control incoming traffic by controlling it
route advertisements to peers: e.g., don’t want to route traffic to Z -> don’t
advertise any routes to Z
20Network Layer 4- 20
BGP: controlling who routes to you
Figure 4.5 -BGPnew: a simple BGP scenario
A
B
C
W X
Y
legend:
customer network:
provider network
A,B,C are provider networks X,W,Y are customer (of provider networks) X is dual-homed: attached to two networks
X does not want to route from B via X to C .. so X will not advertise to B a route to C
21Network Layer 4- 21
BGP: controlling who routes to you
Figure 4.5 -BGPnew: a simple BGP scenario
A
B
C
W X
Y
legend:
customer network:
provider network
A advertises to B the path AW B advertises to X the path BAW Should B advertise to C the path BAW?
No way! B gets no “revenue” for routing CBAW since neither W nor C are B’s customers
B wants to force C to route to w via A B wants to route only to/from its customers!
22Network Layer 4- 22
BGP operation
Q: What does a BGP router do? Receiving and filtering route advertisements
from directly attached neighbor(s). Route selection.
To route to destination X, which path (of several advertised) will be taken?
Sending route advertisements to neighbors.
23Network Layer 4- 23
BGP messages
BGP messages exchanged using TCP. BGP messages:
OPEN: opens TCP connection to peer and authenticates sender
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
24Network Layer 4- 24
Why different Intra- and Inter-AS routing ?
Policy: Inter-AS: admin wants control over how its traffic
routed, who routes through its net. Intra-AS: single admin, so no policy decisions
needed
Scale: hierarchical routing saves table size, reduced
update traffic
Performance: Intra-AS: can focus on performance Inter-AS: policy may dominate over performance
25
Network Layer and IP
ICMP: Internet Control Message ProtocolDHCP: Dynamic Host Configuration ProtocolNAT: Network Address Translation
26Network Layer 4- 26
ICMP: Internet Control Message Protocol
used by hosts, routers, gateways to communication network-level information
error reporting: unreachable host, network, port, protocol
echo request/reply (used by ping)
network-layer “above” IP: ICMP msgs carried in IP
datagrams ICMP message: type, code
plus first 8 bytes of IP datagram causing error
Type Code description0 0 echo reply (ping)3 0 dest. network unreachable3 1 dest host unreachable3 2 dest protocol unreachable3 3 dest port unreachable3 6 dest network unknown3 7 dest host unknown4 0 source quench (congestion control - not used)8 0 echo request (ping)9 0 route advertisement10 0 router discovery11 0 TTL expired12 0 bad IP header
27Network Layer 4- 27
DHCP: Dynamic Host Configuration Protocol
Goal: allow host to dynamically obtain its IP address from network server when it joins network Can renew its lease on address in use Allows reuse of addresses (only hold address while
connected an “on” Support for mobile users who want to join network (more
shortly) DHCP overview:
host broadcasts “DHCP discover” msg DHCP server responds with “DHCP offer” msg host requests IP address: “DHCP request” msg DHCP server sends address: “DHCP ack” msg
28Network Layer 4- 28
DHCP client-server scenario
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
A
BE
DHCP server
arriving DHCP
client needs
address in this
network
29Network Layer 4- 29
DHCP client-server scenarioDHCP server : 223.1.2.5 ar r iving
cl ien t
t ime
DHCP discover
src : 0.0.0.0, 68 dest.: 255.255.255.255,67yiaddr: 0.0.0.0transaction ID: 654
DHCP offersrc: 223.1.2.5, 67 dest: 255.255.255.255, 68yiaddrr: 223.1.2.4transaction ID: 654Lifetime: 3600 secs
DHCP requestsrc: 0.0.0.0, 68 dest:: 255.255.255.255, 67yiaddrr: 223.1.2.4transaction ID: 655Lifetime: 3600 secs
DHCP ACKsrc: 223.1.2.5, 67 dest: 255.255.255.255, 68yiaddrr: 223.1.2.4transaction ID: 655Lifetime: 3600 secs
30Network Layer 4- 30
NAT: Network Address Translation
10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.4
138.76.29.7
local n etw ork(e.g., h om e n etw ork)
10 .0 .0 / 24
rest ofIn tern et
Datagrams with source or dest inat ion in th is networkhave 10.0.0/ 24 address for
source, dest inat ion (as usual)
All datagrams leaving localnetwork have same single
source NAT IP address: 138.76.29.7,
dif feren t source por t numbers
31Network Layer 4- 31
NAT: Network Address Translation
Motivation: local network uses just one IP address as far as outside word is concerned: no need to be allocated range of addresses from ISP: - just
one IP address is used for all devices can change addresses of devices in local network without
notifying outside world can change ISP without changing addresses of devices in
local network devices inside local net not explicitly addressable, visible by
outside world (a security plus).
32Network Layer 4- 32
NAT: Network Address TranslationImplementation: NAT router must:
outgoing datagrams: replace (source IP address, port #) of every outgoing datagram to (NAT IP address, new port #). . . remote clients/servers will respond using
(NAT IP address, new port #) as destination addr.
remember (in NAT translation table) every (source IP address, port #) to (NAT IP address, new port #) translation pair
incoming datagrams: replace (NAT IP address, new port #) in dest fields of every incoming datagram with corresponding (source IP address, port #) stored in NAT table
33Network Layer 4- 33
NAT: Network Address Translation
10.0.0.1
10.0.0.2
10.0.0.3
S: 10.0.0.1, 3345D: 128.119.40.186, 80
1
10.0.0.4
138.76.29.7
1: host 10.0.0.1 sends datagram to 128.119.40, 80
NAT translation tableWAN side addr LAN side addr
138.76.29.7, 5001 10.0.0.1, 3345…… ……
S: 128.119.40.186, 80 D: 10.0.0.1, 3345 4
S: 138.76.29.7, 5001D: 128.119.40.186, 802
2: NAT routerchanges datagramsource addr from10.0.0.1, 3345 to138.76.29.7, 5001,updates table
S: 128.119.40.186, 80 D: 138.76.29.7, 5001 3
3: Reply arrives dest. address: 138.76.29.7, 5001
4: NAT routerchanges datagramdest addr from138.76.29.7, 5001 to 10.0.0.1, 3345
34Network Layer 4- 34
NAT: Network Address Translation
16-bit port-number field: 60,000 simultaneous connections with a single LAN-
side address! NAT is controversial:
routers should only process up to layer 3 violates end-to-end argument
NAT possibility must be taken into account by app designers, e.g., P2P applications
address shortage should instead be solved by IPv6