From efff7f552f863fd3e895e091464ca63ff8990cba Mon Sep 17 00:00:00 2001 From: Naoto Hanaue Date: Wed, 17 Feb 2016 17:06:47 +0900 Subject: ops: add doc --- docs/sources/openswitch.md | 96 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 docs/sources/openswitch.md (limited to 'docs') diff --git a/docs/sources/openswitch.md b/docs/sources/openswitch.md new file mode 100644 index 00000000..d69f3686 --- /dev/null +++ b/docs/sources/openswitch.md @@ -0,0 +1,96 @@ +# Coordination with OpenSwitch + +GoBGP will be able to coordination with [OpenSwitch](http://www.openswitch.net) +by connecting to ovsdb using unixsocket(use [ovsdb library of golang](https://github.com/osrg/libovsdb)). +And GoBGP will behaves as BGP agent of OpenSwitch because GoBGP can share configuration +and routing information in coordination with OpenSwitch. + +This page explains how to coordination to OpenSwitch. +And this example have step that share configuration and routing information between OpenSwitch and Gobgp in [docker container](https://hub.docker.com/r/openswitch/genericx86-64/). + + +## Prerequisites + +- Install the docker environment referring to the [here](https://docs.docker.com/engine/installation/ubuntulinux/) +- Install the gobgp refarring to the [here](https://github.com/osrg/gobgp/blob/master/docs/sources/getting-started.md) + +## Getting and Running OpenSwitch container +- Getting image + + Thera are two ways, to get OpenSwitch docker image. + First way, get image from DockerHub using the **docker pull** command. + Second way, build the iamge refarring to the [Step-by-Step Guide](http://www.openswitch.net/documents/dev/step-by-step-guide) of OpenSwitch. + + - In the case of **docker pull** + ```bash + $ sudo docker pull openswitch/genericx86-64 + $ sudo docker images + REPOSITORY TAG IMAGE ID CREATED SIZE + openswitch/genericx86-64 latest 69682b4baeba 4 months ago 321.3 MB 1.278 GB + ``` + +- Running container + + Share the GoBGP binary when you execute docker run command. + ```bash + sudo docker run --privileged -v /tmp:/tmp -v /dev/log:/dev/log -v /sys/fs/cgroup:/sys/fs/cgroup -v $GOPATH/bin:/home/root/bin -h ops --name ops openswitch/genericx86-64 /sbin/init & + $ sudo docker ps -a + CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES + 4eebc0f25f9c openswitch/genericx86-64 "/sbin/init" 3 seconds ago Up 3 seconds ops + ``` + +## Starting Coordination with OpenSwitch +- Enter the OpenSwitch container + ```bash + % sudo docker exec -it ops bash + ``` + +- Setting OpenSwitch + ```bash + bash-4.3# vtysh + switch# show running-config + Current configuration: + ! + ! + ! + switch# configure terminal + switch(config)# router bgp 65001 + switch(config-router)# bgp router-id 10.0.255.1 + switch(config-router)# neighbor 10.0.255.2 remote-as 65002 + switch(config-router)# do show running-config + Current configuration: + ! + ! + ! + router bgp 65001 + bgp router-id 10.0.255.1 + neighbor 10.0.255.2 remote-as 65002 + ! + ``` + +- Starting GoBGP + ```bash + bash-4.3# cd /home/root/bin + bash-4.3# gobgpd --openswitch -p + INFO[0000] gobgpd started + INFO[0000] Coordination with OpenSwitch + INFO[0000] Peer 10.0.255.2 is added + INFO[0015] Peer Up + ``` + + If GoBGP has routes in Global Rib, routes relayed to the OpenSwitch as follows: + ```bash + bash-4.3# vtysh + switch# show ip bgp + Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, + i internal, S Stale, R Removed + Origin codes: i - IGP, e - EGP, ? - incomplete + + Local router-id 10.0.255.1 + Network Next Hop Metric LocPrf Weight Path + * 10.10.10.0/24 10.0.255.2 0 0 32768 65002 i + * 10.10.11.0/24 10.0.255.2 0 0 32768 65002 i + * 10.10.12.0/24 10.0.255.2 0 0 32768 65002 i + Total number of entries 3 + ``` + -- cgit v1.2.3