diff options
author | ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp> | 2015-08-31 23:21:51 +0900 |
---|---|---|
committer | ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp> | 2015-08-31 23:23:19 +0900 |
commit | 920d4752783e0512a76f2bd7711b5810bc7cd460 (patch) | |
tree | f173f7e0634bbbce9ea7e1b3bd927512d26e487b | |
parent | 50ac60d74c802f1db6d5724aa0c12fd98126b09d (diff) |
docs: add route-reflector document
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
-rw-r--r-- | README.md | 1 | ||||
-rw-r--r-- | docs/sources/route-reflector.md | 69 |
2 files changed, 70 insertions, 0 deletions
@@ -25,6 +25,7 @@ No dependency hell (library, package, etc) thanks to Go. * [Typical operation examples](https://github.com/osrg/gobgp/blob/master/docs/sources/cli-operations.md) * [Complete syntax](https://github.com/osrg/gobgp/blob/master/docs/sources/cli-command-syntax.md) * [Route Server](https://github.com/osrg/gobgp/blob/master/docs/sources/route-server.md) + * [Route Reflector](https://github.com/osrg/gobgp/blob/master/docs/sources/route-reflector.md) * [Policy](https://github.com/osrg/gobgp/blob/master/docs/sources/policy.md) * [EVPN](https://github.com/osrg/gobgp/blob/master/docs/sources/evpn.md) * [MRT](https://github.com/osrg/gobgp/blob/master/docs/sources/mrt.md) diff --git a/docs/sources/route-reflector.md b/docs/sources/route-reflector.md new file mode 100644 index 00000000..c8fbce50 --- /dev/null +++ b/docs/sources/route-reflector.md @@ -0,0 +1,69 @@ +# Route Reflector + +This page explains how to set up GoBGP as a route reflector. + +## Prerequisites + +Assumed you finished [Getting Started](https://github.com/osrg/gobgp/blob/master/docs/sources/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] + [Global.GlobalConfig] + RouterId = "192.168.0.1" + As = 65000 +[Neighbors] + [[Neighbors.NeighborList]] + [Neighbors.NeighborList.NeighborConfig] + NeighborAddress = "192.168.10.2" + PeerAs = 65000 + [Neighbors.NeighborList.RouteReflector.RouteReflectorConfig] + RouteReflectorClient = true + RouteReflectorClusterId = "192.168.0.1" + [[Neighbors.NeighborList]] + [Neighbors.NeighborList.NeighborConfig] + NeighborAddress = "192.168.10.3" + PeerAs = 65000 + [Neighbors.NeighborList.RouteReflector.RouteReflectorConfig] + RouteReflectorClient = true + RouteReflectorClusterId = "192.168.0.1" + [[Neighbors.NeighborList]] + [Neighbors.NeighborList.NeighborConfig] + NeighborAddress = "192.168.10.4" + PeerAs = 65000 + [[Neighbors.NeighborList]] + [Neighbors.NeighborList.NeighborConfig] + NeighborAddress = "192.168.10.5" + PeerAs = 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. |