You are on page 1of 63

IP Addressing: introduction 223.1.1.

1
• IP address: 32-bit
223.1.2.1
identifier for host, router 223.1.1.2
223.1.1.4 223.1.2.9
interface
• interface: connection 223.1.1.3 223.1.3.27
223.1.2.2

between host/router and


physical link
– router’s typically have 223.1.3.2
223.1.3.1
multiple interfaces
– host may have multiple
interfaces
– IP addresses associated 223.1.1.1 = 11011111 00000001 00000001 00000001
with each interface
223 1 1 1
• IP address:
IP Addressing 223.1.1.1

– network part/prefix (high 223.1.2.1


order bits) 223.1.1.2
223.1.1.4 223.1.2.9
– host part (low order bits)
– Additional hosts to 223.1.1 223.1.2.2
network would have 223.1.1.3 223.1.3.27
address of 223.1.1.xxx
LAN
• What’s a network ? (from
IP address perspective) 223.1.3.1 223.1.3.2
– device interfaces with
same network part of IP
address
– can physically reach each network consisting of 3 IP networks
other without intervening (for IP addresses starting with 223,
router first 24 bits are network address)
223.1.1.2

IP Addressing
223.1.1.1 223.1.1.4

How to find the networks?


223.1.1.3
• Detach each interface R1
from router, host 223.1.9.2 223.1.7.0
• create “islands of isolated
networks
R2
• There are 6 networks on 223.1.9.1 223.1.7.1
right incl. that joining 223.1.8.1 223.1.8.0
R3
R1R2, R2R3, R1R3. 223.1.2.6 223.1.3.27

223.1.2.1 223.1.2.2 223.1.3.1 223.1.3.2


IP Addresses
given notion of “network”, let’s re-examine IP addresses:

“class-full” addressing: 4 shown, 5th was for future use


beginning with 11110
class
1.0.0.0 to
A 0 network host 127.255.255.255

B network 128.0.0.0 to
10 host
191.255.255.255
192.0.0.0 to
C 110 network host
223.255.255.255
224.0.0.0 to
D 1110 multicast address
239.255.255.255

32 bits
IP Addresses (Class A, B, C. D later)
1.0.0.0 to
A 0 network host 127.255.255.255
 2^7 networks (first bit is 0)
 2^(24) interfaces

B network 128.0.0.0 to
10 host
191.255.255.255
 2^(14) networks (first 2 bits are 10)
 2^(16) interfaces
192.0.0.0 to
C 110 network host
223.255.255.255
 2^(21) networks (first 3 bits are 110)
 2^(8) interfaces
Classful addressing
 Class A, B, C networks require 1, 2 and 3 bytes for the
network portion.
 E.g., Class C networks can accommodate only 2^8-2 =
254 hosts (2 are reserved). Small for most medium to
large organizations.
 However Class B supports 65,634 hosts – too large.
An organization with 2000 hosts ended up with class B
addressing – address space was ill used.
 Therefore in 1993, Classless Interdomain Routing
(CIDR) was introduced.
IP addressing: CIDR (RFC 1519)
• CIDR: Classless InterDomain Routing
– network portion of address of arbitrary length
– address format: a.b.c.d/x, where x is # bits in network portion
of address
• Classful/CIDR addressing example:
– Prev. example with 2000 hosts. Therefore 2^16 – 2000 = 63K
addresses were unused.
– CIDR: Network part: 21 bits. Host part: 2^11 = 2048 hosts.

network host
part part
11001000 00010111 00010000 00000000
200.23.16.0/21
IP addresses: how to get one?
Q: How does host get IP address?

• hard-coded by system admin in a file


– Wintel: control-panel->network->configuration-
>tcp/ip->properties
– UNIX: /etc/rc.config
• DHCP: Dynamic Host Configuration Protocol:
dynamically get address from a server
– “plug-and-play”
(more shortly)
IP addresses: how to get one?
Q: How does network get network part of IP addr?
A: gets allocated portion of its provider ISP’s address
space

ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20


(allocated to ISP). It is divided into 8 equal sized blocks.
Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23
Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23
Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23
... ….. …. ….
Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23
Hierarchical addressing: route aggregation
Hierarchical addressing allows efficient advertisement of routing
information: “Fly-by-night-ISP requests that all datagrams whose first
20 address bits match 200.23.16.0/20. The world doesn’t know that
within this there are 8 other orgs. each with their own networks.
Organization 0
200.23.16.0/23
Organization 1
“Send me anything
200.23.18.0/23 with addresses
Organization 2 beginning
200.23.20.0/23 . Fly-By-Night-ISP 200.23.16.0/20”
.
. . Internet
.
Organization 7 .
200.23.30.0/23
“Send me anything
ISPs-R-Us
with addresses
beginning
199.31.0.0/16”
Hierarchical addressing: more specific
routes
Suppose Org. 1 dislikes Fly-by-night-ISP’s service and wants to move to
ISPs-R-Us? Org.1 keeps its addresses in 200.23.18.0/23 but now
ISPs-R-Us advertises 200.23.18.0/23.
When other routers see 200.23.16.0/20 &
Organization 0 200.23.18.0/23 and want to route to 200.23.18.0/23

200.23.16.0/23 They will use the longest prefix matching rule


and send to ISPs-R-Us

“Send me anything
Organization 2
with addresses
200.23.20.0/23 . Fly-By-Night-ISP
. beginning
. . 200.23.16.0/20” Internet
.
Organization 7 .
200.23.30.0/23
ISPs-R-Us “Send me anything
with addresses
beginning 199.31.0.0/16
Organization 1
or 200.23.18.0/23”
200.23.18.0/23
IP addressing: the last word...

Q: How does an ISP get block of addresses?


A: ICANN: Internet Corporation for Assigned
Names and Numbers (guidelines in RFC 2050)
– allocates addresses
– manages DNS
– assigns domain names, resolves disputes

Little more on DHCP
Network admin. can configure DHCP so that a given host gets a
persistent IP address, i.e., each time a host joins the network
it gets the same IP address.
 Problem: Many ISP’s don’t have as many IP addresses as there
are hosts.
 Solution: If an ISP has 4000 customers but only 400 are online
at a given time. In that case it might only need a block of 512
addresses (e.g., 200.23.30.0/23)
 Each time a host joins the network it is assigned a new and
arbitrary IP address
 DHCP server updates list of available addresses
Getting a datagram from source to dest.
IP datagram: forwarding table in A
misc source dest Dest. Net. next router Nhops
data
fields IP addr IP addr 223.1.1 1
• Simplified IP hdr above 223.1.2 223.1.1.4 2
• datagram remains unchanged, as it 223.1.3 223.1.1.4 2
travels source to destination
• addr fields of interest A 223.1.1.1
• Let A send datagram to B 223.1.2.1
• IP proto. in A sees 223.1.1 in 223.1.1.2
223.1.1.4 223.1.2.9
forwarding table matching leading
B
bits of IP address of B with one 223.1.2.2
hop, i.e., B is on same network. 223.1.1.3 223.1.3.27 E
• A puts datagram to link-layer 223.1.3.1 223.1.3.2
protocol whose job it is to move
datagram to B.
Getting a datagram from source to dest.
forwarding table in A
misc Dest. Net. next router Nhops
data
fields 223.1.1.1 223.1.2.2
223.1.1 1
Starting at A, dest. E: 223.1.2 223.1.1.4 2
223.1.3 223.1.1.4 2
• look up network address of E in
forwarding table
A 223.1.1.1
• E on different network
– A, E not directly attached 223.1.2.1
223.1.1.2
• routing table: next hop router to E 223.1.1.4 223.1.2.9
is 223.1.1.4 B
223.1.2.2
• link layer sends datagram to 223.1.1.3 223.1.3.27 E
router 223.1.1.4 inside link-layer
frame 223.1.3.1 223.1.3.2

• datagram arrives at 223.1.1.4


• continued…..
Getting a datagram from source to dest.
forwarding table in router
misc Dest. Net router Nhops interface
data
fields 223.1.1.1 223.1.2.2
223.1.1 - 1 223.1.1.4
Arriving at 223.1.4, destined for 223.1.2.0/24 - 1 223.1.2.9
223.1.2.2 223.1.3 - 1 223.1.3.27
• look up network address of E in
router’s forwarding table A 223.1.1.1
• E on same network as router’s 223.1.2.1
interface 223.1.2.9 223.1.1.2
– router, E directly attached 223.1.1.4 223.1.2.9

• link layer sends datagram to


B
223.1.2.2
223.1.2.2 inside link-layer frame via 223.1.1.3 223.1.3.27 E
interface 223.1.2.9
223.1.3.1 223.1.3.2
• datagram arrives at 223.1.2.2!!!
(hooray!)
More on forwarding tables
• Forwarding tables in routers are central

• How are forwarding tables configured and maintained


for large networks with multiple paths?
– These tables must allow good paths

• As it turns out, routing algorithms have the role of


configuring and maintaining these tables.
IP datagram format
IP protocol version 32 bits
number total datagram
header length type of length (bytes)
ver head. length
(bytes) len service for
“type” of data fragment fragmentation/
16-bit identifier flgs
offset reassembly
max number time to upper Internet
remaining hops live layer checksum
(decremented at
32 bit source IP address
each router)
32 bit destination IP address
upper layer protocol
to deliver payload to Options (if any) E.g. timestamp,
record route
how much overhead data taken, specify
with TCP? (variable length, list of routers
• 20 bytes of TCP typically a TCP to visit.
• 20 bytes of IP or UDP segment)
• = 40 bytes + app
layer overhead
IP datagram format (cont’d)
• Version number: IPv4 or IPv6. Datagram format changes with
this number. For now we will describe v4.
• Header length: v4 datagram contains a variable number of
options. It indicates where data starts
• Type of service: Permits different types of v4 datagrams.
Example: Cisco routers examine the first three bits and
interprets these as defining different levels of service to be
provided by the router. This is a policy issue and is
determined by routers admin.
• Datagram length: Total length of header + data (i.e.,
datagram). Theoretical max. is 2^16 but datagrams are rarely
greater than 1500 bytes and are frequently set to 576 bytes.
IP datagram format (cont’d)
• Identifier, flags, frag. offset: To be discussed.
• Header length: v4 d’gram contains a variable number of
options. It indicates where data starts
• Time to live: TTL prevents d’grams from ending in router
loops & living forever. TTL = TTL –1 on passage through
router; TTL=0 means discard d’gram.
• Protocol: Only used when IP d’gram reaches final destination.
Value 6 means pass to TCP, 17 to UDP. The protocol # is the
“glue” that holds the network and transport layers together.
• Header checksum : Discussed in TCP (transport layer).
Routers discard d’grams that have bit errors. Recomputed at
each router as at least TTL changes.
IP datagram format (cont’d)
• Identifier, flags, frag. offset: To be discussed.
• Header length: v4 d’gram contains a variable number of
options. It indicates where data starts
• Time to live: TTL prevents d’grams from ending in router
loops & living forever. TTL = TTL –1 on passage through
router; TTL=0 means discard d’gram.
• Protocol: Only used when IP d’gram reaches final destination.
Value 6 means pass to TCP, 17 to UDP. The protocol # is the
“glue” that holds the network and transport layers together.
• Header checksum : Discussed in TCP (transport layer).
Routers discard d’grams that have bit errors. Recomputed at
each router as at least TTL changes.
IP datagram format (cont’d)
• Source and dest IP addresses: We know about this.
However, 255.255.255.255 is a special IP add. When
a datagram has this IP, then the message is delivered
to all hosts on the same network. Routers could also
forward it to neighbouring networks.
• Options: Options field permits extensions to IP
header. Options are simply not used much today and
are dropped in IPv6.
• Data (payload): Most of the time, IP carries TCP or
UDP, but ICMP messages could be carried too.
IP Fragmentation & Reassembly
• network links have MTU
(max.transfer size) - largest
possible link-level frame. fragmentation:
– different link types, in: one large datagram
out: 3 smaller datagrams
different MTUs
• large IP datagram divided
(“fragmented”) within net
– one datagram becomes reassembly
several datagrams
– “reassembled” only at final
destination
– IP header bits used to
identify, order related
fragments
IP Fragmentation and Reassembly
• IP header has
identification (x), flag, length ID fragflag offset
and fragmentation fields =4000 =x =0 =0
• Example: 4000byte
One large datagram becomes
d’gram (20byte header several smaller datagrams
+ 3980 IP payload).
• MTU = 1500bytes length ID fragflag offset
=1500 =x =1 =0
• Frag 1: 1480bytes +
20byte header length ID fragflag offset
=1500 =x =1 =1480
• Frag 2: 1480bytes +
20byte header length ID fragflag offset
=1040 =x =0 =2960
• Frag 3: 3980-2*1480
bytes + 20byte header
ICMP: Internet Control Message Protocol
Type Code description
0 0 echo reply (ping)
3 0 dest. network unreachable
• used by hosts, routers, gateways to3 1 dest host unreachable
communication network-level 3 2 dest protocol unreachable
information 3 3 dest port unreachable
– error reporting: unreachable 3 6 dest network unknown
host, network, port, protocol 3 7 dest host unknown
4 0 source quench (congestion
– echo request/reply (used by
control - not used)
ping)
8 0 echo request (ping)
• network-layer “above” IP: 9 0 route advertisement
– ICMP msgs carried in IP 10 0 router discovery
datagrams 11 0 TTL expired
• ICMP message: type, code plus 12 0 bad IP header
first 8 bytes of IP datagram causing13 0 Timestamp
error 14 0 Timestamp reply
15 0 Information request
16 0 Information reply
ICMP: Internet Control Message Protocol
32 bits
Type Code Checksum

Unused

IP header + 64 bits of original datagram

Most frequent ICMP message format


ICMP: Ping
32 bits
Type Code Checksum

Identifier Sequence Number

Data ….

Ping uses Echo/Echo Reply

• Ping uses Echo/Echo Reply


•TYPE = 8 for Echo
•TYPE = 0 for Echo reply, a new value of IP and Ping checksum is
calculated.
•Ping computes time between sending Echo d’grams and the
corresponding reply and computes RTT from that.
Ping – Example session
•Pinging stymie.gsfc.nasa.gov [128.183.8.93] with 32
bytes of data:

•Reply from 128.183.8.93: bytes=32 time<10ms TTL=64


•Reply from 128.183.8.93: bytes=32 time<10ms TTL=64
•Reply from 128.183.8.93: bytes=32 time<10ms TTL=64
•Reply from 128.183.8.93: bytes=32 time<10ms TTL=64

•Ping statistics for 128.183.8.93:


• Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
•Approximate round trip times in milli-seconds:
• Minimum = 0ms, Maximum = 0ms, Average = 0ms
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
DHCP client-server scenario

A 223.1.1.1 DHCP 223.1.2.1


server
223.1.1.2
223.1.1.4 223.1.2.9
B
223.1.2.2 arriving DHCP
223.1.1.3 223.1.3.27 E client needs
address in this
223.1.3.1 223.1.3.2
network
DHCP client-server scenario
DHCP server: 223.1.2.5 arriving
DHCP discover
client
src : 0.0.0.0, 68 (port)
dest.: 255.255.255.255,67
yiaddr: 0.0.0.0
transaction ID: 654

DHCP offer
src: 223.1.2.5, 67 There may be multiple
dest: 255.255.255.255, 68
yiaddr: 223.1.2.4
DHCP servers responding
transaction ID: 654 with a “DHCP offer”
Lifetime (of IP Add): 3600 secs
DHCP request
src: 0.0.0.0, 68 Client will choose from
dest:: 255.255.255.255, 67 one of many servers – if
yiaddrr: 223.1.2.4
more than one server
transaction ID: 655
Lifetime: 3600 secs responds.
time

DHCP ACK
src: 223.1.2.5, 67
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
transaction ID: 655
Lifetime: 3600 secs
NAT: Network Address Translation
1) Every IP-capable device needs an IP address.
2) Proliferation of Small Office/Home Office (SOHO) networks.
3) The range of addresses needs to be larger.

rest of local network


Internet (e.g., home network)
10.0.0/24 10.0.0.1

10.0.0.4
10.0.0.2
138.76.29.7
NAT enabled
10.0.0.3
router
All datagrams leaving local Datagrams with source or
network have same single source destination in this network
NAT IP address: 138.76.29.7, have 10.0.0/24 address for
different source port numbers source, destination (as usual)
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).
NAT: Network Address Translation
Implementation: 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
Arbitrarily chosen by NAT router

NAT: Network Address Translation


NAT translation table
2: NAT router 1: host 10.0.0.1
WAN side addr LAN side addr
changes datagram sends datagram to
138.76.29.7, 5001 10.0.0.1, 3345 128.119.40, 80
source addr from
…… ……
10.0.0.1, 3345 to
138.76.29.7, 5001, S: 10.0.0.1, 3345
updates table D: 128.119.40.186, 80
10.0.0.1
1
S: 138.76.29.7, 5001
2 D: 128.119.40.186, 80 10.0.0.4
10.0.0.2
138.76.29.7 S: 128.119.40.186, 80
D: 10.0.0.1, 3345 4
S: 128.119.40.186, 80
D: 138.76.29.7, 5001 3 10.0.0.3
4: NAT router
3: Reply arrives changes datagram
dest. address: dest addr from
138.76.29.7, 5001 138.76.29.7, 5001 to 10.0.0.1, 3345
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,
eg, P2P applications
– address shortage should instead be solved by IPv6
Chapter 4 roadmap
4.1 Introduction and Network Service Models
4.2 Routing Principles
4.3 Hierarchical Routing
4.4 The Internet (IP) Protocol
4.5 Routing in the Internet
– 4.5.1 Intra-AS routing: RIP and OSPF
– 4.5.2 Inter-AS routing: BGP
4.6 What’s Inside a Router?
4.7 IPv6
4.8 Multicast Routing
4.9 Mobility
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
Internet AS Hierarchy
Inter-AS border (exterior gateway) routers

Intra-AS interior (gateway) routers


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)
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
RIP: Example
z
w x y
A D B

C
Destination Network Next Router Num. of hops to dest.
w A 2
y B 2
z B 7
x -- 1
…. …. ....
Routing table in D
RIP: Example
Dest Next hops
w - - Advertisement
x - - from A to D
z C 4
…. … ...
Note # of hops < 7 (see prev. table)
z
w x y
A D B

C
Destination Network Next Router Num. of hops to dest.
w A 2
y B 2
z B A 7 5
x -- 1
…. …. ....
Routing table in D
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)
RIP Table processing
• RIP routing tables managed by application-level
process called route-d (daemon)
• advertisements sent in UDP packets, periodically
repeated routed routed

Transprt Transprt
(UDP) (UDP)
network forwarding forwarding network
(IP) table table (IP)
link link
physical physical
RIP Table example (continued)
Router: giroflee.eurocom.fr
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

• 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)
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
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.
Hierarchical OSPF
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.
Inter-AS routing in the Internet: BGP
R4
R5 BGP
R3 AS3
(OSPF intra-AS
AS1 AS2 routing)
(RIP intra-AS (OSPF
routing) BGP intra-AS
routing)
R1 R2

Figure 4.5.2-new2: BGP use for inter-domain routing


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


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
BGP: controlling who routes to you
legend: provider
B network
X
W A
customer
C network:

Figure 4.5-BGPnew: a simple BGP scenario


• 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
BGP: controlling who routes to you
legend: provider
B network
X
W A
customer
C network:

Figure 4.5-BGPnew: a simple BGP scenario


• A advertises to B the path AW
• B advertises to W 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!
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.
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
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
IPv6
• Initial motivation: 32-bit address space
completely allocated by 2008.
• Additional motivation:
– header format helps speed processing/forwarding
– header changes to facilitate QoS
– new “anycast” address: route to “best” of several
replicated servers
• IPv6 datagram format:
– fixed-length 40 byte header
– no fragmentation allowed
IPv6 Header (Cont)
Priority: identify priority among datagrams in flow
Flow Label: identify datagrams in same “flow.”
(concept of“flow” not well defined).
Next header: identify upper layer protocol for data
Other Changes from IPv4
• Checksum: removed entirely to reduce
processing time at each hop
• Options: allowed, but outside of header,
indicated by “Next Header” field
• ICMPv6: new version of ICMP
– additional message types, e.g. “Packet Too
Big”
– multicast group management functions
Transition From IPv4 To IPv6
• Not all routers can be upgraded simultaneous
– no “flag days”
– How will the network operate with mixed IPv4 and
IPv6 routers?
• Two proposed approaches:
– Dual Stack: some routers with dual stack (v6, v4)
can “translate” between formats
– Tunneling: IPv6 carried as payload in IPv4
datagram among IPv4 routers

You might also like