diff options
-rw-r--r-- | docs/sources/getting-started.md | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/docs/sources/getting-started.md b/docs/sources/getting-started.md new file mode 100644 index 00000000..67aea5e7 --- /dev/null +++ b/docs/sources/getting-started.md @@ -0,0 +1,123 @@ +Running GoBGP +============= + +This page explains how to run GoBGP. This example sets up GoBGP to +connect with two eBGP peers for IPv4 routes. Even if you are +interested in other GoBGP use cases (such as IPv6 routes, EVPN, and +Route Server), this example gives you the basics of GoBGP usage. + +Prerequisites +============= + +You need to install [Go 1.3 or later](http://golang.org/doc/install). After installing Go, make sure that `$GOPATH/bin` in included in your `$PATH`. + +Installing GoBGP +================ + +```bash +$ go get github.com/osrg/gobgp/gobgpd +$ go get github.com/osrg/gobgp/gobgp +``` + +Finished. No dependency hell (library, package, etc) thanks to Go. +The first command installs GoBGP daemon (speaking BGP protocol). The +second one installs GoBGP CLI. The CLI isn't a must but handy whey you +play with GoBGP. + +In addition, if you use Bash shell, you can enjoy CLI's tab completion: + +```bash +$ wget https://raw.githubusercontent.com/osrg/gobgp/master/tools/completion/gobgp-completion.bash +$ source gobgp-completion.bash +``` + +Configuration +============= + +Currently, GoBGP can be configured via a configuration file. This example +uses the following very simple configuration file, `gobgpd.conf`: + +``` +$ cat gobgpd.conf +[Global] + As = 64512 + RouterId = "192.168.255.1" +[[NeighborList]] + NeighborAddress = "10.0.255.1" + PeerAs = 65001 +[[NeighborList]] + NeighborAddress = "10.0.255.2" + PeerAs = 65002 +``` + +Starting GoBGP +============== +Let's start gobgpd: + +``` +$ sudo -E gobgpd -f gobgpd.conf +{"level":"info","msg":"Peer 10.0.255.1 is added","time":"2015-04-06T20:32:28+09:00"} +{"level":"info","msg":"Peer 10.0.255.2 is added","time":"2015-04-06T20:32:28+09:00"} +``` + +Let's show the information of all the peers. + +``` +$ gobgp show neighbors +Peer AS Up/Down State |#Advertised Received Accepted +10.0.255.1 65001 00:00:14 Establ | 1 5 5 +10.0.255.2 65002 00:00:14 Establ | 5 2 2 +``` + +Want to the details of a particular peer? + +``` +$ gobgp show neighbor 10.0.255.1 +BGP neighbor is 10.0.255.1, remote AS 65001 + BGP version 4, remote router ID 192.168.0.1 + BGP state = BGP_FSM_ESTABLISHED, up for 00:01:49 + BGP OutQ = 0, Flops = 0 + Neighbor capabilities: + MULTIPROTOCOL: advertised and received + ROUTE_REFRESH: advertised and received + FOUR_OCTET_AS_NUMBER: advertised and received + ROUTE_REFRESH_CISCO: received + Message statistics: + Sent Rcvd + Opens: 2 1 + Notifications: 0 0 + Updates: 1 1 + Keepalives: 4 5 + Route Refesh: 0 0 + Discarded: 0 0 + Total: 7 7 +``` + +Note that the tab completion works for both peer names and commands. + +Check out the global table. +``` + Network Next Hop AS_PATH Age Attrs +*> 10.3.0.0/16 10.0.255.1 [65001] 00:05:41 [{Origin: 0} {Med: 0}] +*> 10.3.0.0/24 10.0.255.1 [65001] 00:05:41 [{Origin: 0} {Med: 0}] +* 10.3.0.0/24 10.0.255.2 [65002] 00:05:41 [{Origin: 0} {Med: 111} {Cummunity: [65001:65002 NO_EXPORT]}] +*> 10.3.0.0/32 10.0.255.1 [65001] 00:05:41 [{Origin: 0} {Med: 0}] +*> 10.3.0.1/32 10.0.255.1 [65001] 00:05:41 [{Origin: 0} {Med: 0}] +*> 10.33.0.0/16 10.0.255.1 [65001] 00:05:41 [{Origin: 0} {Med: 0}] +*> 192.168.2.0/24 10.0.255.2 [65002] 00:05:41 [{Origin: 0} {Med: 111} {Cummunity: [65001:65002 NO_EXPORT]}] +``` + +You also can look at adjacent rib-in and rib-out: + +``` +$ gobgp show neighbor 10.0.255.1 adj-in + Network Next Hop AS_PATH Age Attrs + 10.3.0.0/16 10.0.255.1 [65001] 00:06:55 [{Origin: 0} {Med: 0}] + 10.3.0.0/24 10.0.255.1 [65001] 00:06:55 [{Origin: 0} {Med: 0}] + 10.3.0.0/32 10.0.255.1 [65001] 00:06:55 [{Origin: 0} {Med: 0}] + 10.3.0.1/32 10.0.255.1 [65001] 00:06:55 [{Origin: 0} {Med: 0}] + 10.33.0.0/16 10.0.255.1 [65001] 00:06:55 [{Origin: 0} {Med: 0}] +$ gobgp show neighbor 10.0.255.1 adj-out + Network Next Hop AS_PATH Attrs + 192.168.2.0/24 10.0.255.254 [64512 65002] [{Origin: 0} {Cummunity: [65001:65002 NO_EXPORT]}] +``` |