119
Università degli Studi Roma Tre Dipartimento di Informatica e Automazione Computer Networks Research Group netkit lab bgp: transit as possible architectures for a transit provider, bad interactions between igp and bgp routing protocols, configuration of tunnels Description http://www.netkit.org/ Web [email protected] E-mail Luca Cittadini, Giuseppe Di Battista, Massimo Rimondini Author(s) 1.4 Version

UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

Università degli Studi Roma TreDipartimento di Informatica e AutomazioneComputer Networks Research Group

netkit lab

bgp: transit as

possible architectures for a transit provider, bad interactions between igp and bgp routing protocols, configuration of tunnels

Description

http://www.netkit.org/Web

[email protected]

Luca Cittadini, Giuseppe Di Battista, Massimo Rimondini

Author(s)

1.4Version

Page 2: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

scenario

� a transit as

� receives and propagates the full bgp routing table from/to its neighbors(customers, peers, providers)

� receives and forwards traffic across its neighbors

Page 3: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

scenario

transit as

isp 1 isp 2

Page 4: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

transit as: requirements

� problem: border routers must know each other’s routes

� solution: ibgp peerings (possibly full mesh)

transit as

isp 1 isp 2

Page 5: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

transit as: requirements

� problem: someone must tell bgp how to reach external next hops (recursive lookup)

� solution: igp

transit as

isp 1 isp 2

Page 6: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

transit as: requirements

� problem:� ibgp carries announcements between border routers

� igp carries traffic between border routers

so...� consistent routing between ibgp and igp must be guaranteed� even in the presence of bgp routing policies

� ibgp and igp should never disagree on the route to a destination

� solution: ???

Page 7: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

transit as: degrees of freedom

� internal routers must support traffic flows from/to neighboring ases� choice 1: redistribute bgp routes into the igp

� overgrowth of igp routing tables

� update churn from bgp affects the igp

� choice 2: route traffic flowing through via an ad-hoc overlay� internal routers know about border routers only

� bgp updates leak into the igp only if this changes the choice of the egress routers

Page 8: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

how to read

� browse through all the slides

� concentrate on specific topics� redistribution of bgp into the igp

� peering setup using loopback interfaces

� forwarding loops

� bad cross-protocol event timings

� administrative distance

� setup of an overlay network using tunnels

� asymmetric routing

Page 9: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

Università degli Studi Roma TreDipartimento di Informatica e AutomazioneComputer Networks Research Group

network topology

Page 10: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20

AS100

AS30

TRANSIT

ISP ISP

CUSTOMER

© Computer Networks Research Group Roma Tre

Page 11: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

© Computer Networks Research Group Roma Tre

Page 12: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

RIP

RIP

RIP

eBGP

eBGP

eBGP eBGP

RIP RIP

RIP

iBGP

iBGP

iBGP

© Computer Networks Research Group Roma Tre

Page 13: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

12.0.0.y

11.0.0.x

10.0.0.w

AS10

AS20 AS30

AS100

© Computer Networks Research Group Roma Tre

Page 14: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

eth02

AS10

AS20 AS30

AS100

eth01

A 11.0.0.0/30

eth11

eth210

eth02

eth09

eth15

eth16 eth2

5eth1

6 eth29

eth110

D 10.0.0.8/3010.0.0.0/30 E

F

10.0.0.4/30

B

11.0.0.4/30

C

11.0.0.8/30

eth02H I

eth06

eth05

eth19

eth010

eth114

eth113

eth21

M

100.0.0.0/8

lo2.2.2.2

lo3.3.3.3

lo1.1.1.1

12.0.0.0/30 12.0.0.4/30

eth01

G L

12.0.0.12/3012.0.0.8/30

© Computer Networks Research Group Roma Tre

Page 15: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

Università degli Studi Roma TreDipartimento di Informatica e AutomazioneComputer Networks Research Group

choice 1

redistribution

Page 16: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

transit as: interesting configurations

� bgp routing information is injected into rip

router ripnetwork eth1redistribute connectedredistribute bgp

router ripnetwork eth1redistribute connectedredistribute bgp

zebra rip configuration file

Page 17: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

transit as: interesting configurations

� bgp routing information is injected into rip

router ripnetwork eth1redistribute connectedredistribute bgp

router ripnetwork eth1redistribute connectedredistribute bgp

zebra rip configuration file

rip speaking interfaces can be specified by their name or network

address

rip speaking interfaces can be specified by their name or network

address

Page 18: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

transit as: bgp peerings

� bgp peerings are established on loopback interfaces� improved resiliency

� the peering stays up even if all the router’s physical interfaces are down

� two loopbacks for each border router of as10� ifconfig lo:1 2.2.2.2 netmask 255.255.255.255 up

� lo:1 is an ip alias used for the peerings

� the usual loopback address, lo , is still available

Page 19: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

transit as: bgp peerings

� be careful when configuring peerings on the loopbacks

� bgp complains if the source address of OPEN messages from a neighbor does not match the neighbor’s address configured in the peering (in this case, the loopback address)

� bgp messages come out of a physical interface, whose address is different from the loopback’s

� need to force the source address of bgp messages� update-source

� cisco says:You only have to use the update-source command when someone is peering to your loopback address

Page 20: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

transit as: bgp peerings

� note� update-source accepts an ip address or an interface

name� zebra does not allow to set the update-source to an alias

interface (e.g., lo:1 )

router bgp 10network 10.0.0.0/8network 12.0.0.0/30neighbor 1.1.1.1 remote-as 10neighbor 1.1.1.1 update-source 2.2.2.2neighbor 1.1.1.1 description as10rt1(iBGP)neighbor 3.3.3.3 remote-as 10neighbor 3.3.3.3 update-source 2.2.2.2neighbor 3.3.3.3 description as10rt3(iBGP)

router bgp 10network 10.0.0.0/8network 12.0.0.0/30neighbor 1.1.1.1 remote-as 10neighbor 1.1.1.1 update-source 2.2.2.2neighbor 1.1.1.1 description as10rt1(iBGP)neighbor 3.3.3.3 remote-as 10neighbor 3.3.3.3 update-source 2.2.2.2neighbor 3.3.3.3 description as10rt3(iBGP)

zebra bgp configuration file

Page 21: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

as10rt2:~# less /etc/zebra/bgpd.conf as10rt2:~# less /etc/zebra/bgpd.conf as10rt2:~# less /etc/zebra/bgpd.conf as10rt2:~# less /etc/zebra/bgpd.conf hostname as10rt2hostname as10rt2hostname as10rt2hostname as10rt2----bgpdbgpdbgpdbgpdpassword zebrapassword zebrapassword zebrapassword zebra............!!!!routerouterouteroute----map dePref permit 10map dePref permit 10map dePref permit 10map dePref permit 10

set localset localset localset local----preference 10preference 10preference 10preference 10!!!!router bgp 10router bgp 10router bgp 10router bgp 10

network 10.0.0.0/8network 10.0.0.0/8network 10.0.0.0/8network 10.0.0.0/8network 12.0.0.0/30network 12.0.0.0/30network 12.0.0.0/30network 12.0.0.0/30neighbor 1.1.1.1 remoteneighbor 1.1.1.1 remoteneighbor 1.1.1.1 remoteneighbor 1.1.1.1 remote----as 10as 10as 10as 10neighbor 1.1.1.1 updateneighbor 1.1.1.1 updateneighbor 1.1.1.1 updateneighbor 1.1.1.1 update----source losource losource losource loneighbor 1.1.1.1 description as10rt1(iBGP)neighbor 1.1.1.1 description as10rt1(iBGP)neighbor 1.1.1.1 description as10rt1(iBGP)neighbor 1.1.1.1 description as10rt1(iBGP)neighbor 3.3.3.3 remoteneighbor 3.3.3.3 remoteneighbor 3.3.3.3 remoteneighbor 3.3.3.3 remote----as 10as 10as 10as 10neighbor 3.3.3.3 updateneighbor 3.3.3.3 updateneighbor 3.3.3.3 updateneighbor 3.3.3.3 update----source losource losource losource loneighbor 3.3.3.3 description as10rt3(iBGP)neighbor 3.3.3.3 description as10rt3(iBGP)neighbor 3.3.3.3 description as10rt3(iBGP)neighbor 3.3.3.3 description as10rt3(iBGP)neighbor 12.0.0.2 remoteneighbor 12.0.0.2 remoteneighbor 12.0.0.2 remoteneighbor 12.0.0.2 remote----as 20as 20as 20as 20neighbor 12.0.0.2 description as20r1(eBGP)neighbor 12.0.0.2 description as20r1(eBGP)neighbor 12.0.0.2 description as20r1(eBGP)neighbor 12.0.0.2 description as20r1(eBGP)neighbor 12.0.0.2 routeneighbor 12.0.0.2 routeneighbor 12.0.0.2 routeneighbor 12.0.0.2 route----map dePref inmap dePref inmap dePref inmap dePref inneighbor 12.0.0.2 prefixneighbor 12.0.0.2 prefixneighbor 12.0.0.2 prefixneighbor 12.0.0.2 prefix----list noDefault inlist noDefault inlist noDefault inlist noDefault in

/etc/zebra/bgpd.conf/etc/zebra/bgpd.conf/etc/zebra/bgpd.conf/etc/zebra/bgpd.conf

transit as: some other flavouring

as10rt2as10rt2

as10rt2 prefers using the egress router as10rt3

as10rt2 prefers using the egress router as10rt3

© Computer Networks Research Group Roma Tre

B

H

FC

Page 22: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

transit as: routing tables

as10r6as10r6as10r6as10r6----ripd> show ip ripripd> show ip ripripd> show ip ripripd> show ip ripCodes: R Codes: R Codes: R Codes: R ---- RIP, C RIP, C RIP, C RIP, C ---- connected, O connected, O connected, O connected, O ---- OSPF, B OSPF, B OSPF, B OSPF, B ---- BGPBGPBGPBGP

(n) (n) (n) (n) ---- normal, (s) normal, (s) normal, (s) normal, (s) ---- static, (d) static, (d) static, (d) static, (d) ---- default, (r) default, (r) default, (r) default, (r) ---- redistribute,redistribute,redistribute,redistribute,(i) (i) (i) (i) ---- interfaceinterfaceinterfaceinterface

Network Next Hop Metric From Network Next Hop Metric From Network Next Hop Metric From Network Next Hop Metric From TimeTimeTimeTimeR(n) 1.1.1.1/32 10.0.0.10 3 10.0.0.10 R(n) 1.1.1.1/32 10.0.0.10 3 10.0.0.10 R(n) 1.1.1.1/32 10.0.0.10 3 10.0.0.10 R(n) 1.1.1.1/32 10.0.0.10 3 10.0.0.10 02:5802:5802:5802:58R(n) 2.2.2.2/32 10.0.0.5 3 10.0.0.5 R(n) 2.2.2.2/32 10.0.0.5 3 10.0.0.5 R(n) 2.2.2.2/32 10.0.0.5 3 10.0.0.5 R(n) 2.2.2.2/32 10.0.0.5 3 10.0.0.5 02:4302:4302:4302:43R(n) 3.3.3.3/32 11.0.0.10 2 11.0.0.10 R(n) 3.3.3.3/32 11.0.0.10 2 11.0.0.10 R(n) 3.3.3.3/32 11.0.0.10 2 11.0.0.10 R(n) 3.3.3.3/32 11.0.0.10 2 11.0.0.10 02:5502:5502:5502:55R(n) 10.0.0.0/30 10.0.0.10 2 10.0.0.10 R(n) 10.0.0.0/30 10.0.0.10 2 10.0.0.10 R(n) 10.0.0.0/30 10.0.0.10 2 10.0.0.10 R(n) 10.0.0.0/30 10.0.0.10 2 10.0.0.10 02:5802:5802:5802:58C(i) 10.0.0.4/30 0.0.0.0 1 selfC(i) 10.0.0.4/30 0.0.0.0 1 selfC(i) 10.0.0.4/30 0.0.0.0 1 selfC(i) 10.0.0.4/30 0.0.0.0 1 selfC(i) 10.0.0.8/30 0.0.0.0 1 selfC(i) 10.0.0.8/30 0.0.0.0 1 selfC(i) 10.0.0.8/30 0.0.0.0 1 selfC(i) 10.0.0.8/30 0.0.0.0 1 selfR(n) 11.0.0.0/30 10.0.0.10 2 10.0.0.10 R(n) 11.0.0.0/30 10.0.0.10 2 10.0.0.10 R(n) 11.0.0.0/30 10.0.0.10 2 10.0.0.10 R(n) 11.0.0.0/30 10.0.0.10 2 10.0.0.10 02:5802:5802:5802:58R(n) 11.0.0.4/30 10.0.0.5 2 10.0.0.5 R(n) 11.0.0.4/30 10.0.0.5 2 10.0.0.5 R(n) 11.0.0.4/30 10.0.0.5 2 10.0.0.5 R(n) 11.0.0.4/30 10.0.0.5 2 10.0.0.5 02:4302:4302:4302:43C(i) 11.0.0.8/30 0.0.0.0 1 selfC(i) 11.0.0.8/30 0.0.0.0 1 selfC(i) 11.0.0.8/30 0.0.0.0 1 selfC(i) 11.0.0.8/30 0.0.0.0 1 selfR(n) 12.0.0.0/30 10.0.0.5 3 10.0.0.5 R(n) 12.0.0.0/30 10.0.0.5 3 10.0.0.5 R(n) 12.0.0.0/30 10.0.0.5 3 10.0.0.5 R(n) 12.0.0.0/30 10.0.0.5 3 10.0.0.5 02:4302:4302:4302:43R(n) 12.0.0.4/30 11.0.0.10 2 11.0.0.10 R(n) 12.0.0.4/30 11.0.0.10 2 11.0.0.10 R(n) 12.0.0.4/30 11.0.0.10 2 11.0.0.10 R(n) 12.0.0.4/30 11.0.0.10 2 11.0.0.10 02:5502:5502:5502:55R(n) 12.0.0.8/30 11.0.0.10 2 11.0.0.10 R(n) 12.0.0.8/30 11.0.0.10 2 11.0.0.10 R(n) 12.0.0.8/30 11.0.0.10 2 11.0.0.10 R(n) 12.0.0.8/30 11.0.0.10 2 11.0.0.10 02:5502:5502:5502:55R(n) 12.0.0.12/30 11.0.0.10 2 11.0.0.10 R(n) 12.0.0.12/30 11.0.0.10 2 11.0.0.10 R(n) 12.0.0.12/30 11.0.0.10 2 11.0.0.10 R(n) 12.0.0.12/30 11.0.0.10 2 11.0.0.10 02:5502:5502:5502:55R(n) 20.0.0.0/8 10.0.0.5 3 10.0.0.5 R(n) 20.0.0.0/8 10.0.0.5 3 10.0.0.5 R(n) 20.0.0.0/8 10.0.0.5 3 10.0.0.5 R(n) 20.0.0.0/8 10.0.0.5 3 10.0.0.5 02:4302:4302:4302:43R(n) 30.0.0.0/8 11.0.0.10 2 11.0.0.10 R(n) 30.0.0.0/8 11.0.0.10 2 11.0.0.10 R(n) 30.0.0.0/8 11.0.0.10 2 11.0.0.10 R(n) 30.0.0.0/8 11.0.0.10 2 11.0.0.10 02:5502:5502:5502:55R(n) 100.0.0.0/8 11.0.0.10 2 11.0.0.10 R(n) 100.0.0.0/8 11.0.0.10 2 11.0.0.10 R(n) 100.0.0.0/8 11.0.0.10 2 11.0.0.10 R(n) 100.0.0.0/8 11.0.0.10 2 11.0.0.10 02:5502:5502:5502:55as10r6as10r6as10r6as10r6----ripd> ripd> ripd> ripd> ████

as10r6as10r6

© Computer Networks Research Group Roma Tre

Page 23: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

transit as: routing tables

as10r6as10r6as10r6as10r6----ripd> show ip ripripd> show ip ripripd> show ip ripripd> show ip ripCodes: R Codes: R Codes: R Codes: R ---- RIP, C RIP, C RIP, C RIP, C ---- connected, O connected, O connected, O connected, O ---- OSPF, B OSPF, B OSPF, B OSPF, B ---- BGPBGPBGPBGP

(n) (n) (n) (n) ---- normal, (s) normal, (s) normal, (s) normal, (s) ---- static, (d) static, (d) static, (d) static, (d) ---- default, (r) default, (r) default, (r) default, (r) ---- redistribute,redistribute,redistribute,redistribute,(i) (i) (i) (i) ---- interfaceinterfaceinterfaceinterface

Network Next Hop Metric From Network Next Hop Metric From Network Next Hop Metric From Network Next Hop Metric From TimeTimeTimeTimeR(n) 1.1.1.1/32 10.0.0.10 3 10.0.0.10 R(n) 1.1.1.1/32 10.0.0.10 3 10.0.0.10 R(n) 1.1.1.1/32 10.0.0.10 3 10.0.0.10 R(n) 1.1.1.1/32 10.0.0.10 3 10.0.0.10 02:5802:5802:5802:58R(n) 2.2.2.2/32 10.0.0.5 3 10.0.0.5 R(n) 2.2.2.2/32 10.0.0.5 3 10.0.0.5 R(n) 2.2.2.2/32 10.0.0.5 3 10.0.0.5 R(n) 2.2.2.2/32 10.0.0.5 3 10.0.0.5 02:4302:4302:4302:43R(n) 3.3.3.3/32 11.0.0.10 2 11.0.0.10 R(n) 3.3.3.3/32 11.0.0.10 2 11.0.0.10 R(n) 3.3.3.3/32 11.0.0.10 2 11.0.0.10 R(n) 3.3.3.3/32 11.0.0.10 2 11.0.0.10 02:5502:5502:5502:55R(n) 10.0.0.0/30 10.0.0.10 2 10.0.0.10 R(n) 10.0.0.0/30 10.0.0.10 2 10.0.0.10 R(n) 10.0.0.0/30 10.0.0.10 2 10.0.0.10 R(n) 10.0.0.0/30 10.0.0.10 2 10.0.0.10 02:5802:5802:5802:58C(i) 10.0.0.4/30 0.0.0.0 1 selfC(i) 10.0.0.4/30 0.0.0.0 1 selfC(i) 10.0.0.4/30 0.0.0.0 1 selfC(i) 10.0.0.4/30 0.0.0.0 1 selfC(i) 10.0.0.8/30 0.0.0.0 1 selfC(i) 10.0.0.8/30 0.0.0.0 1 selfC(i) 10.0.0.8/30 0.0.0.0 1 selfC(i) 10.0.0.8/30 0.0.0.0 1 selfR(n) 11.0.0.0/30 10.0.0.10 2 10.0.0.10 R(n) 11.0.0.0/30 10.0.0.10 2 10.0.0.10 R(n) 11.0.0.0/30 10.0.0.10 2 10.0.0.10 R(n) 11.0.0.0/30 10.0.0.10 2 10.0.0.10 02:5802:5802:5802:58R(n) 11.0.0.4/30 10.0.0.5 2 10.0.0.5 R(n) 11.0.0.4/30 10.0.0.5 2 10.0.0.5 R(n) 11.0.0.4/30 10.0.0.5 2 10.0.0.5 R(n) 11.0.0.4/30 10.0.0.5 2 10.0.0.5 02:4302:4302:4302:43C(i) 11.0.0.8/30 0.0.0.0 1 selfC(i) 11.0.0.8/30 0.0.0.0 1 selfC(i) 11.0.0.8/30 0.0.0.0 1 selfC(i) 11.0.0.8/30 0.0.0.0 1 selfR(n) 12.0.0.0/30 10.0.0.5 3 10.0.0.5 R(n) 12.0.0.0/30 10.0.0.5 3 10.0.0.5 R(n) 12.0.0.0/30 10.0.0.5 3 10.0.0.5 R(n) 12.0.0.0/30 10.0.0.5 3 10.0.0.5 02:4302:4302:4302:43R(n) 12.0.0.4/30 11.0.0.10 2 11.0.0.10 R(n) 12.0.0.4/30 11.0.0.10 2 11.0.0.10 R(n) 12.0.0.4/30 11.0.0.10 2 11.0.0.10 R(n) 12.0.0.4/30 11.0.0.10 2 11.0.0.10 02:5502:5502:5502:55R(n) 12.0.0.8/30 11.0.0.10 2 11.0.0.10 R(n) 12.0.0.8/30 11.0.0.10 2 11.0.0.10 R(n) 12.0.0.8/30 11.0.0.10 2 11.0.0.10 R(n) 12.0.0.8/30 11.0.0.10 2 11.0.0.10 02:5502:5502:5502:55R(n) 12.0.0.12/30 11.0.0.10 2 11.0.0.10 R(n) 12.0.0.12/30 11.0.0.10 2 11.0.0.10 R(n) 12.0.0.12/30 11.0.0.10 2 11.0.0.10 R(n) 12.0.0.12/30 11.0.0.10 2 11.0.0.10 02:5502:5502:5502:55R(n) 20.0.0.0/8 10.0.0.5 3 10.0.0.5 R(n) 20.0.0.0/8 10.0.0.5 3 10.0.0.5 R(n) 20.0.0.0/8 10.0.0.5 3 10.0.0.5 R(n) 20.0.0.0/8 10.0.0.5 3 10.0.0.5 02:4302:4302:4302:43R(n) 30.0.0.0/8 11.0.0.10 2 11.0.0.10 R(n) 30.0.0.0/8 11.0.0.10 2 11.0.0.10 R(n) 30.0.0.0/8 11.0.0.10 2 11.0.0.10 R(n) 30.0.0.0/8 11.0.0.10 2 11.0.0.10 02:5502:5502:5502:55R(n) 100.0.0.0/8 11.0.0.10 2 11.0.0.10 R(n) 100.0.0.0/8 11.0.0.10 2 11.0.0.10 R(n) 100.0.0.0/8 11.0.0.10 2 11.0.0.10 R(n) 100.0.0.0/8 11.0.0.10 2 11.0.0.10 02:5502:5502:5502:55as10r6as10r6as10r6as10r6----ripd> ripd> ripd> ripd> ████

as10r6as10r6

routing tables of the internal routers of as10are unnecessarily large, due to redistribution of bgp routes

routing tables of the internal routers of as10are unnecessarily large, due to redistribution of bgp routes

© Computer Networks Research Group Roma Tre

Page 24: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

as20r1:~# telnet localhost bgpdas20r1:~# telnet localhost bgpdas20r1:~# telnet localhost bgpdas20r1:~# telnet localhost bgpdTrying 127.0.0.1...Trying 127.0.0.1...Trying 127.0.0.1...Trying 127.0.0.1...Connected to as20r1.Connected to as20r1.Connected to as20r1.Connected to as20r1.Escape character is '^]'.Escape character is '^]'.Escape character is '^]'.Escape character is '^]'.

Hello, this is zebra (version 0.94).Hello, this is zebra (version 0.94).Hello, this is zebra (version 0.94).Hello, this is zebra (version 0.94).............as20r1as20r1as20r1as20r1----bgpd> enable bgpd> enable bgpd> enable bgpd> enable as20r1as20r1as20r1as20r1----bgpd# configure terminal bgpd# configure terminal bgpd# configure terminal bgpd# configure terminal as20r1as20r1as20r1as20r1----bgpd(config)# router bgp 20bgpd(config)# router bgp 20bgpd(config)# router bgp 20bgpd(config)# router bgp 20as20r1as20r1as20r1as20r1----bgpd(configbgpd(configbgpd(configbgpd(config----router)# neighbor 12.0.0.10 shutdown router)# neighbor 12.0.0.10 shutdown router)# neighbor 12.0.0.10 shutdown router)# neighbor 12.0.0.10 shutdown ████

as20r1as20r1

transit as: playing with the backup

� let’s bring as100 ’s primary link down� expected result: traffic from as20r1 to as100r1should traverse the transit as

AS20

AS100

G LAS30

Page 25: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

transit as: playing with the backup

� let’s check whether things work...

as20r1:~# ping 100.0.0.1as20r1:~# ping 100.0.0.1as20r1:~# ping 100.0.0.1as20r1:~# ping 100.0.0.1PING 100.0.0.1 (100.0.0.1) 56(84) bytes of data.PING 100.0.0.1 (100.0.0.1) 56(84) bytes of data.PING 100.0.0.1 (100.0.0.1) 56(84) bytes of data.PING 100.0.0.1 (100.0.0.1) 56(84) bytes of data.From 11.0.0.5 icmp_seq=1 Time to live exceededFrom 11.0.0.5 icmp_seq=1 Time to live exceededFrom 11.0.0.5 icmp_seq=1 Time to live exceededFrom 11.0.0.5 icmp_seq=1 Time to live exceededFrom 11.0.0.5 icmp_seq=2 Time to live exceededFrom 11.0.0.5 icmp_seq=2 Time to live exceededFrom 11.0.0.5 icmp_seq=2 Time to live exceededFrom 11.0.0.5 icmp_seq=2 Time to live exceeded

------------ 100.0.0.1 ping statistics 100.0.0.1 ping statistics 100.0.0.1 ping statistics 100.0.0.1 ping statistics ------------2 packets transmitted, 0 received, +2 errors, 100% packet loss, 2 packets transmitted, 0 received, +2 errors, 100% packet loss, 2 packets transmitted, 0 received, +2 errors, 100% packet loss, 2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 1010mstime 1010mstime 1010mstime 1010ms

as20r1:~# traceroute 100.0.0.1as20r1:~# traceroute 100.0.0.1as20r1:~# traceroute 100.0.0.1as20r1:~# traceroute 100.0.0.1traceroute to 100.0.0.1 (100.0.0.1), 64 hops max, 40 byte packettraceroute to 100.0.0.1 (100.0.0.1), 64 hops max, 40 byte packettraceroute to 100.0.0.1 (100.0.0.1), 64 hops max, 40 byte packettraceroute to 100.0.0.1 (100.0.0.1), 64 hops max, 40 byte packetssss1 12.0.0.1 (12.0.0.1) 0 ms 0 ms 0 ms1 12.0.0.1 (12.0.0.1) 0 ms 0 ms 0 ms1 12.0.0.1 (12.0.0.1) 0 ms 0 ms 0 ms1 12.0.0.1 (12.0.0.1) 0 ms 0 ms 0 ms2 11.0.0.5 (11.0.0.5) 0 ms 0 ms 0 ms2 11.0.0.5 (11.0.0.5) 0 ms 0 ms 0 ms2 11.0.0.5 (11.0.0.5) 0 ms 0 ms 0 ms2 11.0.0.5 (11.0.0.5) 0 ms 0 ms 0 ms3 12.0.0.1 (12.0.0.1) 0 ms 1 ms 8 ms3 12.0.0.1 (12.0.0.1) 0 ms 1 ms 8 ms3 12.0.0.1 (12.0.0.1) 0 ms 1 ms 8 ms3 12.0.0.1 (12.0.0.1) 0 ms 1 ms 8 ms4 11.0.0.5 (11.0.0.5) 1 ms 1 ms 0 ms4 11.0.0.5 (11.0.0.5) 1 ms 1 ms 0 ms4 11.0.0.5 (11.0.0.5) 1 ms 1 ms 0 ms4 11.0.0.5 (11.0.0.5) 1 ms 1 ms 0 ms5 * 12.0.0.1 (12.0.0.1) 1 ms 1 ms5 * 12.0.0.1 (12.0.0.1) 1 ms 1 ms5 * 12.0.0.1 (12.0.0.1) 1 ms 1 ms5 * 12.0.0.1 (12.0.0.1) 1 ms 1 ms6 11.0.0.5 (11.0.0.5) 1 ms 1 ms *6 11.0.0.5 (11.0.0.5) 1 ms 1 ms *6 11.0.0.5 (11.0.0.5) 1 ms 1 ms *6 11.0.0.5 (11.0.0.5) 1 ms 1 ms *7 12.0.0.1 (12.0.0.1) 1 ms 1 ms 1 ms7 12.0.0.1 (12.0.0.1) 1 ms 1 ms 1 ms7 12.0.0.1 (12.0.0.1) 1 ms 1 ms 1 ms7 12.0.0.1 (12.0.0.1) 1 ms 1 ms 1 ms8 11.0.0.5 (11.0.0.5) 1 ms 1 ms 1 ms8 11.0.0.5 (11.0.0.5) 1 ms 1 ms 1 ms8 11.0.0.5 (11.0.0.5) 1 ms 1 ms 1 ms8 11.0.0.5 (11.0.0.5) 1 ms 1 ms 1 ms

████

as20r1as20r1

© Computer Networks Research Group Roma Tre

these are symptoms of a forwarding loop!!

these are symptoms of a forwarding loop!!

Page 26: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

transit as: playing with the backup

� same test from as10rt2

as10rt2:~# ping 100.0.0.1as10rt2:~# ping 100.0.0.1as10rt2:~# ping 100.0.0.1as10rt2:~# ping 100.0.0.1PING 100.0.0.1 (100.0.0.1) 56(84) bytes of data.PING 100.0.0.1 (100.0.0.1) 56(84) bytes of data.PING 100.0.0.1 (100.0.0.1) 56(84) bytes of data.PING 100.0.0.1 (100.0.0.1) 56(84) bytes of data.From 11.0.0.5: icmp_seq=2 Redirect Host(New nexthop: 11.0.0.6)From 11.0.0.5: icmp_seq=2 Redirect Host(New nexthop: 11.0.0.6)From 11.0.0.5: icmp_seq=2 Redirect Host(New nexthop: 11.0.0.6)From 11.0.0.5: icmp_seq=2 Redirect Host(New nexthop: 11.0.0.6)From 11.0.0.5: icmp_seq=3 Redirect Host(New nexthop: 11.0.0.6)From 11.0.0.5: icmp_seq=3 Redirect Host(New nexthop: 11.0.0.6)From 11.0.0.5: icmp_seq=3 Redirect Host(New nexthop: 11.0.0.6)From 11.0.0.5: icmp_seq=3 Redirect Host(New nexthop: 11.0.0.6)From 11.0.0.5: icmp_seq=5 Redirect Host(New nexthop: 11.0.0.6)From 11.0.0.5: icmp_seq=5 Redirect Host(New nexthop: 11.0.0.6)From 11.0.0.5: icmp_seq=5 Redirect Host(New nexthop: 11.0.0.6)From 11.0.0.5: icmp_seq=5 Redirect Host(New nexthop: 11.0.0.6)

------------ 100.0.0.1 ping statistics 100.0.0.1 ping statistics 100.0.0.1 ping statistics 100.0.0.1 ping statistics ------------5 packets transmitted, 0 received, 100% packet loss, time 4016ms5 packets transmitted, 0 received, 100% packet loss, time 4016ms5 packets transmitted, 0 received, 100% packet loss, time 4016ms5 packets transmitted, 0 received, 100% packet loss, time 4016ms

as10rt2:~# as10rt2:~# as10rt2:~# as10rt2:~# ████

as10rt2as10rt2

Page 27: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

transit as: playing with the backup

� motivating the loop

as10rt2:~# telnet localhost ripdas10rt2:~# telnet localhost ripdas10rt2:~# telnet localhost ripdas10rt2:~# telnet localhost ripdzebraTrying 127.0.0.1...zebraTrying 127.0.0.1...zebraTrying 127.0.0.1...zebraTrying 127.0.0.1...Connected to as10rt2.Connected to as10rt2.Connected to as10rt2.Connected to as10rt2.Escape character is '^]'.Escape character is '^]'.Escape character is '^]'.Escape character is '^]'.............as10rt2as10rt2as10rt2as10rt2----ripd> show ip ripripd> show ip ripripd> show ip ripripd> show ip ripCodes: R Codes: R Codes: R Codes: R ---- RIP, C RIP, C RIP, C RIP, C ---- connected, O connected, O connected, O connected, O ---- OSPF, B OSPF, B OSPF, B OSPF, B ---- BGPBGPBGPBGP

(n) (n) (n) (n) ---- normal, (s) normal, (s) normal, (s) normal, (s) ---- static, (d) static, (d) static, (d) static, (d) ---- default, (r) default, (r) default, (r) default, (r) ---- redistribute,redistribute,redistribute,redistribute,(i) (i) (i) (i) ---- interfaceinterfaceinterfaceinterface

Network Next Hop Metric From Network Next Hop Metric From Network Next Hop Metric From Network Next Hop Metric From TimeTimeTimeTimeR(n) 1.1.1.1/32 11.0.0.5 4 11.0.0.5 R(n) 1.1.1.1/32 11.0.0.5 4 11.0.0.5 R(n) 1.1.1.1/32 11.0.0.5 4 11.0.0.5 R(n) 1.1.1.1/32 11.0.0.5 4 11.0.0.5 02:4302:4302:4302:43............B(r) 100.0.0.0/8 12.0.0.6 1 selfB(r) 100.0.0.0/8 12.0.0.6 1 selfB(r) 100.0.0.0/8 12.0.0.6 1 selfB(r) 100.0.0.0/8 12.0.0.6 1 selfas10rt2as10rt2as10rt2as10rt2----ripd> ripd> ripd> ripd> ████

as10rt2as10rt2

as10rt2 is redistributing (r ) into rip the route it has

learned via ibgp (B)

as10rt2 is redistributing (r ) into rip the route it has

learned via ibgp (B) internal routers choose the shortest path to 100.0.0.0/8

internal routers choose the shortest path to 100.0.0.0/8

Page 28: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

transit as: playing with the backup

� how to fix?

� tell rip not to inject information learned by ibgp

I am an egress!

I am an egress!

I am an egress!

I am an egress!

Page 29: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

transit as: playing with the backup

� how to fix?

� tell rip not to inject information learned by ibgp� cisco (and juniper) say:

By default, iBGP redistribution into IGP is disabled. To enable redistribution of iBGP routes into IGP, issue thebgp redistribute-internal command. Precautions should be taken to redistribute specific routes using route maps into IGP.Note: Redistributing internal Border Gateway Protocol (iBGP) routes into an Interior Gateway Protocol may cause routing loops within the Autonomous System (AS). This is not recommended. Route filters should be set to control the information which is imported into the IGP.http://supportwiki.cisco.com/ViewWiki/index.php/Unable_to_redistribute_iBGP_learnt_routes_into_an_IGP_such_as_EIGRP,_OSPF,_and_IS-IS

© Computer Networks Research Group Roma Tre

Page 30: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

transit as: playing with the backup

� how to fix?

� tell rip not to inject information learned by ibgp

� how to tell?

� no way in zebra to say “redistribute ebgp”but...

� ...route-map s can be applied on redistributed routes

Page 31: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

transit as: playing with the backup

� fixing the loop

� restart zebra by typing/etc/init.d/zebra restart

as10rt2:~# telnet localhost ripdas10rt2:~# telnet localhost ripdas10rt2:~# telnet localhost ripdas10rt2:~# telnet localhost ripdTrying 127.0.0.1...Trying 127.0.0.1...Trying 127.0.0.1...Trying 127.0.0.1...Connected to as10rt2.Connected to as10rt2.Connected to as10rt2.Connected to as10rt2.Escape character is '^]'.Escape character is '^]'.Escape character is '^]'.Escape character is '^]'.............as10rt2as10rt2as10rt2as10rt2----ripd> enableripd> enableripd> enableripd> enableas10rt2as10rt2as10rt2as10rt2----ripd# configure terminalripd# configure terminalripd# configure terminalripd# configure terminalas10rt2as10rt2as10rt2as10rt2----ripd(config)# ip prefixripd(config)# ip prefixripd(config)# ip prefixripd(config)# ip prefix----list myNeighbors permit 12.0.0.0/30 le 32list myNeighbors permit 12.0.0.0/30 le 32list myNeighbors permit 12.0.0.0/30 le 32list myNeighbors permit 12.0.0.0/30 le 32as10rt2as10rt2as10rt2as10rt2----ripd(config)# routeripd(config)# routeripd(config)# routeripd(config)# route----map eBGP permit 10map eBGP permit 10map eBGP permit 10map eBGP permit 10as10rt2as10rt2as10rt2as10rt2----ripd(configripd(configripd(configripd(config----routerouterouteroute----map)# match ip nextmap)# match ip nextmap)# match ip nextmap)# match ip next----hop prefixhop prefixhop prefixhop prefix----list myNeighborslist myNeighborslist myNeighborslist myNeighborsas10rt2as10rt2as10rt2as10rt2----ripd(configripd(configripd(configripd(config----routerouterouteroute----map)# exitmap)# exitmap)# exitmap)# exitas10rt2as10rt2as10rt2as10rt2----ripd(config)# router ripripd(config)# router ripripd(config)# router ripripd(config)# router ripas10rt2as10rt2as10rt2as10rt2----ripd(configripd(configripd(configripd(config----router)# no redistribute bgprouter)# no redistribute bgprouter)# no redistribute bgprouter)# no redistribute bgpas10rt2as10rt2as10rt2as10rt2----ripd(configripd(configripd(configripd(config----router)# redistribute bgp routerouter)# redistribute bgp routerouter)# redistribute bgp routerouter)# redistribute bgp route----map eBGPmap eBGPmap eBGPmap eBGPas10rt2as10rt2as10rt2as10rt2----ripd(configripd(configripd(configripd(config----router)# write filerouter)# write filerouter)# write filerouter)# write file

as10rt2as10rt2

Page 32: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

transit as: playing with the backup

� fixing the loop

� restart zebra by typing/etc/init.d/zebra restart

as10rt2:~# telnet localhost ripdas10rt2:~# telnet localhost ripdas10rt2:~# telnet localhost ripdas10rt2:~# telnet localhost ripdTrying 127.0.0.1...Trying 127.0.0.1...Trying 127.0.0.1...Trying 127.0.0.1...Connected to as10rt2.Connected to as10rt2.Connected to as10rt2.Connected to as10rt2.Escape character is '^]'.Escape character is '^]'.Escape character is '^]'.Escape character is '^]'.............as10rt2as10rt2as10rt2as10rt2----ripd> enableripd> enableripd> enableripd> enableas10rt2as10rt2as10rt2as10rt2----ripd# configure terminalripd# configure terminalripd# configure terminalripd# configure terminalas10rt2as10rt2as10rt2as10rt2----ripd(config)# ip prefixripd(config)# ip prefixripd(config)# ip prefixripd(config)# ip prefix----list myNeighbors permit 12.0.0.0/30 le 32list myNeighbors permit 12.0.0.0/30 le 32list myNeighbors permit 12.0.0.0/30 le 32list myNeighbors permit 12.0.0.0/30 le 32as10rt2as10rt2as10rt2as10rt2----ripd(config)# routeripd(config)# routeripd(config)# routeripd(config)# route----map eBGP permit 10map eBGP permit 10map eBGP permit 10map eBGP permit 10as10rt2as10rt2as10rt2as10rt2----ripd(configripd(configripd(configripd(config----routerouterouteroute----map)# match ip nextmap)# match ip nextmap)# match ip nextmap)# match ip next----hop prefixhop prefixhop prefixhop prefix----list myNeighborslist myNeighborslist myNeighborslist myNeighborsas10rt2as10rt2as10rt2as10rt2----ripd(configripd(configripd(configripd(config----routerouterouteroute----map)# exitmap)# exitmap)# exitmap)# exitas10rt2as10rt2as10rt2as10rt2----ripd(config)# router ripripd(config)# router ripripd(config)# router ripripd(config)# router ripas10rt2as10rt2as10rt2as10rt2----ripd(configripd(configripd(configripd(config----router)# no redistribute bgprouter)# no redistribute bgprouter)# no redistribute bgprouter)# no redistribute bgpas10rt2as10rt2as10rt2as10rt2----ripd(configripd(configripd(configripd(config----router)# redistribute bgp routerouter)# redistribute bgp routerouter)# redistribute bgp routerouter)# redistribute bgp route----map eBGPmap eBGPmap eBGPmap eBGPas10rt2as10rt2as10rt2as10rt2----ripd(configripd(configripd(configripd(config----router)# write filerouter)# write filerouter)# write filerouter)# write file

as10rt2as10rt2match all the more specifics

of the 12.0.0.0/30network (next-hops are single ip addresses)

match all the more specifics of the 12.0.0.0/30network (next-hops are single ip addresses)

Page 33: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

transit as: timings

� why is zebra propagating ibgp routes?

� a.k.a. “going deep into the cause of the forwarding loop”

� the cause is to be sought in the bgp redistribution into rip

� once a bgp learned route has been installed in the rip routing table, no more rip alternatives for that route are accepted by zebra

� this has some consequences

Page 34: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

transit as: timings

� we now observe in detail the effect of bgp redistribution

� backtrack to the condition causing the forwarding loop

� restart the lab

� bring link H down

� timings play a crucial role in triggering the forwarding loop

Page 35: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

case 1: bgpwins the race

lo2.2.2.2

lo3.3.3.3

Page 36: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

case 1: bgpwins the race

lo2.2.2.2

lo3.3.3.3

rip

12. 0. 0. 4/ 303. 3. 3. 3

Page 37: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

case 1: bgpwins the race

lo2.2.2.2

lo3.3.3.3

12. 0. 0. 4/ 303. 3. 3. 3

12.0.0.4/303.3.3.3

rip

Page 38: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

case 1: bgpwins the race

lo2.2.2.2

lo3.3.3.3

12. 0. 0. 4/ 303. 3. 3. 3

12.0.0.4/303.3.3.3

rip

12. 0. 0. 4/ 30

3. 3. 3. 3

Page 39: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

case 1: bgpwins the race

lo2.2.2.2

lo3.3.3.3

rip

100. 0. 0. 0/ 8

Page 40: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

case 1: bgpwins the race

lo2.2.2.2

lo3.3.3.3

rip

bgp

100. 0. 0. 0/ 8

100.0.0.0/8

Page 41: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

case 1: bgpwins the race

lo2.2.2.2

lo3.3.3.3100.0.0.0/8

rip

bgp

100. 0. 0. 0/ 8

100.0.0.0/8

Page 42: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

case 1: bgpwins the race

lo2.2.2.2

lo3.3.3.3

rip

bgp

100. 0. 0. 0/ 8

100.0.0.0/8

100.0.0.0/8

as10rt2:~# telnet localhost zebraas10rt2:~# telnet localhost zebraas10rt2:~# telnet localhost zebraas10rt2:~# telnet localhost zebra............Router> show ip route 100.0.0.0/8Router> show ip route 100.0.0.0/8Router> show ip route 100.0.0.0/8Router> show ip route 100.0.0.0/8Routing entry for 100.0.0.0/8Routing entry for 100.0.0.0/8Routing entry for 100.0.0.0/8Routing entry for 100.0.0.0/8

Known via "bgp", distance 200, metric 0, bestKnown via "bgp", distance 200, metric 0, bestKnown via "bgp", distance 200, metric 0, bestKnown via "bgp", distance 200, metric 0, bestLast update 02:39:10 agoLast update 02:39:10 agoLast update 02:39:10 agoLast update 02:39:10 ago* 12.0.0.6, recursive via 11.0.0.5, eth1* 12.0.0.6, recursive via 11.0.0.5, eth1* 12.0.0.6, recursive via 11.0.0.5, eth1* 12.0.0.6, recursive via 11.0.0.5, eth1

Router> Router> Router> Router> ████

as10rt2as10rt2

Page 43: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

case 1: bgpwins the race

lo2.2.2.2

lo3.3.3.3

rip

bgp

100. 0. 0. 0/ 8 100. 0. 0. 0/ 8

100.0.0.0/8

100.0.0.0/8

Page 44: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

case 1: bgpwins the race

lo2.2.2.2

lo3.3.3.3

rip

bgp

100. 0. 0. 0/ 8 100. 0. 0. 0/ 8

100.0.0.0/8

•redistributes the route learned via ibgp

•does not receive the rip alternative

•redistributes the route learned via ibgp

•does not receive the rip alternative

selects the shortest path to 100.0.0.0/8 via as10rt2

selects the shortest path to 100.0.0.0/8 via as10rt2

100.0.0.0/8

Page 45: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

case 2: rip wins the race

lo2.2.2.2

lo3.3.3.3

12. 0. 0. 4/ 303. 3. 3. 3

12.0.0.4/303.3.3.3

rip

12. 0. 0. 4/ 30

3. 3. 3. 3

Page 46: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

case 2: rip wins the race

lo2.2.2.2

lo3.3.3.3

rip

100. 0. 0. 0/ 8

Page 47: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

case 2: rip wins the race

lo2.2.2.2

lo3.3.3.3

rip

100. 0. 0. 0/ 8

100.0.0.0/8

Page 48: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

case 2: rip wins the race

lo2.2.2.2

lo3.3.3.3

rip

100. 0. 0. 0/ 8

100.0.0.0/8

100. 0. 0. 0/ 8

Page 49: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

case 2: rip wins the race

lo2.2.2.2

lo3.3.3.3

rip

bgp

100. 0. 0. 0/ 8

100.0.0.0/8

100. 0. 0. 0/ 8

100.0.0.0/8

Page 50: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

case 2: rip wins the race

lo2.2.2.2

lo3.3.3.3

rip

bgp

100. 0. 0. 0/ 8

100.0.0.0/8

100. 0. 0. 0/ 8

100.0.0.0/8as10rt2:~# telnet localhost zebraas10rt2:~# telnet localhost zebraas10rt2:~# telnet localhost zebraas10rt2:~# telnet localhost zebra............Router> show ip route 100.0.0.0/8Router> show ip route 100.0.0.0/8Router> show ip route 100.0.0.0/8Router> show ip route 100.0.0.0/8Routing entry for 100.0.0.0/8Routing entry for 100.0.0.0/8Routing entry for 100.0.0.0/8Routing entry for 100.0.0.0/8

Known via "bgp", distance 200, metric 0Known via "bgp", distance 200, metric 0Known via "bgp", distance 200, metric 0Known via "bgp", distance 200, metric 0Last update 00:00:35 agoLast update 00:00:35 agoLast update 00:00:35 agoLast update 00:00:35 ago

12.0.0.612.0.0.612.0.0.612.0.0.6

Routing entry for 100.0.0.0/8Routing entry for 100.0.0.0/8Routing entry for 100.0.0.0/8Routing entry for 100.0.0.0/8Known via "rip", distance 120, metric 4, bestKnown via "rip", distance 120, metric 4, bestKnown via "rip", distance 120, metric 4, bestKnown via "rip", distance 120, metric 4, bestLast update 00:01:16 agoLast update 00:01:16 agoLast update 00:01:16 agoLast update 00:01:16 ago* 11.0.0.5, via eth1* 11.0.0.5, via eth1* 11.0.0.5, via eth1* 11.0.0.5, via eth1

Router> Router> Router> Router> ████

as10rt2as10rt2

Page 51: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

case 2: rip wins the race

lo2.2.2.2

lo3.3.3.3

rip

bgp

100. 0. 0. 0/ 8

100.0.0.0/8

100. 0. 0. 0/ 8

100.0.0.0/8as10rt2:~# telnet localhost zebraas10rt2:~# telnet localhost zebraas10rt2:~# telnet localhost zebraas10rt2:~# telnet localhost zebra............Router> show ip route 100.0.0.0/8Router> show ip route 100.0.0.0/8Router> show ip route 100.0.0.0/8Router> show ip route 100.0.0.0/8Routing entry for 100.0.0.0/8Routing entry for 100.0.0.0/8Routing entry for 100.0.0.0/8Routing entry for 100.0.0.0/8

Known via "bgp", distance 200, metric 0Known via "bgp", distance 200, metric 0Known via "bgp", distance 200, metric 0Known via "bgp", distance 200, metric 0Last update 00:00:35 agoLast update 00:00:35 agoLast update 00:00:35 agoLast update 00:00:35 ago

12.0.0.612.0.0.612.0.0.612.0.0.6

Routing entry for 100.0.0.0/8Routing entry for 100.0.0.0/8Routing entry for 100.0.0.0/8Routing entry for 100.0.0.0/8Known via "rip", distance 120, metric 4, bestKnown via "rip", distance 120, metric 4, bestKnown via "rip", distance 120, metric 4, bestKnown via "rip", distance 120, metric 4, bestLast update 00:01:16 agoLast update 00:01:16 agoLast update 00:01:16 agoLast update 00:01:16 ago* 11.0.0.5, via eth1* 11.0.0.5, via eth1* 11.0.0.5, via eth1* 11.0.0.5, via eth1

Router> Router> Router> Router> ████

as10rt2as10rt2

as10rt2 has learned both

alternatives but prefers using rip information

as10rt2 has learned both

alternatives but prefers using rip information

Page 52: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

case 2: rip wins the race

lo2.2.2.2

lo3.3.3.3

rip

bgp

100. 0. 0. 0/ 8

100.0.0.0/8

100. 0. 0. 0/ 8

100.0.0.0/8as10rt2:~# telnet localhost zebraas10rt2:~# telnet localhost zebraas10rt2:~# telnet localhost zebraas10rt2:~# telnet localhost zebra............Router> show ip route 100.0.0.0/8Router> show ip route 100.0.0.0/8Router> show ip route 100.0.0.0/8Router> show ip route 100.0.0.0/8Routing entry for 100.0.0.0/8Routing entry for 100.0.0.0/8Routing entry for 100.0.0.0/8Routing entry for 100.0.0.0/8

Known via "bgp", distance 200, metric 0Known via "bgp", distance 200, metric 0Known via "bgp", distance 200, metric 0Known via "bgp", distance 200, metric 0Last update 00:00:35 agoLast update 00:00:35 agoLast update 00:00:35 agoLast update 00:00:35 ago

12.0.0.612.0.0.612.0.0.612.0.0.6

Routing entry for 100.0.0.0/8Routing entry for 100.0.0.0/8Routing entry for 100.0.0.0/8Routing entry for 100.0.0.0/8Known via "rip", distance 120, metric 4, bestKnown via "rip", distance 120, metric 4, bestKnown via "rip", distance 120, metric 4, bestKnown via "rip", distance 120, metric 4, bestLast update 00:01:16 agoLast update 00:01:16 agoLast update 00:01:16 agoLast update 00:01:16 ago* 11.0.0.5, via eth1* 11.0.0.5, via eth1* 11.0.0.5, via eth1* 11.0.0.5, via eth1

Router> Router> Router> Router> ████

as10rt2as10rt2in this case there is no forwarding loop

in this case there is no forwarding loop

Page 53: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

administrative distance� if different routing protocols propose alternatives for the same route, zebra picks the best route based on an administrative distance value

as10rt2:~# telnet localhost zebraas10rt2:~# telnet localhost zebraas10rt2:~# telnet localhost zebraas10rt2:~# telnet localhost zebra............Router> show ip routeRouter> show ip routeRouter> show ip routeRouter> show ip route............B 12.0.0.4/30 [200/0] via 3.3.3.3, 00:01:01B 12.0.0.4/30 [200/0] via 3.3.3.3, 00:01:01B 12.0.0.4/30 [200/0] via 3.3.3.3, 00:01:01B 12.0.0.4/30 [200/0] via 3.3.3.3, 00:01:01R>* 12.0.0.4/30 [120/4] via 11.0.0.5, eth1, 00:01:05R>* 12.0.0.4/30 [120/4] via 11.0.0.5, eth1, 00:01:05R>* 12.0.0.4/30 [120/4] via 11.0.0.5, eth1, 00:01:05R>* 12.0.0.4/30 [120/4] via 11.0.0.5, eth1, 00:01:05B>* 12.0.0.8/30 [20/0] via 12.0.0.2, eth0, 00:00:55B>* 12.0.0.8/30 [20/0] via 12.0.0.2, eth0, 00:00:55B>* 12.0.0.8/30 [20/0] via 12.0.0.2, eth0, 00:00:55B>* 12.0.0.8/30 [20/0] via 12.0.0.2, eth0, 00:00:55B 12.0.0.12/30 [200/0] via 12.0.0.6, 00:00:51B 12.0.0.12/30 [200/0] via 12.0.0.6, 00:00:51B 12.0.0.12/30 [200/0] via 12.0.0.6, 00:00:51B 12.0.0.12/30 [200/0] via 12.0.0.6, 00:00:51R>* 12.0.0.12/30 [120/4] via 11.0.0.5, eth1, 00:00:52R>* 12.0.0.12/30 [120/4] via 11.0.0.5, eth1, 00:00:52R>* 12.0.0.12/30 [120/4] via 11.0.0.5, eth1, 00:00:52R>* 12.0.0.12/30 [120/4] via 11.0.0.5, eth1, 00:00:52████

as10rt2as10rt2

[200/0] [200/0] [200/0] [200/0] [200/0] [200/0] [200/0] [200/0]

administrative distance

administrative distance

protocol metricprotocol metric

Page 54: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

administrative distance

zebra routing tablezebra routing table

bgp routing tablebgp routing table

best

rip routing tablerip routing table

best

best

kernel routing tablekernel routing table

Page 55: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

administrative distance

� some default values

� ebgp: 20

� rip: 120

� ibgp: 200

Page 56: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

still about timings

� note: even after setting seasonable route-map s to avoid redistribution of ibgp into rip, as10rt2 may still select the bgp alternative depending on the timings

� see next slides...

� the forwarding loop is however prevented

Page 57: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

case 1: bgp still wins the race

lo2.2.2.2

lo3.3.3.3

rip

100. 0. 0. 0/ 8

Page 58: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

lo2.2.2.2

lo3.3.3.3

rip

bgp

100. 0. 0. 0/ 8

100.0.0.0/8

case 1: bgp still wins the race

Page 59: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

lo2.2.2.2

lo3.3.3.3100.0.0.0/8

rip

bgp

100. 0. 0. 0/ 8

100.0.0.0/8

case 1: bgp still wins the race

Page 60: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

lo2.2.2.2

lo3.3.3.3100.0.0.0/8

rip

bgp

100. 0. 0. 0/ 8

100.0.0.0/8

case 1: bgp still wins the race

at this point as10rt2permanently* selects the bgp alternative...

at this point as10rt2permanently* selects the bgp alternative...

100.0.0.0/8 is marked as B(r) in as10rt2 ’s rip routing table(despite the route-map that avoids redistributing ibgp)

100.0.0.0/8 is marked as B(r) in as10rt2 ’s rip routing table(despite the route-map that avoids redistributing ibgp)

* “permanently” because the mark B(r) prevents rip from accepting future announcements about 100.0.0.0/8

* “permanently” because the mark B(r) prevents rip from accepting future announcements about 100.0.0.0/8

Page 61: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

lo2.2.2.2

lo3.3.3.3

rip

bgp

100. 0. 0. 0/ 8

100.0.0.0/8

100. 0. 0. 0/ 8

100.0.0.0/8

case 1: bgp still wins the race

...but does notredistribute it into rip

...but does notredistribute it into rip

Page 62: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

case 2: rip still wins the race

lo2.2.2.2

lo3.3.3.3

rip

100. 0. 0. 0/ 8

Page 63: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

lo2.2.2.2

lo3.3.3.3

rip

100. 0. 0. 0/ 8

100.0.0.0/8

case 2: rip still wins the race

Page 64: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

lo2.2.2.2

lo3.3.3.3

rip

100. 0. 0. 0/ 8

100.0.0.0/8

100. 0. 0. 0/ 8

case 2: rip still wins the race

Page 65: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

lo2.2.2.2

lo3.3.3.3

rip

100. 0. 0. 0/ 8

100.0.0.0/8

100. 0. 0. 0/ 8

case 2: rip still wins the race

at this point as10rt2 has learned the rip alternative

at this point as10rt2 has learned the rip alternative

100.0.0.0/8 is marked as R(n) in as10rt2 ’s rip routing table

100.0.0.0/8 is marked as R(n) in as10rt2 ’s rip routing table

Page 66: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

lo2.2.2.2

lo3.3.3.3

rip

bgp

100. 0. 0. 0/ 8

100.0.0.0/8

100. 0. 0. 0/ 8

100.0.0.0/8

case 2: rip still wins the race

Page 67: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

A

DE

FB C

eth02H I

eth06

eth05

M

100.0.0.0/8

12.0.0.0/30 12.0.0.4/30

eth01

G L

© Computer Networks Research Group Roma Tre

lo2.2.2.2

lo3.3.3.3

rip

bgp

100. 0. 0. 0/ 8

100.0.0.0/8

100. 0. 0. 0/ 8

100.0.0.0/8

case 2: rip still wins the race

now as10rt2 knows both alternatives and

selects rip

now as10rt2 knows both alternatives and

selects rip

Page 68: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

timings may be treacherous

� there is nothing bad in choosing bgp rather than rip... or not?

� remember: if a bgp next-hop has been learned via bgp, the corresponding route is not selected in the routing table

� if a router picks from bgp some route containing a bgp next-hop to a network, that network becomes unreachable!

Page 69: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

timings may be treacherous

� example� as10rt2 uses the bgp next-hop 12.0.0.6to reach 100.0.0.0/8

� as10rt2 might learn 12.0.0.4/30 via ibgp before learning it via rip� in this case, the rip alternative is never taken into account

� let’s see what happens in this case...

Page 70: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

timings may be treacherous

� the outcome of this adverse timing is really undesirable

as20r1:~# traceroute 100.0.0.1as20r1:~# traceroute 100.0.0.1as20r1:~# traceroute 100.0.0.1as20r1:~# traceroute 100.0.0.1traceroute to 100.0.0.1 (100.0.0.1), 64 hops max, 40 byte packettraceroute to 100.0.0.1 (100.0.0.1), 64 hops max, 40 byte packettraceroute to 100.0.0.1 (100.0.0.1), 64 hops max, 40 byte packettraceroute to 100.0.0.1 (100.0.0.1), 64 hops max, 40 byte packetssss1 sendto: Network is unreachable1 sendto: Network is unreachable1 sendto: Network is unreachable1 sendto: Network is unreachable████

as20r1as20r1

Page 71: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

timings may be treacherous

� solutions?

� filtering� do not announce the demarcation zone in ibgp

� do not accept incoming bgp announcements for the demarcation zone

� ...or simply do not announce the demarcation zone in bgp at all

� avoid redistributing bgp� knowing something via bgp masks any rip alternative when redistribute bgp is used

Page 72: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

conclusions

� never (ever!) inject ibgp into rip

� routing table overgrowth

� update churn

� very bad interactions with unfortunate timings

� routing policies may break routing consistency� forwarding loop

Page 73: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

Università degli Studi Roma TreDipartimento di Informatica e AutomazioneComputer Networks Research Group

choice 2

overlay

Page 74: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

overlay

� ebgp is not redistributed into the igp

� smaller routing tables

� less igp churn

� ebgp next hops are reached via a direct link (tunnel)

Page 75: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

(don’t forget) internal customers!

� border routers inject a statically configured default route in the igp

� ensure reachability of the external world

Page 76: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

transit as

� stop the current lab

� start the tunnel lab

user@localhost:user@localhost:user@localhost:user@localhost:~$ ~$ ~$ ~$ cd netkitcd netkitcd netkitcd netkit----lab_bgplab_bgplab_bgplab_bgp----transittransittransittransit----asasasas----forwardingforwardingforwardingforwarding----looplooplooploopuser@localhost:~/netkituser@localhost:~/netkituser@localhost:~/netkituser@localhost:~/netkit----lab_bgplab_bgplab_bgplab_bgp----transittransittransittransit----asasasas----forwardingforwardingforwardingforwarding----loop$ lcrash loop$ lcrash loop$ lcrash loop$ lcrash ████

host machinehost machine

user@localhost:user@localhost:user@localhost:user@localhost:~$ ~$ ~$ ~$ cd netkitcd netkitcd netkitcd netkit----lab_bgplab_bgplab_bgplab_bgp----transittransittransittransit----asasasas----tunneltunneltunneltunnel----ipipipipipipipipuser@localhost:~/netkituser@localhost:~/netkituser@localhost:~/netkituser@localhost:~/netkit----lab_bgplab_bgplab_bgplab_bgp----transittransittransittransit----asasasas----tunneltunneltunneltunnel----ipip$ lstart ipip$ lstart ipip$ lstart ipip$ lstart ████

host machinehost machine

Page 77: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

12.0.0.y

11.0.0.x

10.0.0.w

AS10

AS20 AS30

AS100

13.0.0.z

© Computer Networks Research Group Roma Tre

Page 78: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

© Computer Networks Research Group Roma Tre

0.0.0.0/0

Page 79: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

13.0.0.0/3013.0.0.4/30

eth02

AS10

AS20 AS30

AS100

eth01

A 11.0.0.0/30

eth11

eth210

eth02

eth09

eth15

eth16 eth2

5eth1

6 eth29

eth110

D 10.0.0.8/3010.0.0.0/30 E

F

10.0.0.4/30

B

11.0.0.4/30

C

11.0.0.8/30

eth02H I

eth06

eth05

eth19

eth010

eth114

eth113

eth21

M

100.0.0.0/8

lo2.2.2.2

lo3.3.3.3

lo1.1.1.1

12.0.0.0/30 12.0.0.4/30

eth01

r2r16

r1r25

r1r32

r2r39

r3r210

r3r11

13.0.0.8/30

G L

12.0.0.12/3012.0.0.8/30

© Computer Networks Research Group Roma Tre

Page 80: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

configuring a tunnel

ip tunnel add r2r3 mode ipip remote 3.3.3.3 local 2 .2.2.2 ttl 10ip link set r2r3 multicast onip addr add dev r2r3 13.0.0.9 peer 13.0.0.10ifconfig r2r3 upip tunnel add r2r1 mode ipip remote 1.1.1.1 local 2 .2.2.2 ttl 10ip link set r2r1 multicast onip addr add dev r2r1 13.0.0.6 peer 13.0.0.5ifconfig r2r1 up

ip tunnel add r2r3 mode ipip remote 3.3.3.3 local 2 .2.2.2 ttl 10ip link set r2r3 multicast onip addr add dev r2r3 13.0.0.9 peer 13.0.0.10ifconfig r2r3 upip tunnel add r2r1 mode ipip remote 1.1.1.1 local 2 .2.2.2 ttl 10ip link set r2r1 multicast onip addr add dev r2r1 13.0.0.6 peer 13.0.0.5ifconfig r2r1 up

as10rt2 configuration

© Computer Networks Research Group Roma Tre

Page 81: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

configuring a tunnel

r2r3

ip tunnel add r2r3 mode ipip remote 3.3.3.3 local 2. 2.2.2 ttl 10ip link set r2r3 multicast onip addr add dev r2r3 13.0.0.9 peer 13.0.0.10ifconfig r2r3 upip tunnel add r2r1 mode ipip remote 1.1.1.1 local 2 .2.2.2 ttl 10ip link set r2r1 multicast onip addr add dev r2r1 13.0.0.6 peer 13.0.0.5ifconfig r2r1 up

ip tunnel add r2r3 mode ipip remote 3.3.3.3 local 2.2.2.2 ttl 10ip link set r2r3 multicast onip addr add dev r2r3 13.0.0.9 peer 13.0.0.10ifconfig r2r3 upip tunnel add r2r1 mode ipip remote 1.1.1.1 local 2 .2.2.2 ttl 10ip link set r2r1 multicast onip addr add dev r2r1 13.0.0.6 peer 13.0.0.5ifconfig r2r1 up

as10rt2 configuration

© Computer Networks Research Group Roma Tre

endpoint name(appears as a virtual interface on the router

endpoint name(appears as a virtual interface on the router

Page 82: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

ip tunnel add r2r3 mode ipip remote 3.3.3.3 local 2.2 .2.2 ttl 10ip link set r2r3 multicast onip addr add dev r2r3 13.0.0.9 peer 13.0.0.10ifconfig r2r3 upip tunnel add r2r1 mode ipip remote 1.1.1.1 local 2 .2.2.2 ttl 10ip link set r2r1 multicast onip addr add dev r2r1 13.0.0.6 peer 13.0.0.5ifconfig r2r1 up

ip tunnel add r2r3 mode ipip remote 3.3.3.3 local 2.2.2.2 ttl 10ip link set r2r3 multicast onip addr add dev r2r3 13.0.0.9 peer 13.0.0.10ifconfig r2r3 upip tunnel add r2r1 mode ipip remote 1.1.1.1 local 2 .2.2.2 ttl 10ip link set r2r1 multicast onip addr add dev r2r1 13.0.0.6 peer 13.0.0.5ifconfig r2r1 up

as10rt2 configuration

configuring a tunnel

r2r3

© Computer Networks Research Group Roma Tre

encapsulation type(IP in IP)

encapsulation type(IP in IP)

Page 83: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

ip tunnel add r2r3 mode ipip remote 3.3.3.3 local 2.2 .2.2 ttl 10ip link set r2r3 multicast onip addr add dev r2r3 13.0.0.9 peer 13.0.0.10ifconfig r2r3 upip tunnel add r2r1 mode ipip remote 1.1.1.1 local 2 .2.2.2 ttl 10ip link set r2r1 multicast onip addr add dev r2r1 13.0.0.6 peer 13.0.0.5ifconfig r2r1 up

ip tunnel add r2r3 mode ipip remote 3.3.3.3 local 2.2.2.2 ttl 10ip link set r2r3 multicast onip addr add dev r2r3 13.0.0.9 peer 13.0.0.10ifconfig r2r3 upip tunnel add r2r1 mode ipip remote 1.1.1.1 local 2 .2.2.2 ttl 10ip link set r2r1 multicast onip addr add dev r2r1 13.0.0.6 peer 13.0.0.5ifconfig r2r1 up

as10rt2 configuration

configuring a tunnel

r2r3

© Computer Networks Research Group Roma Tre

tunnel endpoints

tunnel endpoints

lo2.2.2.2

lo3.3.3.3

Page 84: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

ip tunnel add r2r3 mode ipip remote 3.3.3.3 local 2.2 .2.2 ttl 10ip link set r2r3 multicast onip addr add dev r2r3 13.0.0.9 peer 13.0.0.10ifconfig r2r3 upip tunnel add r2r1 mode ipip remote 1.1.1.1 local 2 .2.2.2 ttl 10ip link set r2r1 multicast onip addr add dev r2r1 13.0.0.6 peer 13.0.0.5ifconfig r2r1 up

ip tunnel add r2r3 mode ipip remote 3.3.3.3 local 2.2 .2.2 ttl 10ip link set r2r3 multicast onip addr add dev r2r3 13.0.0.9 peer 13.0.0.10ifconfig r2r3 upip tunnel add r2r1 mode ipip remote 1.1.1.1 local 2 .2.2.2 ttl 10ip link set r2r1 multicast onip addr add dev r2r1 13.0.0.6 peer 13.0.0.5ifconfig r2r1 up

as10rt2 configuration

configuring a tunnel

r2r3

© Computer Networks Research Group Roma Tre

tunnel interfaces are “pointopoint” ⇒default ttl is 1

tunnel interfaces are “pointopoint” ⇒default ttl is 1

lo2.2.2.2

lo3.3.3.3

as10rt2:~# ifconfig r2r3as10rt2:~# ifconfig r2r3as10rt2:~# ifconfig r2r3as10rt2:~# ifconfig r2r3r2r3 Link encap:IPIP Tunnel HWaddr r2r3 Link encap:IPIP Tunnel HWaddr r2r3 Link encap:IPIP Tunnel HWaddr r2r3 Link encap:IPIP Tunnel HWaddr

inet addr:13.0.0.9 Pinet addr:13.0.0.9 Pinet addr:13.0.0.9 Pinet addr:13.0.0.9 P----tttt----P:13.0.0.10 Mask:255.255.255.255P:13.0.0.10 Mask:255.255.255.255P:13.0.0.10 Mask:255.255.255.255P:13.0.0.10 Mask:255.255.255.255UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1480 MetrUP POINTOPOINT RUNNING NOARP MULTICAST MTU:1480 MetrUP POINTOPOINT RUNNING NOARP MULTICAST MTU:1480 MetrUP POINTOPOINT RUNNING NOARP MULTICAST MTU:1480 Metric:1ic:1ic:1ic:1RX packets:160 errors:0 dropped:0 overruns:0 frame:0RX packets:160 errors:0 dropped:0 overruns:0 frame:0RX packets:160 errors:0 dropped:0 overruns:0 frame:0RX packets:160 errors:0 dropped:0 overruns:0 frame:0TX packets:160 errors:4 dropped:0 overruns:0 carrier:4TX packets:160 errors:4 dropped:0 overruns:0 carrier:4TX packets:160 errors:4 dropped:0 overruns:0 carrier:4TX packets:160 errors:4 dropped:0 overruns:0 carrier:4collisions:0 txqueuelen:0 collisions:0 txqueuelen:0 collisions:0 txqueuelen:0 collisions:0 txqueuelen:0 RX bytes:8320 (8.1 KiB) TX bytes:11520 (11.2 KiB)RX bytes:8320 (8.1 KiB) TX bytes:11520 (11.2 KiB)RX bytes:8320 (8.1 KiB) TX bytes:11520 (11.2 KiB)RX bytes:8320 (8.1 KiB) TX bytes:11520 (11.2 KiB)

████

as10rt2as10rt2

Page 85: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

ip tunnel add r2r3 mode ipip remote 3.3.3.3 local 2.2 .2.2 ttl 10ip link set r2r3 multicast onip addr add dev r2r3 13.0.0.9 peer 13.0.0.10ifconfig r2r3 upip tunnel add r2r1 mode ipip remote 1.1.1.1 local 2 .2.2.2 ttl 10ip link set r2r1 multicast onip addr add dev r2r1 13.0.0.6 peer 13.0.0.5ifconfig r2r1 up

ip tunnel add r2r3 mode ipip remote 3.3.3.3 local 2.2 .2.2 ttl 10ip link set r2r3 multicast onip addr add dev r2r3 13.0.0.9 peer 13.0.0.10ifconfig r2r3 upip tunnel add r2r1 mode ipip remote 1.1.1.1 local 2 .2.2.2 ttl 10ip link set r2r1 multicast onip addr add dev r2r1 13.0.0.6 peer 13.0.0.5ifconfig r2r1 up

as10rt2 configuration

configuring a tunnel

r2r3

© Computer Networks Research Group Roma Tre

rip uses multicast packets

rip uses multicast packets

lo2.2.2.2

lo3.3.3.3

Page 86: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

ip tunnel add r2r3 mode ipip remote 3.3.3.3 local 2.2 .2.2 ttl 10ip link set r2r3 multicast onip addr add dev r2r3 13.0.0.9 peer 13.0.0.10ifconfig r2r3 upip tunnel add r2r1 mode ipip remote 1.1.1.1 local 2 .2.2.2 ttl 10ip link set r2r1 multicast onip addr add dev r2r1 13.0.0.6 peer 13.0.0.5ifconfig r2r1 up

ip tunnel add r2r3 mode ipip remote 3.3.3.3 local 2.2 .2.2 ttl 10ip link set r2r3 multicast onip addr add dev r2r3 13.0.0.9 peer 13.0.0.10ifconfig r2r3 upip tunnel add r2r1 mode ipip remote 1.1.1.1 local 2 .2.2.2 ttl 10ip link set r2r1 multicast onip addr add dev r2r1 13.0.0.6 peer 13.0.0.5ifconfig r2r1 up

as10rt2 configuration

configuring a tunnel

r2r39

© Computer Networks Research Group Roma Tre

assign an ip address to the tunnel interface

assign an ip address to the tunnel interface

lo2.2.2.2

lo3.3.3.3

“13.0.0.8/30”

Page 87: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

ip tunnel add r2r3 mode ipip remote 3.3.3.3 local 2.2 .2.2 ttl 10ip link set r2r3 multicast onip addr add dev r2r3 13.0.0.9 peer 13.0.0.10ifconfig r2r3 upip tunnel add r2r1 mode ipip remote 1.1.1.1 local 2 .2.2.2 ttl 10ip link set r2r1 multicast onip addr add dev r2r1 13.0.0.6 peer 13.0.0.5ifconfig r2r1 up

ip tunnel add r2r3 mode ipip remote 3.3.3.3 local 2.2 .2.2 ttl 10ip link set r2r3 multicast onip addr add dev r2r3 13.0.0.9 peer 13.0.0.10ifconfig r2r3 upip tunnel add r2r1 mode ipip remote 1.1.1.1 local 2 .2.2.2 ttl 10ip link set r2r1 multicast onip addr add dev r2r1 13.0.0.6 peer 13.0.0.5ifconfig r2r1 up

as10rt2 configuration

configuring a tunnel

r2r39

© Computer Networks Research Group Roma Tre

assign an ip address to the tunnel interface

assign an ip address to the tunnel interface

lo2.2.2.2

lo3.3.3.3

“13.0.0.8/30”

�note: this is a pointopoint interface

�speaking of “network”is senseless

�we do it nevertheless to simplify the graphical layout

�note: this is a pointopoint interface

�speaking of “network”is senseless

�we do it nevertheless to simplify the graphical layout

Page 88: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

ip tunnel add r2r3 mode ipip remote 3.3.3.3 local 2.2 .2.2 ttl 10ip link set r2r3 multicast onip addr add dev r2r3 13.0.0.9 peer 13.0.0.10ifconfig r2r3 upip tunnel add r2r1 mode ipip remote 1.1.1.1 local 2 .2.2.2 ttl 10ip link set r2r1 multicast onip addr add dev r2r1 13.0.0.6 peer 13.0.0.5ifconfig r2r1 up

ip tunnel add r2r3 mode ipip remote 3.3.3.3 local 2.2 .2.2 ttl 10ip link set r2r3 multicast onip addr add dev r2r3 13.0.0.9 peer 13.0.0.10ifconfig r2r3 upip tunnel add r2r1 mode ipip remote 1.1.1.1 local 2 .2.2.2 ttl 10ip link set r2r1 multicast onip addr add dev r2r1 13.0.0.6 peer 13.0.0.5ifconfig r2r1 up

as10rt2 configuration

configuring a tunnel

r2r39

© Computer Networks Research Group Roma Tre

for a pointopoint interface we can set the address of

the other endpoint

for a pointopoint interface we can set the address of

the other endpoint

lo2.2.2.2

lo3.3.3.3

“13.0.0.8/30”

10

Page 89: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

10

ip tunnel add r2r3 mode ipip remote 3.3.3.3 local 2.2 .2.2 ttl 10ip link set r2r3 multicast onip addr add dev r2r3 13.0.0.9 peer 13.0.0.10ifconfig r2r3 upip tunnel add r2r1 mode ipip remote 1.1.1.1 local 2 .2.2.2 ttl 10ip link set r2r1 multicast onip addr add dev r2r1 13.0.0.6 peer 13.0.0.5ifconfig r2r1 up

ip tunnel add r2r3 mode ipip remote 3.3.3.3 local 2.2 .2.2 ttl 10ip link set r2r3 multicast onip addr add dev r2r3 13.0.0.9 peer 13.0.0.10ifconfig r2r3 upip tunnel add r2r1 mode ipip remote 1.1.1.1 local 2 .2.2.2 ttl 10ip link set r2r1 multicast onip addr add dev r2r1 13.0.0.6 peer 13.0.0.5ifconfig r2r1 up

as10rt2 configuration

configuring a tunnel

r2r39

© Computer Networks Research Group Roma Tre

for a pointopoint interface we can set the address of

the other endpoint

for a pointopoint interface we can set the address of

the other endpoint

lo2.2.2.2

lo3.3.3.3

“13.0.0.8/30”note: failure to set the peer’s address causes rip

to be unable to recognize packets coming from the tunnel

2007/10/30 11:27:25 RIP: RECV packet from 13.0.0.10 port 520 on unknown

2007/10/30 11:27:25 RIP: packet comes from unknown interface

note: failure to set the peer’s address causes rip to be unable to recognize packets coming from the tunnel

2007/10/30 11:27:25 RIP: RECV packet from 13.0.0.10 port 520 on unknown

2007/10/30 11:27:25 RIP: packet comes from unknown interface

Page 90: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

ip tunnel add r2r3 mode ipip remote 3.3.3.3 local 2.2 .2.2 ttl 10ip link set r2r3 multicast onip addr add dev r2r3 13.0.0.9 peer 13.0.0.10ifconfig r2r3 upip tunnel add r2r1 mode ipip remote 1.1.1.1 local 2 .2.2.2 ttl 10ip link set r2r1 multicast onip addr add dev r2r1 13.0.0.6 peer 13.0.0.5ifconfig r2r1 up

ip tunnel add r2r3 mode ipip remote 3.3.3.3 local 2.2 .2.2 ttl 10ip link set r2r3 multicast onip addr add dev r2r3 13.0.0.9 peer 13.0.0.10ifconfig r2r3 upip tunnel add r2r1 mode ipip remote 1.1.1.1 local 2 .2.2.2 ttl 10ip link set r2r1 multicast onip addr add dev r2r1 13.0.0.6 peer 13.0.0.5ifconfig r2r1 up

as10rt2 configuration

configuring a tunnel

r2r39

© Computer Networks Research Group Roma Tre

switch the tunnel interface on

switch the tunnel interface on

lo2.2.2.2

lo3.3.3.3

“13.0.0.8/30”

Page 91: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

tunnels and routing

router ripredistribute connectednetwork eth1network r2r3network r2r1distribute-list externalNetworks out r2r1distribute-list externalNetworks out r2r3distribute-list internalNetworks out eth1route 0.0.0.0/0

!access-list externalNetworks permit 12.0.0.0/30access-list externalNetworks deny anyaccess-list internalNetworks deny 13.0.0.0/24access-list internalNetworks deny 12.0.0.0/24access-list internalNetworks permit any

router ripredistribute connectednetwork eth1network r2r3network r2r1distribute-list externalNetworks out r2r1distribute-list externalNetworks out r2r3distribute-list internalNetworks out eth1route 0.0.0.0/0

!access-list externalNetworks permit 12.0.0.0/30access-list externalNetworks deny anyaccess-list internalNetworks deny 13.0.0.0/24access-list internalNetworks deny 12.0.0.0/24access-list internalNetworks permit any

as10rt2 ripd configuration

Page 92: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

tunnels and routing

router ripredistribute connectednetwork eth1network r2r3network r2r1distribute-list externalNetworks out r2r1distribute-list externalNetworks out r2r3distribute-list internalNetworks out eth1route 0.0.0.0/0

!access-list externalNetworks permit 12.0.0.0/30access-list externalNetworks deny anyaccess-list internalNetworks deny 13.0.0.0/24access-list internalNetworks deny 12.0.0.0/24access-list internalNetworks permit any

router ripredistribute connectednetwork eth1network r2r3network r2r1distribute-list externalNetworks out r2r1distribute-list externalNetworks out r2r3distribute-list internalNetworks out eth1route 0.0.0.0/0

!access-list externalNetworks permit 12.0.0.0/30access-list externalNetworks deny anyaccess-list internalNetworks deny 13.0.0.0/24access-list internalNetworks deny 12.0.0.0/24access-list internalNetworks permit any

as10rt2 ripd configuration

talk rip even on tunnel interfaces

talk rip even on tunnel interfaces

Page 93: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

tunnels and routing

router ripredistribute connectednetwork eth1network r2r3network r2r1distribute-list externalNetworks out r2r1distribute-list externalNetworks out r2r3distribute-list internalNetworks out eth1route 0.0.0.0/0

!access-list externalNetworks permit 12.0.0.0/30access-list externalNetworks deny anyaccess-list internalNetworks deny 13.0.0.0/24access-list internalNetworks deny 12.0.0.0/24access-list internalNetworks permit any

router ripredistribute connectednetwork eth1network r2r3network r2r1distribute-list externalNetworks out r2r1distribute-list externalNetworks out r2r3distribute-list internalNetworks out eth1route 0.0.0.0/0

!access-list externalNetworks permit 12.0.0.0/30access-list externalNetworks deny anyaccess-list internalNetworks deny 13.0.0.0/24access-list internalNetworks deny 12.0.0.0/24access-list internalNetworks permit any

as10rt2 ripd configuration

propagate a statically configured default route inside the

transit as

propagate a statically configured default route inside the

transit as

Page 94: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

tunnels and routing

router ripredistribute connectednetwork eth1network r2r3network r2r1distribute-list externalNetworks out r2r1distribute-list externalNetworks out r2r3distribute-list internalNetworks out eth1route 0.0.0.0/0

!access-list externalNetworks permit 12.0.0.0/30access-list externalNetworks deny anyaccess-list internalNetworks deny 13.0.0.0/24access-list internalNetworks deny 12.0.0.0/24access-list internalNetworks permit any

router ripredistribute connectednetwork eth1network r2r3network r2r1distribute-list externalNetworks out r2r1distribute-list externalNetworks out r2r3distribute-list internalNetworks out eth1route 0.0.0.0/0

!access-list externalNetworks permit 12.0.0.0/30access-list externalNetworks deny anyaccess-list internalNetworks deny 13.0.0.0/24access-list internalNetworks deny 12.0.0.0/24access-list internalNetworks permit any

as10rt2 ripd configuration

beware of what you say to whom

beware of what you say to whom

Page 95: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

tunnels and routing

� we cannot announce the tunnel’s endpoints inside the tunnel

lo3.3.3.3

lo2.2.2.2

Page 96: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

tunnels and routing

� we cannot announce the tunnel’s endpoints inside the tunnel

� that would tear down the tunnel!

lo3.3.3.3

lo2.2.2.2

Page 97: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

tunnels and routing

� we shouldn’t announce the tunnel’s interfaces outside the tunnel

r2r39

r3r210

Page 98: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

tunnels and routing

� we shouldn’t announce the tunnel’s interfaces outside the tunnel

� traffic might flow outside the tunnel

r2r39

r3r210

Page 99: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

tunnels and routing

router ripredistribute connectednetwork eth1network r2r3network r2r1distribute-list externalNetworks out r2r1distribute-list externalNetworks out r2r3distribute-list internalNetworks out eth1route 0.0.0.0/0

!access-list externalNetworks permit 12.0.0.0/30access-list externalNetworks deny anyaccess-list internalNetworks deny 13.0.0.0/24access-list internalNetworks deny 12.0.0.0/24access-list internalNetworks permit any

router ripredistribute connectednetwork eth1network r2r3network r2r1distribute-list externalNetworks out r2r1distribute-list externalNetworks out r2r3distribute-list internalNetworks out eth1route 0.0.0.0/0

!access-list externalNetworks permit 12.0.0.0/30access-list externalNetworks deny anyaccess-list internalNetworks deny 13.0.0.0/24access-list internalNetworks deny 12.0.0.0/24access-list internalNetworks permit any

as10rt2 ripd configuration

access-list s instruct rip about what to propagate

access-list s instruct rip about what to propagate

Page 100: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

tunnels and routing

router ripredistribute connectednetwork eth1network r2r3network r2r1distribute-list externalNetworks out r2r1distribute-list externalNetworks out r2r3distribute-list internalNetworks out eth1route 0.0.0.0/0

!access-list externalNetworks permit 12.0.0.0/30access-list externalNetworks deny anyaccess-list internalNetworks deny 13.0.0.0/24access-list internalNetworks deny 12.0.0.0/24access-list internalNetworks permit any

router ripredistribute connectednetwork eth1network r2r3network r2r1distribute-list externalNetworks out r2r1distribute-list externalNetworks out r2r3distribute-list internalNetworks out eth1route 0.0.0.0/0

!access-list externalNetworks permit 12.0.0.0/30access-list externalNetworks deny anyaccess-list internalNetworks deny 13.0.0.0/24access-list internalNetworks deny 12.0.0.0/24access-list internalNetworks permit any

as10rt2 ripd configuration

ebgp next hops (in this case as20r1 ) are announced

inside the tunnel

ebgp next hops (in this case as20r1 ) are announced

inside the tunnel

Page 101: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

tunnels and routing

router ripredistribute connectednetwork eth1network r2r3network r2r1distribute-list externalNetworks out r2r1distribute-list externalNetworks out r2r3distribute-list internalNetworks out eth1route 0.0.0.0/0

!access-list externalNetworks permit 12.0.0.0/30access-list externalNetworks deny anyaccess-list internalNetworks deny 13.0.0.0/24access-list internalNetworks deny 12.0.0.0/24access-list internalNetworks permit any

router ripredistribute connectednetwork eth1network r2r3network r2r1distribute-list externalNetworks out r2r1distribute-list externalNetworks out r2r3distribute-list internalNetworks out eth1route 0.0.0.0/0

!access-list externalNetworks permit 12.0.0.0/30access-list externalNetworks deny anyaccess-list internalNetworks deny 13.0.0.0/24access-list internalNetworks deny 12.0.0.0/24access-list internalNetworks permit any

as10rt2 ripd configuration

ebgp next hops (in this case as20r1 ) are not announced

outside the tunnel

ebgp next hops (in this case as20r1 ) are not announced

outside the tunnel

Page 102: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

tunnels and routing

router ripredistribute connectednetwork eth1network r2r3network r2r1distribute-list externalNetworks out r2r1distribute-list externalNetworks out r2r3distribute-list internalNetworks out eth1route 0.0.0.0/0

!access-list externalNetworks permit 12.0.0.0/30access-list externalNetworks deny anyaccess-list internalNetworks deny 13.0.0.0/24access-list internalNetworks deny 12.0.0.0/24access-list internalNetworks permit any

router ripredistribute connectednetwork eth1network r2r3network r2r1distribute-list externalNetworks out r2r1distribute-list externalNetworks out r2r3distribute-list internalNetworks out eth1route 0.0.0.0/0

!access-list externalNetworks permit 12.0.0.0/30access-list externalNetworks deny anyaccess-list internalNetworks deny 13.0.0.0/24access-list internalNetworks deny 12.0.0.0/24access-list internalNetworks permit any

as10rt2 ripd configuration

note: the same routing behavior could be obtained using static routes

note: the same routing behavior could be obtained using static routes

Page 103: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

tunnels and routing� check the zebra routing table on as10rt3

Router> show ip routeRouter> show ip routeRouter> show ip routeRouter> show ip routeCodes: K Codes: K Codes: K Codes: K ---- kernel route, C kernel route, C kernel route, C kernel route, C ---- connected, S connected, S connected, S connected, S ---- static, R static, R static, R static, R ---- RIP, O RIP, O RIP, O RIP, O ---- OSPF,OSPF,OSPF,OSPF,

B B B B ---- BGP, > BGP, > BGP, > BGP, > ---- selected route, * selected route, * selected route, * selected route, * ---- FIB routeFIB routeFIB routeFIB route

R>* 1.1.1.1/32 [120/4] via 11.0.0.9, eth1, 03:27:03R>* 1.1.1.1/32 [120/4] via 11.0.0.9, eth1, 03:27:03R>* 1.1.1.1/32 [120/4] via 11.0.0.9, eth1, 03:27:03R>* 1.1.1.1/32 [120/4] via 11.0.0.9, eth1, 03:27:03R>* 2.2.2.2/32 [120/4] via 11.0.0.9, eth1, 03:27:03R>* 2.2.2.2/32 [120/4] via 11.0.0.9, eth1, 03:27:03R>* 2.2.2.2/32 [120/4] via 11.0.0.9, eth1, 03:27:03R>* 2.2.2.2/32 [120/4] via 11.0.0.9, eth1, 03:27:03C>* 3.3.3.3/32 is directly connected, loC>* 3.3.3.3/32 is directly connected, loC>* 3.3.3.3/32 is directly connected, loC>* 3.3.3.3/32 is directly connected, loR>* 10.0.0.0/30 [120/3] via 11.0.0.9, eth1, 03:27:03R>* 10.0.0.0/30 [120/3] via 11.0.0.9, eth1, 03:27:03R>* 10.0.0.0/30 [120/3] via 11.0.0.9, eth1, 03:27:03R>* 10.0.0.0/30 [120/3] via 11.0.0.9, eth1, 03:27:03R>* 10.0.0.4/30 [120/2] via 11.0.0.9, eth1, 03:27:03R>* 10.0.0.4/30 [120/2] via 11.0.0.9, eth1, 03:27:03R>* 10.0.0.4/30 [120/2] via 11.0.0.9, eth1, 03:27:03R>* 10.0.0.4/30 [120/2] via 11.0.0.9, eth1, 03:27:03R>* 10.0.0.8/30 [120/2] via 11.0.0.9, eth1, 03:27:03R>* 10.0.0.8/30 [120/2] via 11.0.0.9, eth1, 03:27:03R>* 10.0.0.8/30 [120/2] via 11.0.0.9, eth1, 03:27:03R>* 10.0.0.8/30 [120/2] via 11.0.0.9, eth1, 03:27:03R>* 11.0.0.0/30 [120/3] via 11.0.0.9, eth1, 03:27:03R>* 11.0.0.0/30 [120/3] via 11.0.0.9, eth1, 03:27:03R>* 11.0.0.0/30 [120/3] via 11.0.0.9, eth1, 03:27:03R>* 11.0.0.0/30 [120/3] via 11.0.0.9, eth1, 03:27:03R>* 11.0.0.4/30 [120/3] via 11.0.0.9, eth1, 03:27:03R>* 11.0.0.4/30 [120/3] via 11.0.0.9, eth1, 03:27:03R>* 11.0.0.4/30 [120/3] via 11.0.0.9, eth1, 03:27:03R>* 11.0.0.4/30 [120/3] via 11.0.0.9, eth1, 03:27:03C>* 11.0.0.8/30 is directly connected, eth1C>* 11.0.0.8/30 is directly connected, eth1C>* 11.0.0.8/30 is directly connected, eth1C>* 11.0.0.8/30 is directly connected, eth1R>* 12.0.0.0/30 [120/2] via 13.0.0.9, r3r2, 03:26:44R>* 12.0.0.0/30 [120/2] via 13.0.0.9, r3r2, 03:26:44R>* 12.0.0.0/30 [120/2] via 13.0.0.9, r3r2, 03:26:44R>* 12.0.0.0/30 [120/2] via 13.0.0.9, r3r2, 03:26:44B 12.0.0.0/30 [200/0] via 2.2.2.2, recursive via 11.0.0.9, ethB 12.0.0.0/30 [200/0] via 2.2.2.2, recursive via 11.0.0.9, ethB 12.0.0.0/30 [200/0] via 2.2.2.2, recursive via 11.0.0.9, ethB 12.0.0.0/30 [200/0] via 2.2.2.2, recursive via 11.0.0.9, eth1, 03:26:581, 03:26:581, 03:26:581, 03:26:58C>* 12.0.0.4/30 is directly connected, eth0C>* 12.0.0.4/30 is directly connected, eth0C>* 12.0.0.4/30 is directly connected, eth0C>* 12.0.0.4/30 is directly connected, eth0B>* 12.0.0.8/30 [200/0] via 12.0.0.2, recursive via 13.0.0.9, r3B>* 12.0.0.8/30 [200/0] via 12.0.0.2, recursive via 13.0.0.9, r3B>* 12.0.0.8/30 [200/0] via 12.0.0.2, recursive via 13.0.0.9, r3B>* 12.0.0.8/30 [200/0] via 12.0.0.2, recursive via 13.0.0.9, r3r2, 03:26:38r2, 03:26:38r2, 03:26:38r2, 03:26:38B>* 12.0.0.12/30 [20/0] via 12.0.0.6, eth0, 03:26:24B>* 12.0.0.12/30 [20/0] via 12.0.0.6, eth0, 03:26:24B>* 12.0.0.12/30 [20/0] via 12.0.0.6, eth0, 03:26:24B>* 12.0.0.12/30 [20/0] via 12.0.0.6, eth0, 03:26:24C>* 13.0.0.2/32 is directly connected, r3r1C>* 13.0.0.2/32 is directly connected, r3r1C>* 13.0.0.2/32 is directly connected, r3r1C>* 13.0.0.2/32 is directly connected, r3r1C>* 13.0.0.9/32 is directly connected, r3r2C>* 13.0.0.9/32 is directly connected, r3r2C>* 13.0.0.9/32 is directly connected, r3r2C>* 13.0.0.9/32 is directly connected, r3r2B>* 20.0.0.0/8 [200/0] via 12.0.0.2, recursive via 13.0.0.9, r3rB>* 20.0.0.0/8 [200/0] via 12.0.0.2, recursive via 13.0.0.9, r3rB>* 20.0.0.0/8 [200/0] via 12.0.0.2, recursive via 13.0.0.9, r3rB>* 20.0.0.0/8 [200/0] via 12.0.0.2, recursive via 13.0.0.9, r3r2, 03:26:382, 03:26:382, 03:26:382, 03:26:38B>* 30.0.0.0/8 [20/0] via 12.0.0.6, eth0, 03:26:24B>* 30.0.0.0/8 [20/0] via 12.0.0.6, eth0, 03:26:24B>* 30.0.0.0/8 [20/0] via 12.0.0.6, eth0, 03:26:24B>* 30.0.0.0/8 [20/0] via 12.0.0.6, eth0, 03:26:24B>* 100.0.0.0/8 [20/0] via 12.0.0.6, eth0, 03:26:24B>* 100.0.0.0/8 [20/0] via 12.0.0.6, eth0, 03:26:24B>* 100.0.0.0/8 [20/0] via 12.0.0.6, eth0, 03:26:24B>* 100.0.0.0/8 [20/0] via 12.0.0.6, eth0, 03:26:24C>* 127.0.0.0/8 is directly connected, loC>* 127.0.0.0/8 is directly connected, loC>* 127.0.0.0/8 is directly connected, loC>* 127.0.0.0/8 is directly connected, lo

as10rt3as10rt3

© Computer Networks Research Group Roma Tre

destinations routed through the tunnel

destinations routed through the tunnel

Page 104: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

tunnels and routing

� as10rt2 prefers the egress point as10rt3

as10rt2:~# traceroute as10rt2:~# traceroute as10rt2:~# traceroute as10rt2:~# traceroute ----s 12.0.0.1 100.0.0.1s 12.0.0.1 100.0.0.1s 12.0.0.1 100.0.0.1s 12.0.0.1 100.0.0.1traceroute to 100.0.0.1 (100.0.0.1) from 12.0.0.1, 64 hops max, traceroute to 100.0.0.1 (100.0.0.1) from 12.0.0.1, 64 hops max, traceroute to 100.0.0.1 (100.0.0.1) from 12.0.0.1, 64 hops max, traceroute to 100.0.0.1 (100.0.0.1) from 12.0.0.1, 64 hops max, 40 40 40 40 byte packetsbyte packetsbyte packetsbyte packets1 13.0.0.10 (13.0.0.10) 3 ms 3 ms 2 ms1 13.0.0.10 (13.0.0.10) 3 ms 3 ms 2 ms1 13.0.0.10 (13.0.0.10) 3 ms 3 ms 2 ms1 13.0.0.10 (13.0.0.10) 3 ms 3 ms 2 ms2 12.0.0.6 (12.0.0.6) 2 ms 4 ms 5 ms2 12.0.0.6 (12.0.0.6) 2 ms 4 ms 5 ms2 12.0.0.6 (12.0.0.6) 2 ms 4 ms 5 ms2 12.0.0.6 (12.0.0.6) 2 ms 4 ms 5 ms3 100.0.0.1 (100.0.0.1) 2 ms 2 ms 2 ms3 100.0.0.1 (100.0.0.1) 2 ms 2 ms 2 ms3 100.0.0.1 (100.0.0.1) 2 ms 2 ms 2 ms3 100.0.0.1 (100.0.0.1) 2 ms 2 ms 2 ms

as10rt2as10rt2

Page 105: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

tunnels and routing

� as10rt2 prefers the egress point as10rt3

� now as10rt3 is directly reached via the tunnel

as10rt2:~# traceroute as10rt2:~# traceroute as10rt2:~# traceroute as10rt2:~# traceroute ----s 12.0.0.1 100.0.0.1s 12.0.0.1 100.0.0.1s 12.0.0.1 100.0.0.1s 12.0.0.1 100.0.0.1traceroute to 100.0.0.1 (100.0.0.1) from 12.0.0.1, 64 hops max, traceroute to 100.0.0.1 (100.0.0.1) from 12.0.0.1, 64 hops max, traceroute to 100.0.0.1 (100.0.0.1) from 12.0.0.1, 64 hops max, traceroute to 100.0.0.1 (100.0.0.1) from 12.0.0.1, 64 hops max, 40 40 40 40 byte packetsbyte packetsbyte packetsbyte packets1 1 1 1 13.0.0.1013.0.0.1013.0.0.1013.0.0.10 (13.0.0.10) 3 ms 3 ms 2 ms(13.0.0.10) 3 ms 3 ms 2 ms(13.0.0.10) 3 ms 3 ms 2 ms(13.0.0.10) 3 ms 3 ms 2 ms2 12.0.0.6 (12.0.0.6) 2 ms 4 ms 5 ms2 12.0.0.6 (12.0.0.6) 2 ms 4 ms 5 ms2 12.0.0.6 (12.0.0.6) 2 ms 4 ms 5 ms2 12.0.0.6 (12.0.0.6) 2 ms 4 ms 5 ms3 100.0.0.1 (100.0.0.1) 2 ms 2 ms 2 ms3 100.0.0.1 (100.0.0.1) 2 ms 2 ms 2 ms3 100.0.0.1 (100.0.0.1) 2 ms 2 ms 2 ms3 100.0.0.1 (100.0.0.1) 2 ms 2 ms 2 ms

as10rt2as10rt2

did we already mention you should use a source address

that is reachable from outside the transit as?

did we already mention you should use a source address

that is reachable from outside the transit as?

Page 106: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

tunnels and routing

� a look outside the tunnel

as10rt2:~# ip tunnel show r2r3as10rt2:~# ip tunnel show r2r3as10rt2:~# ip tunnel show r2r3as10rt2:~# ip tunnel show r2r3r2r3: ip/ip remote 3.3.3.3 local 2.2.2.2 ttl 10 r2r3: ip/ip remote 3.3.3.3 local 2.2.2.2 ttl 10 r2r3: ip/ip remote 3.3.3.3 local 2.2.2.2 ttl 10 r2r3: ip/ip remote 3.3.3.3 local 2.2.2.2 ttl 10 as10rt2:~# ip link show eth0as10rt2:~# ip link show eth0as10rt2:~# ip link show eth0as10rt2:~# ip link show eth01: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen1: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen1: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen1: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000100010001000

link/ether fe:fd:0c:00:00:01 brd ff:ff:ff:ff:ff:fflink/ether fe:fd:0c:00:00:01 brd ff:ff:ff:ff:ff:fflink/ether fe:fd:0c:00:00:01 brd ff:ff:ff:ff:ff:fflink/ether fe:fd:0c:00:00:01 brd ff:ff:ff:ff:ff:ffas10rt2:~# ip link show r2r3as10rt2:~# ip link show r2r3as10rt2:~# ip link show r2r3as10rt2:~# ip link show r2r37: r2r3@NONE: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1480 qdisc no7: r2r3@NONE: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1480 qdisc no7: r2r3@NONE: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1480 qdisc no7: r2r3@NONE: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1480 qdisc noqueue queue queue queue

link/ipip 2.2.2.2 peer 3.3.3.3link/ipip 2.2.2.2 peer 3.3.3.3link/ipip 2.2.2.2 peer 3.3.3.3link/ipip 2.2.2.2 peer 3.3.3.3as10rt2:~# as10rt2:~# as10rt2:~# as10rt2:~# ████

as10rt2as10rt2

the tunnel is activethe tunnel is active

Page 107: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

as10rt2:~# ip tunnel show r2r3as10rt2:~# ip tunnel show r2r3as10rt2:~# ip tunnel show r2r3as10rt2:~# ip tunnel show r2r3r2r3: ip/ip remote 3.3.3.3 local 2.2.2.2 ttl 10 r2r3: ip/ip remote 3.3.3.3 local 2.2.2.2 ttl 10 r2r3: ip/ip remote 3.3.3.3 local 2.2.2.2 ttl 10 r2r3: ip/ip remote 3.3.3.3 local 2.2.2.2 ttl 10 as10rt2:~# ip link show eth0as10rt2:~# ip link show eth0as10rt2:~# ip link show eth0as10rt2:~# ip link show eth01: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen1: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen1: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen1: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000100010001000

link/ether fe:fd:0c:00:00:01 brd ff:ff:ff:ff:ff:fflink/ether fe:fd:0c:00:00:01 brd ff:ff:ff:ff:ff:fflink/ether fe:fd:0c:00:00:01 brd ff:ff:ff:ff:ff:fflink/ether fe:fd:0c:00:00:01 brd ff:ff:ff:ff:ff:ffas10rt2:~# ip link show r2r3as10rt2:~# ip link show r2r3as10rt2:~# ip link show r2r3as10rt2:~# ip link show r2r37: r2r3@NONE: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1480 qdisc no7: r2r3@NONE: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1480 qdisc no7: r2r3@NONE: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1480 qdisc no7: r2r3@NONE: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1480 qdisc noqueue queue queue queue

link/ipip 2.2.2.2 peer 3.3.3.3link/ipip 2.2.2.2 peer 3.3.3.3link/ipip 2.2.2.2 peer 3.3.3.3link/ipip 2.2.2.2 peer 3.3.3.3as10rt2:~# as10rt2:~# as10rt2:~# as10rt2:~# ████

as10rt2as10rt2

tunnels and routing

� a look outside the tunnel

the tunnel’s mtu is 20 bytes smaller because of the

additional ip header

the tunnel’s mtu is 20 bytes smaller because of the

additional ip header

Page 108: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

tunnels and routing� a look inside the tunnel

as10rt2:~# ping as10rt2:~# ping as10rt2:~# ping as10rt2:~# ping ----I 12.0.0.1 100.0.0.1I 12.0.0.1 100.0.0.1I 12.0.0.1 100.0.0.1I 12.0.0.1 100.0.0.1PING 100.0.0.1 (100.0.0.1) from 12.0.0.1 : 56(84) bytes of data.PING 100.0.0.1 (100.0.0.1) from 12.0.0.1 : 56(84) bytes of data.PING 100.0.0.1 (100.0.0.1) from 12.0.0.1 : 56(84) bytes of data.PING 100.0.0.1 (100.0.0.1) from 12.0.0.1 : 56(84) bytes of data.64 bytes from 100.0.0.1: icmp_seq=1 ttl=63 time=1.43 ms64 bytes from 100.0.0.1: icmp_seq=1 ttl=63 time=1.43 ms64 bytes from 100.0.0.1: icmp_seq=1 ttl=63 time=1.43 ms64 bytes from 100.0.0.1: icmp_seq=1 ttl=63 time=1.43 ms64 bytes from 100.0.0.1: icmp_seq=3 ttl=63 time=1.41 ms64 bytes from 100.0.0.1: icmp_seq=3 ttl=63 time=1.41 ms64 bytes from 100.0.0.1: icmp_seq=3 ttl=63 time=1.41 ms64 bytes from 100.0.0.1: icmp_seq=3 ttl=63 time=1.41 ms████

as10rt2as10rt2

as10r5:~# tcpdump as10r5:~# tcpdump as10r5:~# tcpdump as10r5:~# tcpdump ----i eth1i eth1i eth1i eth1tcpdump: verbose output suppressed, use tcpdump: verbose output suppressed, use tcpdump: verbose output suppressed, use tcpdump: verbose output suppressed, use ----v or v or v or v or ----vv for full protocol vv for full protocol vv for full protocol vv for full protocol decodedecodedecodedecodelistening on eth1, linklistening on eth1, linklistening on eth1, linklistening on eth1, link----type EN10MB (Ethernet), capture size 96 bytestype EN10MB (Ethernet), capture size 96 bytestype EN10MB (Ethernet), capture size 96 bytestype EN10MB (Ethernet), capture size 96 bytes14:58:30.602023 IP 2.2.2.2 > 3.3.3.3: IP 12.0.0.1 > 100.0.0.1: i14:58:30.602023 IP 2.2.2.2 > 3.3.3.3: IP 12.0.0.1 > 100.0.0.1: i14:58:30.602023 IP 2.2.2.2 > 3.3.3.3: IP 12.0.0.1 > 100.0.0.1: i14:58:30.602023 IP 2.2.2.2 > 3.3.3.3: IP 12.0.0.1 > 100.0.0.1: icmp cmp cmp cmp 64: echo request seq 27 (ipip64: echo request seq 27 (ipip64: echo request seq 27 (ipip64: echo request seq 27 (ipip----protoprotoprotoproto----4)4)4)4)14:58:31.612680 IP 2.2.2.2 > 3.3.3.3: IP 12.0.0.1 > 100.0.0.1: i14:58:31.612680 IP 2.2.2.2 > 3.3.3.3: IP 12.0.0.1 > 100.0.0.1: i14:58:31.612680 IP 2.2.2.2 > 3.3.3.3: IP 12.0.0.1 > 100.0.0.1: i14:58:31.612680 IP 2.2.2.2 > 3.3.3.3: IP 12.0.0.1 > 100.0.0.1: icmp cmp cmp cmp 64: echo request seq 28 (ipip64: echo request seq 28 (ipip64: echo request seq 28 (ipip64: echo request seq 28 (ipip----protoprotoprotoproto----4)4)4)4)████

as10r5as10r5

packets are encapsulated

packets are encapsulated

Page 109: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

tunnels and routing� a look inside the tunnel

as10rt2:~# ping as10rt2:~# ping as10rt2:~# ping as10rt2:~# ping ----I 12.0.0.1 100.0.0.1I 12.0.0.1 100.0.0.1I 12.0.0.1 100.0.0.1I 12.0.0.1 100.0.0.1PING 100.0.0.1 (100.0.0.1) from 12.0.0.1 : 56(84) bytes of data.PING 100.0.0.1 (100.0.0.1) from 12.0.0.1 : 56(84) bytes of data.PING 100.0.0.1 (100.0.0.1) from 12.0.0.1 : 56(84) bytes of data.PING 100.0.0.1 (100.0.0.1) from 12.0.0.1 : 56(84) bytes of data.64 bytes from 100.0.0.1: icmp_seq=1 ttl=63 time=1.43 ms64 bytes from 100.0.0.1: icmp_seq=1 ttl=63 time=1.43 ms64 bytes from 100.0.0.1: icmp_seq=1 ttl=63 time=1.43 ms64 bytes from 100.0.0.1: icmp_seq=1 ttl=63 time=1.43 ms64 bytes from 100.0.0.1: icmp_seq=3 ttl=63 time=1.41 ms64 bytes from 100.0.0.1: icmp_seq=3 ttl=63 time=1.41 ms64 bytes from 100.0.0.1: icmp_seq=3 ttl=63 time=1.41 ms64 bytes from 100.0.0.1: icmp_seq=3 ttl=63 time=1.41 ms████

as10rt2as10rt2

as10r5:~# tcpdump as10r5:~# tcpdump as10r5:~# tcpdump as10r5:~# tcpdump ----i eth1i eth1i eth1i eth1tcpdump: verbose output suppressed, use tcpdump: verbose output suppressed, use tcpdump: verbose output suppressed, use tcpdump: verbose output suppressed, use ----v or v or v or v or ----vv for full protocol vv for full protocol vv for full protocol vv for full protocol decodedecodedecodedecodelistening on eth1, linklistening on eth1, linklistening on eth1, linklistening on eth1, link----type EN10MB (Ethernet), capture size 96 bytestype EN10MB (Ethernet), capture size 96 bytestype EN10MB (Ethernet), capture size 96 bytestype EN10MB (Ethernet), capture size 96 bytes14:58:30.602023 IP 2.2.2.2 > 3.3.3.3: IP 12.0.0.1 > 100.0.0.1: i14:58:30.602023 IP 2.2.2.2 > 3.3.3.3: IP 12.0.0.1 > 100.0.0.1: i14:58:30.602023 IP 2.2.2.2 > 3.3.3.3: IP 12.0.0.1 > 100.0.0.1: i14:58:30.602023 IP 2.2.2.2 > 3.3.3.3: IP 12.0.0.1 > 100.0.0.1: icmp cmp cmp cmp 64: echo request seq 27 (ipip64: echo request seq 27 (ipip64: echo request seq 27 (ipip64: echo request seq 27 (ipip----protoprotoprotoproto----4)4)4)4)14:58:31.612680 IP 2.2.2.2 > 3.3.3.3: IP 12.0.0.1 > 100.0.0.1: i14:58:31.612680 IP 2.2.2.2 > 3.3.3.3: IP 12.0.0.1 > 100.0.0.1: i14:58:31.612680 IP 2.2.2.2 > 3.3.3.3: IP 12.0.0.1 > 100.0.0.1: i14:58:31.612680 IP 2.2.2.2 > 3.3.3.3: IP 12.0.0.1 > 100.0.0.1: icmp cmp cmp cmp 64: echo request seq 28 (ipip64: echo request seq 28 (ipip64: echo request seq 28 (ipip64: echo request seq 28 (ipip----protoprotoprotoproto----4)4)4)4)████

as10r5as10r5

outer ip addresses correspond to the tunnel endpoints

outer ip addresses correspond to the tunnel endpoints

Page 110: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

tunnels and routing� a look inside the tunnel

as10rt2:~# ping as10rt2:~# ping as10rt2:~# ping as10rt2:~# ping ----I 12.0.0.1 100.0.0.1I 12.0.0.1 100.0.0.1I 12.0.0.1 100.0.0.1I 12.0.0.1 100.0.0.1PING 100.0.0.1 (100.0.0.1) from 12.0.0.1 : 56(84) bytes of data.PING 100.0.0.1 (100.0.0.1) from 12.0.0.1 : 56(84) bytes of data.PING 100.0.0.1 (100.0.0.1) from 12.0.0.1 : 56(84) bytes of data.PING 100.0.0.1 (100.0.0.1) from 12.0.0.1 : 56(84) bytes of data.64 bytes from 100.0.0.1: icmp_seq=1 ttl=63 time=1.43 ms64 bytes from 100.0.0.1: icmp_seq=1 ttl=63 time=1.43 ms64 bytes from 100.0.0.1: icmp_seq=1 ttl=63 time=1.43 ms64 bytes from 100.0.0.1: icmp_seq=1 ttl=63 time=1.43 ms64 bytes from 100.0.0.1: icmp_seq=3 ttl=63 time=1.41 ms64 bytes from 100.0.0.1: icmp_seq=3 ttl=63 time=1.41 ms64 bytes from 100.0.0.1: icmp_seq=3 ttl=63 time=1.41 ms64 bytes from 100.0.0.1: icmp_seq=3 ttl=63 time=1.41 ms████

as10rt2as10rt2

as10r5:~# tcpdump as10r5:~# tcpdump as10r5:~# tcpdump as10r5:~# tcpdump ----i eth1i eth1i eth1i eth1tcpdump: verbose output suppressed, use tcpdump: verbose output suppressed, use tcpdump: verbose output suppressed, use tcpdump: verbose output suppressed, use ----v or v or v or v or ----vv for full protocol vv for full protocol vv for full protocol vv for full protocol decodedecodedecodedecodelistening on eth1, linklistening on eth1, linklistening on eth1, linklistening on eth1, link----type EN10MB (Ethernet), capture size 96 bytestype EN10MB (Ethernet), capture size 96 bytestype EN10MB (Ethernet), capture size 96 bytestype EN10MB (Ethernet), capture size 96 bytes14:58:30.602023 IP 2.2.2.2 > 3.3.3.3: IP 12.0.0.1 > 100.0.0.1: i14:58:30.602023 IP 2.2.2.2 > 3.3.3.3: IP 12.0.0.1 > 100.0.0.1: i14:58:30.602023 IP 2.2.2.2 > 3.3.3.3: IP 12.0.0.1 > 100.0.0.1: i14:58:30.602023 IP 2.2.2.2 > 3.3.3.3: IP 12.0.0.1 > 100.0.0.1: icmp cmp cmp cmp 64: echo request seq 27 (ipip64: echo request seq 27 (ipip64: echo request seq 27 (ipip64: echo request seq 27 (ipip----protoprotoprotoproto----4)4)4)4)14:58:31.612680 IP 2.2.2.2 > 3.3.3.3: IP 12.0.0.1 > 100.0.0.1: i14:58:31.612680 IP 2.2.2.2 > 3.3.3.3: IP 12.0.0.1 > 100.0.0.1: i14:58:31.612680 IP 2.2.2.2 > 3.3.3.3: IP 12.0.0.1 > 100.0.0.1: i14:58:31.612680 IP 2.2.2.2 > 3.3.3.3: IP 12.0.0.1 > 100.0.0.1: icmp cmp cmp cmp 64: echo request seq 28 (ipip64: echo request seq 28 (ipip64: echo request seq 28 (ipip64: echo request seq 28 (ipip----protoprotoprotoproto----4)4)4)4)████

as10r5as10r5

inner ip addresses correspond to the real source and destination

inner ip addresses correspond to the real source and destination

Page 111: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

transit as: routing tables

as10r6as10r6as10r6as10r6----ripd> show ip ripripd> show ip ripripd> show ip ripripd> show ip ripCodes: R Codes: R Codes: R Codes: R ---- RIP, C RIP, C RIP, C RIP, C ---- connected, O connected, O connected, O connected, O ---- OSPF, B OSPF, B OSPF, B OSPF, B ---- BGPBGPBGPBGP

(n) (n) (n) (n) ---- normal, (s) normal, (s) normal, (s) normal, (s) ---- static, (d) static, (d) static, (d) static, (d) ---- default, (r) default, (r) default, (r) default, (r) ---- redistribute,redistribute,redistribute,redistribute,(i) (i) (i) (i) ---- interfaceinterfaceinterfaceinterface

Network Next Hop Metric From Network Next Hop Metric From Network Next Hop Metric From Network Next Hop Metric From TimeTimeTimeTimeR(n) 0.0.0.0/0 11.0.0.10 2 11.0.0.10 R(n) 0.0.0.0/0 11.0.0.10 2 11.0.0.10 R(n) 0.0.0.0/0 11.0.0.10 2 11.0.0.10 R(n) 0.0.0.0/0 11.0.0.10 2 11.0.0.10 02:4802:4802:4802:48R(n) 1.1.1.1/32 10.0.0.10 3 10.0.0.10 R(n) 1.1.1.1/32 10.0.0.10 3 10.0.0.10 R(n) 1.1.1.1/32 10.0.0.10 3 10.0.0.10 R(n) 1.1.1.1/32 10.0.0.10 3 10.0.0.10 02:5902:5902:5902:59R(n) 2.2.2.2/32 10.0.0.5 3 10.0.0.5 R(n) 2.2.2.2/32 10.0.0.5 3 10.0.0.5 R(n) 2.2.2.2/32 10.0.0.5 3 10.0.0.5 R(n) 2.2.2.2/32 10.0.0.5 3 10.0.0.5 02:4902:4902:4902:49R(n) 3.3.3.3/32 11.0.0.10 2 11.0.0.10 R(n) 3.3.3.3/32 11.0.0.10 2 11.0.0.10 R(n) 3.3.3.3/32 11.0.0.10 2 11.0.0.10 R(n) 3.3.3.3/32 11.0.0.10 2 11.0.0.10 02:4802:4802:4802:48R(n) 10.0.0.0/30 10.0.0.5 2 10.0.0.5 R(n) 10.0.0.0/30 10.0.0.5 2 10.0.0.5 R(n) 10.0.0.0/30 10.0.0.5 2 10.0.0.5 R(n) 10.0.0.0/30 10.0.0.5 2 10.0.0.5 02:4902:4902:4902:49C(i) 10.0.0.4/30 0.0.0.0 1 selfC(i) 10.0.0.4/30 0.0.0.0 1 selfC(i) 10.0.0.4/30 0.0.0.0 1 selfC(i) 10.0.0.4/30 0.0.0.0 1 selfC(i) 10.0.0.8/30 0.0.0.0 1 selfC(i) 10.0.0.8/30 0.0.0.0 1 selfC(i) 10.0.0.8/30 0.0.0.0 1 selfC(i) 10.0.0.8/30 0.0.0.0 1 selfR(n) 11.0.0.0/30 10.0.0.10 2 10.0.0.10 R(n) 11.0.0.0/30 10.0.0.10 2 10.0.0.10 R(n) 11.0.0.0/30 10.0.0.10 2 10.0.0.10 R(n) 11.0.0.0/30 10.0.0.10 2 10.0.0.10 02:5902:5902:5902:59R(n) 11.0.0.4/30 10.0.0.5 2 10.0.0.5 R(n) 11.0.0.4/30 10.0.0.5 2 10.0.0.5 R(n) 11.0.0.4/30 10.0.0.5 2 10.0.0.5 R(n) 11.0.0.4/30 10.0.0.5 2 10.0.0.5 02:4902:4902:4902:49C(i) 11.0.0.8/30 0.0.0.0 1 selfC(i) 11.0.0.8/30 0.0.0.0 1 selfC(i) 11.0.0.8/30 0.0.0.0 1 selfC(i) 11.0.0.8/30 0.0.0.0 1 selfas10r6as10r6as10r6as10r6----ripd> ripd> ripd> ripd> ████

as10r6as10r6

Page 112: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

transit as: routing tables

as10r6as10r6as10r6as10r6----ripd> show ip ripripd> show ip ripripd> show ip ripripd> show ip ripCodes: R Codes: R Codes: R Codes: R ---- RIP, C RIP, C RIP, C RIP, C ---- connected, O connected, O connected, O connected, O ---- OSPF, B OSPF, B OSPF, B OSPF, B ---- BGPBGPBGPBGP

(n) (n) (n) (n) ---- normal, (s) normal, (s) normal, (s) normal, (s) ---- static, (d) static, (d) static, (d) static, (d) ---- default, (r) default, (r) default, (r) default, (r) ---- redistribute,redistribute,redistribute,redistribute,(i) (i) (i) (i) ---- interfaceinterfaceinterfaceinterface

Network Next Hop Metric From Network Next Hop Metric From Network Next Hop Metric From Network Next Hop Metric From TimeTimeTimeTimeR(n) 0.0.0.0/0 11.0.0.10 2 11.0.0.10 R(n) 0.0.0.0/0 11.0.0.10 2 11.0.0.10 R(n) 0.0.0.0/0 11.0.0.10 2 11.0.0.10 R(n) 0.0.0.0/0 11.0.0.10 2 11.0.0.10 02:4802:4802:4802:48R(n) 1.1.1.1/32 10.0.0.10 3 10.0.0.10 R(n) 1.1.1.1/32 10.0.0.10 3 10.0.0.10 R(n) 1.1.1.1/32 10.0.0.10 3 10.0.0.10 R(n) 1.1.1.1/32 10.0.0.10 3 10.0.0.10 02:5902:5902:5902:59R(n) 2.2.2.2/32 10.0.0.5 3 10.0.0.5 R(n) 2.2.2.2/32 10.0.0.5 3 10.0.0.5 R(n) 2.2.2.2/32 10.0.0.5 3 10.0.0.5 R(n) 2.2.2.2/32 10.0.0.5 3 10.0.0.5 02:4902:4902:4902:49R(n) 3.3.3.3/32 11.0.0.10 2 11.0.0.10 R(n) 3.3.3.3/32 11.0.0.10 2 11.0.0.10 R(n) 3.3.3.3/32 11.0.0.10 2 11.0.0.10 R(n) 3.3.3.3/32 11.0.0.10 2 11.0.0.10 02:4802:4802:4802:48R(n) 10.0.0.0/30 10.0.0.5 2 10.0.0.5 R(n) 10.0.0.0/30 10.0.0.5 2 10.0.0.5 R(n) 10.0.0.0/30 10.0.0.5 2 10.0.0.5 R(n) 10.0.0.0/30 10.0.0.5 2 10.0.0.5 02:4902:4902:4902:49C(i) 10.0.0.4/30 0.0.0.0 1 selfC(i) 10.0.0.4/30 0.0.0.0 1 selfC(i) 10.0.0.4/30 0.0.0.0 1 selfC(i) 10.0.0.4/30 0.0.0.0 1 selfC(i) 10.0.0.8/30 0.0.0.0 1 selfC(i) 10.0.0.8/30 0.0.0.0 1 selfC(i) 10.0.0.8/30 0.0.0.0 1 selfC(i) 10.0.0.8/30 0.0.0.0 1 selfR(n) 11.0.0.0/30 10.0.0.10 2 10.0.0.10 R(n) 11.0.0.0/30 10.0.0.10 2 10.0.0.10 R(n) 11.0.0.0/30 10.0.0.10 2 10.0.0.10 R(n) 11.0.0.0/30 10.0.0.10 2 10.0.0.10 02:5902:5902:5902:59R(n) 11.0.0.4/30 10.0.0.5 2 10.0.0.5 R(n) 11.0.0.4/30 10.0.0.5 2 10.0.0.5 R(n) 11.0.0.4/30 10.0.0.5 2 10.0.0.5 R(n) 11.0.0.4/30 10.0.0.5 2 10.0.0.5 02:4902:4902:4902:49C(i) 11.0.0.8/30 0.0.0.0 1 selfC(i) 11.0.0.8/30 0.0.0.0 1 selfC(i) 11.0.0.8/30 0.0.0.0 1 selfC(i) 11.0.0.8/30 0.0.0.0 1 selfas10r6as10r6as10r6as10r6----ripd> ripd> ripd> ripd> ████

as10r6as10r6

injecting a default route from the border routers reduces the size of the routing tables of internal routers

injecting a default route from the border routers reduces the size of the routing tables of internal routers

Page 113: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

as20r1:~# telnet localhost bgpdas20r1:~# telnet localhost bgpdas20r1:~# telnet localhost bgpdas20r1:~# telnet localhost bgpdTrying 127.0.0.1...Trying 127.0.0.1...Trying 127.0.0.1...Trying 127.0.0.1...Connected to as20r1.Connected to as20r1.Connected to as20r1.Connected to as20r1.Escape character is '^]'.Escape character is '^]'.Escape character is '^]'.Escape character is '^]'.

Hello, this is zebra (version 0.94).Hello, this is zebra (version 0.94).Hello, this is zebra (version 0.94).Hello, this is zebra (version 0.94).............as20r1as20r1as20r1as20r1----bgpd> enable bgpd> enable bgpd> enable bgpd> enable as20r1as20r1as20r1as20r1----bgpd# configure terminal bgpd# configure terminal bgpd# configure terminal bgpd# configure terminal as20r1as20r1as20r1as20r1----bgpd(config)# router bgp 20bgpd(config)# router bgp 20bgpd(config)# router bgp 20bgpd(config)# router bgp 20as20r1as20r1as20r1as20r1----bgpd(configbgpd(configbgpd(configbgpd(config----router)# neighbor 12.0.0.10 shutdown router)# neighbor 12.0.0.10 shutdown router)# neighbor 12.0.0.10 shutdown router)# neighbor 12.0.0.10 shutdown ████

as20r1as20r1

transit as: playing with the backup

� let’s bring as100 ’s primary link down (again!)� expected result: traffic from as20r1 to as100r1should traverse the transit as

AS20

AS100

G LAS30

Page 114: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

as20r1:~# traceroute 100.0.0.1as20r1:~# traceroute 100.0.0.1as20r1:~# traceroute 100.0.0.1as20r1:~# traceroute 100.0.0.1traceroute to 100.0.0.1 (100.0.0.1), 64 hops max, 40 byte packettraceroute to 100.0.0.1 (100.0.0.1), 64 hops max, 40 byte packettraceroute to 100.0.0.1 (100.0.0.1), 64 hops max, 40 byte packettraceroute to 100.0.0.1 (100.0.0.1), 64 hops max, 40 byte packetssss1 12.0.0.1 (12.0.0.1) 2 ms 2 ms 1 ms1 12.0.0.1 (12.0.0.1) 2 ms 2 ms 1 ms1 12.0.0.1 (12.0.0.1) 2 ms 2 ms 1 ms1 12.0.0.1 (12.0.0.1) 2 ms 2 ms 1 ms2 13.0.0.10 (13.0.0.10) 2 ms 3 ms 2 ms2 13.0.0.10 (13.0.0.10) 2 ms 3 ms 2 ms2 13.0.0.10 (13.0.0.10) 2 ms 3 ms 2 ms2 13.0.0.10 (13.0.0.10) 2 ms 3 ms 2 ms3 12.0.0.6 (12.0.0.6) 3 ms 3 ms 3 ms3 12.0.0.6 (12.0.0.6) 3 ms 3 ms 3 ms3 12.0.0.6 (12.0.0.6) 3 ms 3 ms 3 ms3 12.0.0.6 (12.0.0.6) 3 ms 3 ms 3 ms4 100.0.0.1 (100.0.0.1) 3 ms 3 ms 3 ms4 100.0.0.1 (100.0.0.1) 3 ms 3 ms 3 ms4 100.0.0.1 (100.0.0.1) 3 ms 3 ms 3 ms4 100.0.0.1 (100.0.0.1) 3 ms 3 ms 3 msas20r1:~# as20r1:~# as20r1:~# as20r1:~# ████

as20r1as20r1

transit as: playing with the backup

� wait for the routing to converge

� fingers crossed...

� check the reachability of 100.0.0.0/8

� traffic is now traversing the transit as!

Page 115: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

© Computer Networks Research Group Roma Treactual traffic path

path seen by routers

Page 116: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

as10r5:~# ifconfig eth2 downas10r5:~# ifconfig eth2 downas10r5:~# ifconfig eth2 downas10r5:~# ifconfig eth2 down

as10r5:~# traceroute 10.0.0.6as10r5:~# traceroute 10.0.0.6as10r5:~# traceroute 10.0.0.6as10r5:~# traceroute 10.0.0.6traceroute to 10.0.0.6 (10.0.0.6), 64 hops max, 40 byte packetstraceroute to 10.0.0.6 (10.0.0.6), 64 hops max, 40 byte packetstraceroute to 10.0.0.6 (10.0.0.6), 64 hops max, 40 byte packetstraceroute to 10.0.0.6 (10.0.0.6), 64 hops max, 40 byte packets1 10.0.0.1 (10.0.0.1) 1 ms 1 ms 1 ms1 10.0.0.1 (10.0.0.1) 1 ms 1 ms 1 ms1 10.0.0.1 (10.0.0.1) 1 ms 1 ms 1 ms1 10.0.0.1 (10.0.0.1) 1 ms 1 ms 1 ms2 10.0.0.6 (10.0.0.6) 1 ms 2 ms 2 ms2 10.0.0.6 (10.0.0.6) 1 ms 2 ms 2 ms2 10.0.0.6 (10.0.0.6) 1 ms 2 ms 2 ms2 10.0.0.6 (10.0.0.6) 1 ms 2 ms 2 msas10r5:~# as10r5:~# as10r5:~# as10r5:~# ████

as10r5as10r5

transit as: “rubbery” tunnels

� breaking an internal link does not tear the tunnels down

� (as long as the transit as is not partitioned)

Page 117: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

AS10

AS20 AS30

AS100

© Computer Networks Research Group Roma Tre

Page 118: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

� wait for the routing to converge

� be really patient

� check the reachability of 100.0.0.0/8

� traffic is still able to traverse the transit as

as20r1:~# traceroute 100.0.0.1as20r1:~# traceroute 100.0.0.1as20r1:~# traceroute 100.0.0.1as20r1:~# traceroute 100.0.0.1traceroute to 100.0.0.1 (100.0.0.1), 64 hops max, 40 byte packettraceroute to 100.0.0.1 (100.0.0.1), 64 hops max, 40 byte packettraceroute to 100.0.0.1 (100.0.0.1), 64 hops max, 40 byte packettraceroute to 100.0.0.1 (100.0.0.1), 64 hops max, 40 byte packetssss1 12.0.0.1 (12.0.0.1) 1 ms 1 ms 1 ms1 12.0.0.1 (12.0.0.1) 1 ms 1 ms 1 ms1 12.0.0.1 (12.0.0.1) 1 ms 1 ms 1 ms1 12.0.0.1 (12.0.0.1) 1 ms 1 ms 1 ms2 13.0.0.10 (13.0.0.10) 2 ms 4 ms 2 ms2 13.0.0.10 (13.0.0.10) 2 ms 4 ms 2 ms2 13.0.0.10 (13.0.0.10) 2 ms 4 ms 2 ms2 13.0.0.10 (13.0.0.10) 2 ms 4 ms 2 ms3 12.0.0.6 (12.0.0.6) 3 ms 3 ms 3 ms3 12.0.0.6 (12.0.0.6) 3 ms 3 ms 3 ms3 12.0.0.6 (12.0.0.6) 3 ms 3 ms 3 ms3 12.0.0.6 (12.0.0.6) 3 ms 3 ms 3 ms4 100.0.0.1 (100.0.0.1) 6 ms 3 ms 4 ms4 100.0.0.1 (100.0.0.1) 6 ms 3 ms 4 ms4 100.0.0.1 (100.0.0.1) 6 ms 3 ms 4 ms4 100.0.0.1 (100.0.0.1) 6 ms 3 ms 4 msas20r1:~# as20r1:~# as20r1:~# as20r1:~# ████

as20r1as20r1

transit as: “rubbery” tunnels

Page 119: UniversitàdegliStudiRoma Tre DipartimentodiInformaticae Automazione Computer …wiki.netkit.org/netkit-labs/netkit-labs_interdomain... · 2009-01-20 · UniversitàdegliStudiRoma

last update: Jan 2009netkit – [ lab: bgp-transit-as ]© Computer Networks Research Group Roma Tre

conclusions

� an overlay network is better� smaller routing tables on internal routers� less churn� predictable interplay between igp and egp

� sample implementation: tunnels� directed to the egress points

� support internal customers� static default route injected into rip

� observations� bgp peerings could be established on the tunnel interfaces

� tunnels are as robust as the underlying igp