---
name: "bgpsim"
section: "1"
platform: "linux"
package: "mrt"
version: "2.2.2a-3"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/bgpsim"
---

# bgpsim(1)

BGP4 routing environment simulator

## NAME

bgpsim - BGP4 routing environment simulator

## DESCRIPTION

Usage: bgpsim \[-i router\_id\] \[-p port\] \[-f file\] \[-v\] \[-o output\]

BGPsim simulates complex BGP4 routing environments with possibly high levels of routing instability/change.

BGPsim includes a perl program, BGPsim.pl, which is used to generate ASCII descriptions of BGP traffic for use with route\_btoa and sbgp. (The BGPsim Perl code is still quite rough.)

  Synopsis

BGPsim \[-f configuration\_file\] \[-l routing table\] \[-v\] \[-s\] \[-m\]

  Options

   \-f configuration\_file\
           Read the specified configuration file. By default, bgpsim tries\
           to read ./bgpsim.conf.

   \-v\
           Turn on verbose logging to standard output. This is useful to\
           turn on logging before the debug commands are read in the\
           configuration file.

   \-s\
           By default, BGPSim does not set mandatory BGP attributes,\
           including origin, nexthop and ASPath. If this flag is used,\
           BGPsim will add these attributes and prepend the local AS to\
           the ASPath.

   \-m\
           Use a new dump format.

  Description

By default, BGPsim looks for "./bgpsim.conf". The format of the configuration file is described below. BGPsim also has an interactive (Cisco Systems router-like) interface: telnet to port 5674 on the machine running BGPsim.

NOTE:

BGPsim does not include mandatory attributes by default. You will need to explicitly include a nexthop, origin, and apsath attribute in your BGPsim configuration. Also note that BGPSim does not prepend its own AS by default.

  Sample Configuration File

A sample BGPsim configuration file is shown below.

network-list 1 range 10.0.0.0/8 11.0.0.0 stability 10 jitter 4 map 1 ! route-map 1 set nexthop 198.108.60.8 set aspath 185 123 23 23 12 set origin igp !

network-list 2 range 192.32.0.0/24 192.32.255.0 stability 9 jitter 3 change 12 jitter 4 route-map 2 3 ! route-map 2 set next-hop 198.108.60.244 set as-path 185 123 23 23 12 set origin igp set community 56:123 set dpa as 56 121 set local-preference 23 ! route-map 3 set as-path 185 100 10 102 set origin igp set community 100:345 set dpa as 3 23 set local-preference 83 ! router bgp 185\
   neighbor 198.108.60.244 remote-as 65\
   neighbor 198.108.60.112 remote-as 165

   This file describes two simulation processes, as defined by\
    network-list 1 and 2, which changes routes to two BGP peers (AS 65 and\
    AS165).

   The first simulation process, network-list 1, changes routes\
    (10.0.0.0/8 and 11.0.0.0/8) as defined in range every 10 seconds. This\
    simulates an announcement of the routes first, and then a withdrawal\
    after 10 seconds. Ten seconds after the withdraw, the next\
    announcement is propagated. Thus the announcements and withdraws are\
    repeated every 10 seconds. These routes have attributes defined in\
    route-map 1: nexthop is 198.108.60.8 and aspath is a sequence of 123\
    23 23 12.

   The second network list describes simulation of the range of routes\
    from 192.32.0.0/24 to 192.32.255.0/24 (i.e. 192.32.1.0/24,\
    192\.32.2.0/24, etc.) All of these routes have an initial aspath of\
    (123 23 23 12), a next-hop of 198.108.60.244, and others as defined in\
    route-map 2. These attributes change every 12 seconds among route-maps\
    2 and 3.

   The peers (AS 65 and AS165) receive routing updates originated by\
    these two simulation processes.

  Configuration Commands

   For information about the uii, debug, and access-list configuration\
    commands, see Chapter 2, "Getting Started." In addition to the MRTd\
    configuration commands, the following are available in BGPsim to\
    simulate routing changes:

   network-list\
    Defines a network-list with . This definition behaves like a routing\
        process which generates routing changes within a range defined by\
        range subcommand by an interval defined by stability subcommand,\
        changing route attributes as specified by change and route-map\
        subcommands.

   Options include:

   range

   Defines a range to announce and withdraw, starting with up to\
        (inclusive). The range is along classful boundaries.

   stability\
    \[jitter \]

       Defines an interval in second to change routes. Routes are\
        announced first and then withdrawn after the interval. Thus, with\
        the interval, announce and withdraw repeat. Jitter adds/subtracts\
        a random number of seconds between 0 and \<jitter number\> to the\
        interval.

   change\
    \[jitter \]

       Defines an interval in second to change attributes of routes being\
        announced. route-map subcommand defines a sequence. Jitter\
        adds/subtracts a random \<number\> of seconds from the timer.

   map ...

   Defines a sequence of route-maps to be used. The next route-mapis\
        adopted after the interval defined in change subcommand. At the\
        end of list, the first route-map is adopted as a next. The first\
        route-map behaves as a default, that is, this is always adopted\
        before adopting other route-maps.

   file ...

   Loads routes from routing table dump file rather than using a range of\
        addresses.

   BGPSim also adds several commands to bgp router commands:

   neighbor stability

   Define stability for TCP peering session with this peer.

  Interactive Interface Commands

   The BGPsim interactive interface supports the following commands in\
    addition to MRTd interactive interface commands:

   show simulation

   stop simulation

   start simulation

You can find more documentation in /usr/share/doc/mrt/html/
