summaryrefslogtreecommitdiffhomepage
path: root/docs/sources/route-reflector.md
blob: a0f5529b68b294f0256b9189c7dcac4d19cd30e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# Route Reflector

This page explains how to set up GoBGP as a route reflector.

## Prerequisites

Assumed you finished [Getting Started](getting-started.md).

## Configuration

Configure `RouteReflector.RouteReflectorConfig` section to enable route reflector functionality.
The configuration below configures two route reflector clients and two normal iBGP peers.

```toml
[global.config]
  router-id = "192.168.0.1"
  as = 65000

[[neighbors]]
  [neighbors.config]
    neighbor-address = "192.168.10.2"
    peer-as = 65000
  [neighbors.route-reflector.config]
    route-reflector-client = true
    route-reflector-cluster-id = "192.168.0.1"

[[neighbors]]
  [neighbors.config]
    neighbor-address = "192.168.10.3"
    peer-as = 65000
  [neighbors.route-reflector.config]
    route-reflector-client = true
    route-reflector-cluster-id = "192.168.0.1"

[[neighbors]]
  [neighbors.config]
    neighbor-address = "192.168.10.4"
    peer-as = 65000

[[neighbors]]
  [neighbors.config]
    neighbor-address = "192.168.10.5"
    peer-as = 65000
```

## Check route reflector behavior

Let's check adj-rib-out of a route reflector client.

```bash
$ gobgp neighbor 192.168.10.2 adj-out
Network              Next Hop             AS_PATH              Attrs
10.0.2.0/24          192.168.10.3                              [{Origin: i} {Med: 0} {LocalPref: 100} {Originator: 192.168.0.3} {ClusterList: [192.168.0.1]}]
10.0.3.0/24          192.168.10.4                              [{Origin: i} {Med: 0} {LocalPref: 100} {Originator: 192.168.0.4} {ClusterList: [192.168.0.1]}]
10.0.4.0/24          192.168.10.5                              [{Origin: i} {Med: 0} {LocalPref: 100} {Originator: 192.168.0.5} {ClusterList: [192.168.0.1]}]
```

You can see the routes from other iBGP peers are reflected.
Also Originator and ClusterList path attributes are added.

For the normal iBGP peer's adj-rib-out

```bash
$ gobgp neighbor 192.168.10.4 adj-out
Network              Next Hop             AS_PATH              Attrs
10.0.1.0/24          192.168.10.2                              [{Origin: i} {Med: 0} {LocalPref: 100}]
10.0.2.0/24          192.168.10.3                              [{Origin: i} {Med: 0} {LocalPref: 100}]
```

Only the routes from route reflector clients are advertised via GoBGP.
Originator and ClusterList path attributes are not added.