Leveraging Hyperglass and NSX-T!
Tags: bgp, datacenternetworking, designpatterns, ebgp
Published: 2021-05-15 17:47:08

---
title: Leveraging Hyperglass and NSX-T!
published: true
date: 2021-05-10 00:42:00 UTC
tags: BGP,DatacenterNetworking,DesignPatterns,eBGP
canonical_url: 
---

 For this example deployment, I'll be using my NSX-T Lab as the fabric, VyOS for the  **Overloaded Router**  role, and trying out **[hyperglass](https://hyperglass.io/docs/getting-started)**:

[![](https://1.bp.blogspot.com/-eZN7Z301g-Y/YJhemHNXQeI/AAAAAAAABUU/9Qye4tLRU9EH_IltxIpkLju5OuzvcCylACLcBGAsYHQ/w264-h400/Looking%2BGlass%2BOverview.png)](https://1.bp.blogspot.com/-eZN7Z301g-Y/YJhemHNXQeI/AAAAAAAABUU/9Qye4tLRU9EH_IltxIpkLju5OuzvcCylACLcBGAsYHQ/s631/Looking%2BGlass%2BOverview.png)
  

## Installation (VyOS)

I already have [a base image for VyOS with its management VRF](https://dev.to/ngschmidt/using-vm-templates-and-nsx-t-for-repeatable-virtual-network-deployments-k89) set up - and updating the base image prior to deployment is a breeze due to the vSphere 7 [VM Template Check Out Feature](https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vm_admin.doc/GUID-0F4D55EF-B45C-43D6-8C8F-580D8B4B5009.html).

  

In this case, I'll deploy to an [NSX-T External Port](https://docs.vmware.com/en/VMware-NSX-T-Data-Center/3.1/administration/GUID-D641380B-4C8E-4C8A-AF64-4261A266ACA4.html) and peer up, with fully implemented ingress filtering:

[![](https://1.bp.blogspot.com/-K8nycv_Anxc/YE7qIK_lt3I/AAAAAAAABNM/sBQX92ybuO0zLw32MDBNBN9bUNXitARSQCLcBGAsYHQ/s16000/14mar2021-1.PNG)](https://1.bp.blogspot.com/-K8nycv_Anxc/YE7qIK_lt3I/AAAAAAAABNM/sBQX92ybuO0zLw32MDBNBN9bUNXitARSQCLcBGAsYHQ/s1126/14mar2021-1.PNG)

Export Filters - Permit all prefixes:

[![](https://1.bp.blogspot.com/-VXQckpYUP3Q/YE7qIGlSVUI/AAAAAAAABNQ/Cdfd8LgiTsA72zKOgXF8mPK5xF0oEHkLACLcBGAsYHQ/w640-h260/14mar2021-2.PNG)](https://1.bp.blogspot.com/-VXQckpYUP3Q/YE7qIGlSVUI/AAAAAAAABNQ/Cdfd8LgiTsA72zKOgXF8mPK5xF0oEHkLACLcBGAsYHQ/s839/14mar2021-2.PNG)
Import Filters - don't trust any prefixes from this router:  

[![](https://1.bp.blogspot.com/-RjjFpRYawLY/YE7qIH8RuSI/AAAAAAAABNI/HW1PbwM1MJgEB9wirtQs5OeP8BXPq1YWACLcBGAsYHQ/w640-h258/14mar2021-3.PNG)](https://1.bp.blogspot.com/-RjjFpRYawLY/YE7qIH8RuSI/AAAAAAAABNI/HW1PbwM1MJgEB9wirtQs5OeP8BXPq1YWACLcBGAsYHQ/s840/14mar2021-3.PNG)
Set in the correct directions:  

[![](https://1.bp.blogspot.com/-AoVJG_a1Np4/YE7qIVZrnhI/AAAAAAAABNU/27tZDA1-mJEkEYu7SvTvGCQNINl4GHuvQCLcBGAsYHQ/w640-h420/14mar2021-4.PNG)](https://1.bp.blogspot.com/-AoVJG_a1Np4/YE7qIVZrnhI/AAAAAAAABNU/27tZDA1-mJEkEYu7SvTvGCQNINl4GHuvQCLcBGAsYHQ/s850/14mar2021-4.PNG)
Configure the BGP Neighbors:  

[![](https://1.bp.blogspot.com/-FG9gvyG1Qb8/YE7qIgsEvFI/AAAAAAAABNY/vE_dEsGvzwwAu37GBsk1TjzJQ-J9AgEhgCLcBGAsYHQ/w640-h374/14mar2021-5.PNG)](https://1.bp.blogspot.com/-FG9gvyG1Qb8/YE7qIgsEvFI/AAAAAAAABNY/vE_dEsGvzwwAu37GBsk1TjzJQ-J9AgEhgCLcBGAsYHQ/s1120/14mar2021-5.PNG)
  

From here, we build the VNF, by adding the following configuration:

```
protocols { bgp 64932 { address-family { ipv4-unicast { maximum-paths { ebgp 4 } } ipv6-unicast { maximum-paths { ebgp 4 } } } neighbor 10.7.2.1 { remote-as 64902 } neighbor 10.7.2.2 { remote-as 64902 } neighbor x:x:x:dea::1 { address-family { ipv6-unicast { } } remote-as 64902 } neighbor x:x:x:dea::2 { address-family { ipv6-unicast { } } remote-as 64902 } timers { holdtime 12 keepalive 4 } }}
```

Then, let's verify that BGP is working:

```
vyos@vyos-lg-01:~$ show ip bgp summaryIPv4 Unicast Summary:BGP router identifier 10.7.2.254, local AS number 64932 vrf-id 0BGP table version 156RIB entries 75, using 14 KiB of memoryPeers 4, using 85 KiB of memoryNeighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt10.7.2.1 4 64902 278 272 0 0 0 00:11:31 40 4210.7.2.2 4 64902 16 13 0 0 0 00:00:16 39 42x:x:x:dea::1 4 64902 234 264 0 0 0 00:11:43 NoNegx:x:x:dea::2 4 64902 283 368 0 0 0 00:11:43 NoNegTotal number of neighbors 4
```

The VNF is configured! Now, we'll follow the application maintainer's instructions for installation: [https://hyperglass.io/docs/getting-started](https://hyperglass.io/docs/getting-started)

The documentation for install is pretty good - but some customization is still required. I built the following configuration files out - hyperglass leverages YAML as a configuration file format, examples are [here](https://github.com/ngschmidt/hyperglass-customizations). I did make some changes:

- Some combination of VyOS 1.4, MP-BGP, and/or VRF-lite changed the syntax for the BGP views around. Setting a commands file fixes this.
- VyOS driver is appending a host mask (/32, /128) on routes with no prefix specified.

This particular tool has been extremely useful to me, as NSX-T [still lacks comprehensive BGP visibility without CLI access](https://docs.vmware.com/en/VMware-NSX-T-Data-Center/3.1/administration/GUID-9554C339-69DE-4C97-8392-DCCA67682B35.html) - and even if it didn't, this will provide consumers an easy way to validate that prefixes have propagated, and where.