Modeling the Border Gateway Protocol
Xenofontas Dimitropoulos
George Riley
Georgia Institute of Technology
MANIACS2
Modeling the Border Gateway Protocol
Georgia Institute of Technology
Outline
BGP background and motivation. Modeling BGP.
– BGP++ development approach.– BGP++ features.
Work in progress and future plans.
MANIACS3
Modeling the Border Gateway Protocol
Georgia Institute of Technology
is the default interdomain routing protocol of the Internet.
“is the glue that holds the Internet together”. is a protocol of critical importance.
What is BGP ?
BGP routers
MANIACS4
Modeling the Border Gateway Protocol
Georgia Institute of Technology
BGP increased interest
BGP does not work well.– Delayed convergence– Divergence issues– Incompatible vendor
implementations– Misbehavior of flap
dampening– Correlation between worm
propagation and Internet instability.
– 20-25% of paths are inflated.
Taken from Craig Labovitz, G. Robert Malan, Farham Jahanian
MANIACS5
Modeling the Border Gateway Protocol
Georgia Institute of Technology
BGP problem prone characteristics
Distributed nature
of BGP
Flexibility leftto the operator
in the form of policies
Irregular abrupt
growth of the Internet
“BGP is not a well understood protocol”
MANIACS6
Modeling the Border Gateway Protocol
Georgia Institute of Technology
Outline
BGP background and motivation. Modeling BGP,
– BGP++ development approach.– BGP++ features.
Work in progress and future plans.
MANIACS7
Modeling the Border Gateway Protocol
Georgia Institute of Technology
What is BGP++ ?
C++ implementation of BGPv4, developed for ns-2.
Agent
Add. Classifier
ns node
Port Classifier
bgpd
Zebradeamonbgpd ospfd ripd
Unix routing table
GNU Zebra software architecture
Figure 1. Zebra bgpd and ns-2 integration.
BGP++ is GNU Zebra bgpd patched to work with ns-2.
MANIACS8
Modeling the Border Gateway Protocol
Georgia Institute of Technology
Development Approach Outline
To incorporate GNU Zebra bgpd in ns-2:– Convert C code to C++.– Interleave Zebra scheduler with simulator
scheduler. – Use FullTcp API instead of BSD sockets.– Modify configuration and logging facilities
MANIACS9
Modeling the Border Gateway Protocol
Georgia Institute of Technology
Convert C code to C++.
C functions are converted into C++ functions, members of the BGP class.
C global variables are converted into member variables of the BGP class.
MANIACS10
Modeling the Border Gateway Protocol
Georgia Institute of Technology
main() {
}
Zebra bgpd vs ns-2 scheduling
main() {
}
initializations
select()
execute
initializations
fetch
execute
Scheduler queueMultiplex IO streams
MANIACS11
Modeling the Border Gateway Protocol
Georgia Institute of Technology
Interleaved scheduling
main() {
}
initializations
select()
execute
bgp_main()
post_select()
pre_select()
ns2 scheduler queue
bgpd start event
MANIACS12
Modeling the Border Gateway Protocol
Georgia Institute of Technology
Replace BSD sockets with TcpFull
Dynamically tear up/down of tcp connections. Slightly modify tcp-full to notify the
application when the connection moves:– From SYN_RCVD to ESTABLISHED– From SYN_SENT to ESTABLISHED– From ESTABLISHED to CLOSE_WAIT
MANIACS13
Modeling the Border Gateway Protocol
Georgia Institute of Technology
Further modifications
Modify Zebra facilities to support OO environment, e.g. logging and configuration.
Get rid of all unnecessary features, e.g. telnet interface.
Dig in the code.
MANIACS14
Modeling the Border Gateway Protocol
Georgia Institute of Technology
Outline
BGP background and motivation. Modeling BGP,
– BGP++ development approach.– BGP++ features.
Work in progress and future plans.
MANIACS15
Modeling the Border Gateway Protocol
Georgia Institute of Technology
ns-2
set r [new BgpRegistry]set fin 400 ; # finish time
set BGP1 [new Application/Route/Bgp]
$BGP1 register $r$BGP1 finish-time $fin$BGP1 config-file
/sth/bgpd1.conf$BGP1 attach-node $n1
.tcl configuration configuration configuration configuration configuration configuration
BGP routers
BGP++ configuration
MANIACS16
Modeling the Border Gateway Protocol
Georgia Institute of Technology
BGP++ configuration
Use router configuration commands that are used by Zebra to configure simulated routers.
Approximately 320 supported commands. Only few new ns-2 commands added.
MANIACS17
Modeling the Border Gateway Protocol
Georgia Institute of Technology
Configuring BGP instances
[xdimi@enzo example1]$ more bgpd1.conf!Local AS and local IP addressrouter bgp 1bgp router-id 192.38.14.1
!Neighborsneighbor 192.38.14.2 remote-as 2
!Networks advertisednetwork 190.0.0.0 mask 255.0.0.0network 189.0.0.0 mask 255.0.0.0log file bgpd1.log
MANIACS18
Modeling the Border Gateway Protocol
Georgia Institute of Technology
Run time configuration instead of telnet interface.
$ns at 10 “$BGP1 execute \”no neighbor 192.38.14.2\””
$ns at 15 “$BGP3 execute \”show ip bgp\””
$ns at 20 “$BGP2 execute \”neighbor 192.38.14.3 \ advertisement-
interval 20\””
MANIACS19
Modeling the Border Gateway Protocol
Georgia Institute of Technology
BGP++, configuring policies
Route Maps “route-map” Access Lists “ip access-list” Community Lists “ip community-list” AS path access lists “ip as-path access-list” Prefix Lists “ip prefix list”
MANIACS20
Modeling the Border Gateway Protocol
Georgia Institute of Technology
Validation
Run several simple validation tests. Recreate same topology in lab and compare. Minimum modifications on “core” of Zebra
software.
MANIACS21
Modeling the Border Gateway Protocol
Georgia Institute of Technology
Future Work
Use BGP++ with pdns to see how large we can get.
Examine BGP convergence time at scales. Integrate BGP++ with GTNetS.
MANIACS22
Modeling the Border Gateway Protocol
Georgia Institute of Technology
Recap
Big scale simulations are necessary in BGP research.
BGP++: a BGP implementation for ns-2– Development approach.– Features
Top Related