summaryrefslogtreecommitdiffhomepage
path: root/docs/sources/evpn.md
diff options
context:
space:
mode:
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2015-04-10 13:36:08 +0900
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2015-04-10 13:36:41 +0900
commitf5d4525c07a7eb2d146d884a0c8c71918871e722 (patch)
tree133211aeb0dfd9e1b533628c6178511b5ecf31fa /docs/sources/evpn.md
parentf8f2e44bbb2fcd376a72950b488fd12e09969802 (diff)
docs: add EVPN doc
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Diffstat (limited to 'docs/sources/evpn.md')
-rw-r--r--docs/sources/evpn.md104
1 files changed, 104 insertions, 0 deletions
diff --git a/docs/sources/evpn.md b/docs/sources/evpn.md
new file mode 100644
index 00000000..403f9adb
--- /dev/null
+++ b/docs/sources/evpn.md
@@ -0,0 +1,104 @@
+# Ethernet VPN (EVPN)
+
+This page explains an configuration for EVPN. Note that the feature is
+still very experimental. This example uses [BaGPipe
+BGP](https://github.com/Orange-OpenSource/bagpipe-bgp), which only OSS
+BGP implementation supporting EVPN as far as we know. GoBGP receives
+routes from one BaGPipe peer and advertises it to another BaGPipe
+peer.
+
+If you don't want to install [BaGPipe
+BGP](https://github.com/Orange-OpenSource/bagpipe-bgp) by hand, you can use [Our BaGPipe BGP Docker
+image](https://registry.hub.docker.com/u/yoshima/bagpipe-bgp/).
+
+## Configuration
+
+BaGPipe supports only iBGP. GoBGP peer connects to two BaGPipe
+peers. Two BaGPipe peers are not connected. It's incorrect from the
+perspective of BGP but this example just shows two OSS BGP
+implementations can interchange EVPN messages.
+
+```
+[Global]
+ As = 64512
+ RouterId = "192.168.255.1"
+
+[[NeighborList]]
+ NeighborAddress = "10.0.255.1"
+ PeerAs = 64512
+ [[NeighborList.AfiSafiList]]
+ AfiSafiName = "l2vpn-evpn"
+
+[[NeighborList]]
+ NeighborAddress = "10.0.255.2"
+ PeerAs = 64512
+ [[NeighborList.AfiSafiList]]
+ AfiSafiName = "l2vpn-evpn"
+```
+
+The point is that route families to be advertised need to be
+specified. We expect that many people are not familiar with [BaGPipe
+BGP](https://github.com/Orange-OpenSource/bagpipe-bgp), the following
+is our configuration files.
+
+```
+bagpipe-peer1:/etc/bagpipe-bgp# cat bgp.conf
+[BGP]
+local_address=10.0.255.1
+peers=10.0.255.254
+my_as=64512
+enable_rtc=True
+
+[API]
+api_host=localhost
+api_port=8082
+
+[DATAPLANE_DRIVER_IPVPN]
+dataplane_driver = DummyDataplaneDriver
+
+[DATAPLANE_DRIVER_EVPN]
+dataplane_driver = DummyDataplaneDriver
+```
+10.0.255.254 is GoBGP peer's address.
+
+## Advertising EVPN route
+
+As you expect, the RIBs at 10.0.255.2 peer has nothing.
+
+```
+bagpipe-peer2:~# bagpipe-looking-glass bgp routes
+match:IPv4/mpls-vpn,*: -
+match:IPv4/rtc,*: -
+match:L2VPN/evpn,*: -
+```
+
+Let's advertise something from 10.0.255.1 peer.
+
+```
+bagpipe-peer1:~# bagpipe-rest-attach --attach --port tap42 --mac 00:11:22:33:44:55 --ip 11.11.11.1 --gateway-ip 11.11.11.254 --network-type evpn --rt 65000:77
+```
+
+Now the RIBs at 10.0.255.2 peer has the above route. The route was interchanged via GoBGP peer.
+```
+bagpipe-peer2:~# bagpipe-looking-glass bgp routes
+match:IPv4/mpls-vpn,*: -
+match:IPv4/rtc,*: -
+match:L2VPN/evpn,*:
+ * EVPN:Multicast:[rd:10.0.255.1:1][etag:178][10.0.255.1]:
+ attributes:
+ next_hop: 10.0.255.1
+ pmsi_tunnel: PMSITunnel:IngressReplication:0:[0]:[10.0.255.1]
+ extended_community: [ target:65000:77 Encap:VXLAN ]
+ afi-safi: L2VPN/evpn
+ source: BGP-10.0.255.254/192.168.255.1 (...)
+ route_targets:
+ * target:65000:77
+ * EVPN:MACAdv:[rd:10.0.255.1:1][esi:-][etag:178][00:11:22:33:44:55][11.11.11.1][label:0]:
+ attributes:
+ next_hop: 10.0.255.1
+ extended_community: [ target:65000:77 Encap:VXLAN ]
+ afi-safi: L2VPN/evpn
+ source: BGP-10.0.255.254/192.168.255.1 (...)
+ route_targets:
+ * target:65000:77
+```