2017-04-17 10:33:09 +05:30

3.2 KiB

MRT

This page explains how to play with GoBGP's MRT feature.

Prerequisites

Assume you finished Getting Started.

Contents

Inject routes from MRT table v2 records

Route injection can be done by

$ gobgp mrt inject global <dumpfile> [<number of prefix to inject>]

Dump updates in MRT BGP4MP format

Configuration

With the following configuration, gobgpd continuously dumps BGP update messages to /tmp/updates.dump file in the BGP4MP format.

[global.config]
as = 64512
router-id = "10.0.255.254"

[[neighbors]]
  [neighbors.config]
    peer-as = 65001
    neighbor-address = "10.0.255.1"

[[mrt-dump]]
  [mrt-dump.config]
    dump-type = "updates"
    file-name = "/tmp/updates.dump"

[[mrt-dump]]
  [mrt-dump.config]
    dump-type = "table"
    file-name = "/tmp/table.dump"
    dump-interval = 60

Also gobgpd supports log rotation; a new dump file is created periodically, and the old file is renamed to a different name. With the following configuration, gobgpd creates a new dump file every 180 seconds such as /tmp/20160510.1546.dump. The format of a name can be specified in golang's time package's format.

[global.config]
as = 64512
router-id = "10.0.255.254"

[[neighbors]]
  [neighbors.config]
    peer-as = 65001
    neighbor-address = "10.0.255.1"

[[mrt-dump]]
  [mrt-dump.config]
    dump-type = "updates"
    file-name = "/tmp/log/20060102.1504.dump"
    rotation-interval = 180

Dump the RIB in MRT TABLE_DUMPv2 format

Configuration

With the following configuration, gobgpd continuously dumps routes in the global rib to /tmp/table.dump file in the TABLE_DUMPv2 format every 60 seconds.

[global.config]
as = 64512
router-id = "10.0.255.254"

[[neighbors]]
  [neighbors.config]
    peer-as = 65001
    neighbor-address = "10.0.255.1"

[[mrt-dump]]
  [mrt-dump.config]
    dump-type = "table"
    file-name = "/tmp/table.dump"
    dump-interval = 60

With a route server configuration, gobgpd can dump routes in each peer's RIB.

[global.config]
  as = 64512
  router-id = "192.168.255.1"

[[neighbors]]
  [neighbors.config]
    neighbor-address = "10.0.255.1"
    peer-as = 65001
    auth-password = "hoge1"
  [neighbors.transport.config]
    passive-mode = true
  [neighbors.route-server.config]
    route-server-client = true

[[neighbors]]
  [neighbors.config]
    neighbor-address = "10.0.255.2"
    peer-as = 65002
    auth-password = "hoge2"
  [neighbors.transport.config]
    passive-mode = true
  [neighbors.route-server.config]
    route-server-client = true

[[mrt-dump]]
  [mrt-dump.config]
    dump-type = "table"
    file-name = "/tmp/table-1.dump"
    table-name = "10.0.255.1"
    dump-interval = 60

[[mrt-dump]]
  [mrt-dump.config]
    dump-type = "table"
    file-name = "/tmp/table-2.dump"
    table-name = "10.0.255.2"
    dump-interval = 60