Netvisor-OS-Config-Guide
Netvisor-OS-Config-Guide
Netvisor ONE
July 2018
THE SPECIFICATIONS AND INFORMATION REGARDING THE PRODUCTS IN THIS MANUAL
ARE SUBJECT TO CHANGE WITHOUT NOTICE. ALL STATEMENTS, INFORMATION, AND
RECOMMENDATIONS IN THIS MANUAL ARE BELIEVED TO BE ACCURATE BUT ARE
PRESENTED WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. USERS MUST TAKE
FULL RESPONSIBILITY FOR THEIR APPLICATION OF ANY PRODUCTS.
THE SOFTWARE LICENSE LIMITED WARRANTY FOR THE ACCOMPANYING PRODUCT ARE SET
FORTH IN THE INFORMATION PACKET THAT SHIPPED WITH THE PRODUCT AND ARE
INCORPORATED HEREIN BY THIS REFERENCE. IF YOU ARE UNABLE TO LOCATE THE
SOFTWARE LICENSE OR LIMITED WARRANTY, CONTACT YOUR PLURIBUS NETWORKS
REPRESENTATIVE FOR A COPY.
NOTWITHSTANDING ANY OTHER WARRANTY HEREIN, ALL DOCUMENT FILES AND
SOFTWARE ARE PROVIDED “AS IS” WITH ALL FAULTS. PLURIBUS NETWORKS DISCLAIMS
ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION, THOSE OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OR
ARISING FROM A COURSE OF DEALING, USAGE, OR TRADE PRACTICE.
IN NO EVENT SHALL PLURIBUS NETWORKS BE LIABLE FOR ANY INDIRECT, SPECIAL,
CONSEQUENTIAL, OR INCIDENTAL DAMAGES, INCLUDING, WITHOUT LIMITATION, LOST
PROFITS OR LOSS OR DAMAGE TO DATA, ARISING OUT OF THE USE OR INABILITY TO USE
THIS MANUAL, EVEN IF PLURIBUS NETWORKS HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
Any Internet Protocol (IP) addresses used in this document are not intended to be actual
addresses. Any examples, command display output, and figures included in the document
are shown for illustrative purposes only. Any use of actual IP addresses in illustrative content
is unintentional and coincidental.
COPYRIGHT © 2018 PLURIBUS NETWORKS, INC. ALL RIGHTS RESERVED. NETVISOR, NVOS, VFLOW,
VLAG AND VNM, ARE REGISTERED TRADEMARKS, AND THE PLURIBUS NETWORKS LOGO, PLURIBUS
NETWORKS, ONVL, PLURIBUSCARE, FREEDOMCARE, ADAPTIVE CLOUD FABRIC, FREEDOM, UNUM AND
INSIGHT ANALYTICS ARE TRADEMARKS OF PLURIBUS NETWORKS, INC. ALL OTHER BRANDS AND PRODUCT
NAMES ARE REGISTERED AND UNREGISTERED TRADEMARKS OF THEIR RESPECTIVE OWNERS.
Pluribus Networks
www.pluribusnetworks.com
2
3
Pluribus Networks
www.pluribusnetworks.com
Table of Contents
Table of Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Documentation Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Obtaining Documentation and Submitting a Service Request . . . . . . . . . . . 3
About the Netvisor ONE CLI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Important Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Entering Commands and Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Finding Command Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Alternate Command Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Specifying IP Address Netmasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Specifying Measurement Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Customizing Show Output Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Specifying a Switch or Fabric for Command Scope . . . . . . . . . . . . . . . . . . 9
Installing Netvisor ONE and Initial Configuration . . . . . . . . . . . . . .10
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Using the Serial Console Port for Initial Configuration . . . . . . . . . . . . . . 11
Autoconfiguration of IPv6 Addresses on the Management Interface Support . . . . 13
Changes to the End User License Agreement (EULA) . . . . . . . . . . . . . . . . . . . 14
Zero-Touch Provisioning Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Transport Layer Security Protocol 1.2 Support . . . . . . . . . . . . . . . . . . . . . . . 19
GREP Support for Netvisor OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Running Commands on a Local Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Changing Other Switch Setup Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Setting the Date and Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Changing the Default Timezone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Viewing User Sessions on a Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Confirming Connectivity on the Network . . . . . . . . . . . . . . . . . . . . . . . 22
Adding License Keys to Netvisor OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Enabling Administrative Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Modifying and Upgrading Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Displaying and Managing Boot Environment Information . . . . . . . . . . . . . . . . . 31
Rolling Back to Previous Versions of Netvisor . . . . . . . . . . . . . . . . . . . . . . . . 31
Creating Switch Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Managing RMAs for Switches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
RMA Use Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Configuring Port Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
Displaying Port Numbering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Configuring Ports for Different Throughput . . . . . . . . . . . . . . . . . . . . . 37
Displaying Port Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Displaying Port Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Using Port Buffering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Auto-Recovery of a Disabled Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Loop-Free Layer 2 Topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Managing Control Plane Traffic Protection (CPTP) . . . . . . . . . . . . . . . . . 44
pluribusnetworks.com i
Enhancements for Control Plan Traffic Protection . . . . . . . . . . . . . . . . . . . . 46
Additional Control Plane Traffic Protection Enhancements . . . . . . . . . . . . . . . 48
Display Physical Port Layer 2 Information . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Configuring Minimum and Maximum Bandwidth on Ports . . . . . . . . . . . . . . . . 51
Changes to Class of Service (CoS) Behavior . . . . . . . . . . . . . . . . . . . . . . . . . 52
Configuring Port Storm Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Enabling Jumbo Frame Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
About Port Isolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Example Use-Case Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Configuring Port Isolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Support for Priority-based Flow Control . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Support for Priority-based Flow Control Port Statistics . . . . . . . . . . . . . . . . . 59
Support for Fabric Guard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Introducing Netvisor ONE Foundational Objects . . . . . . . . . . . . . .61
About the Netvisor ONE Fabric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Creating an Initial Fabric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Adding Switches to an Existing Fabric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Fabric Over Management Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Displaying Fabric Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Displaying Information about Nodes in the Fabric . . . . . . . . . . . . . . . . . . . . . 65
About Fabric Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Rolling Back and Rolling Forward Transactions . . . . . . . . . . . . . . . . . . . . . . . 67
Configuring Ports for Fabric Communication . . . . . . . . . . . . . . . . . . . . . . . . 69
Configuring Link Aggregation Control Protocol (LACP) . . . . . . . . . . . . . . 70
Active-Standby Link Aggregation on Management Interfaces . . . . . . . . . . . . . . 71
Configuring Trunking for Link Aggregation (LAG) . . . . . . . . . . . . . . . . . . . . . 71
High Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Configuring a Cluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Modifying a Trunk or VLAG Configuration by Changing the LACP Mode . . . . . . . 76
Safely Restoring Ports for Cluster Configurations . . . . . . . . . . . . . . . . . . . . . 77
Configuring Layer 2 Multipathing for Virtual Chassis Link Aggregation (VLAG) 79
VLAG Topology Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Configuring Active-Active VLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Routing over VLAGs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Configuring Virtual Wire Features . . . . . . . . . . . . . . . . . . . . . . . .87
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Enabling Virtual Wire Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Configuring Ports for Virtual Wire Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Implementing Unidirectional and Bidirectional Virtual Wire Links . . . . . . . . . . 92
Support for CRC Checks for Virtual Wire Mode . . . . . . . . . . . . . . . . . . . . . . . 94
Support for Many to One Port Associations . . . . . . . . . . . . . . . . . . . . . . . . . 95
Packet Load Balancing over One to Many Links . . . . . . . . . . . . . . . . . . . . . . . 95
Building a Virtual Wire Fabric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Example: Configuring a Fabric for Virtual Wire Switches . . . . . . . . . . . . . . . . 98
Example: Configuring a Fabric for Unidirectional Virtual Wire . . . . . . . . . . . . . 99
Inline Services for Virtual Wire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101
Configuring and Displaying Statistics . . . . . . . . . . . . . . . . . . . . . . . . . 106
Adding VCF-Insight Analytics for Network Visibility . . . . . . . . . . . . . . . . . . . .108
Configuring Layer 2 Features . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Configuring Tagged and Untagged VLANs . . . . . . . . . . . . . . . . . . . . . . 110
ii pluribusnetworks.com
Reserved VLANs and VLAN 0 and 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110
Displaying VLAN Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112
Configuring Rapid Spanning Tree Protocol (RSTP) . . . . . . . . . . . . . . . . 114
Fast Failover for STP and Cluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116
Active-Active VLAG Forwarding with Loopback Recirculation . . . . . . . . . . . . .117
Multiple Spanning Tree Protocol (MSTP) . . . . . . . . . . . . . . . . . . . . . . . 119
About Port Hairpinning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Command Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
Configuring VXLANs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
About VXLANs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Configuring VXLANs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124
Configuring VXLANs and Tunnels . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Configuring a VXLAN with Netvisor ONE . . . . . . . . . . . . . . . . . . . . . . . . . . .126
Configuration Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126
Creating Tunnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128
Egress ECMP Load Distribution for VXLAN Traffic from the VTEP Switch . . . . . . 129
VXLAN Routing In and Out of Tunnels . . . . . . . . . . . . . . . . . . . . . . . . 131
VXLAN Port Termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Virtual Link Extension with Cluster Configurations . . . . . . . . . . . . . . . 134
Virtual Link Static Bidirectional Association . . . . . . . . . . . . . . . . . . . . . . . . .137
Port Replication for Virtual Link Extensions . . . . . . . . . . . . . . . . . . . . 137
Support for Configuring Keep-Alive Time for Virtual Link Extension (VLE) . . . . . 138
Support for Virtual Link Extension (VLE) Analytics . . . . . . . . . . . . . . . . . . . .139
Configuring Layer 3 Features . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Configuring vRouter Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
IPv6 Hardware Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
IPv6 Neighbor Discovery Process Support and Optimization . . . . . . . . . . . . . .142
Displaying Hardware Routes History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145
Configuring MTU Parameters for vRouter Interfaces . . . . . . . . . . . . . . . . . . .145
Support for IPv4 and IPv6 on a vRouter Interface . . . . . . . . . . . . . . . . . . . . .145
IPv6 Support for vRouter Loopback Addresses . . . . . . . . . . . . . . . . . . . . . . .147
Configuring Prefix Lists for BGP and OSPF . . . . . . . . . . . . . . . . . . . . . . . . . .148
Configuring Packet Relay for DHCP Servers . . . . . . . . . . . . . . . . . . . . . . . . .149
Configuring Hardware Routing for a vRouter . . . . . . . . . . . . . . . . . . . . . . . .149
Support for Displaying Quagga Routing and Debug Information for vRouters . . . 150
Viewing Quagga Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .151
Support for Hardware vRouter Migration . . . . . . . . . . . . . . . . . . . . . . . . . .151
Configuring BGP on a vRouter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Additional BGP Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .155
Support for BGP SNMP MIBs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156
Support for AS and AS Prepending and BGP . . . . . . . . . . . . . . . . . . . . . . . . .156
Bidirectional Forwarding Detection Support for IPv6 BGP Neighbor and IPv6 Static Routes 157
Support for Border Gateway Protocol (BGP) Communities . . . . . . . . . . . . . . .157
Configuring Open Shortest Path First (OSPF) . . . . . . . . . . . . . . . . . . . . 160
Display Default Timers for OSPF Configurations . . . . . . . . . . . . . . . . . . . . . .162
Adding Areas and Prefix Lists to OSPF . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164
BFD Support for OSPF Fault Direction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164
Support for Route Maps for OSPF Routes . . . . . . . . . . . . . . . . . . . . . . . . . . .166
Support for OSPF SNMP MIBs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167
Adding Default Route Information Settings for OSPF Routing . . . . . . . . . . . . .167
Adding Metric and Metric Type for Route Maps . . . . . . . . . . . . . . . . . . . . . .169
pluribusnetworks.com iii
Configuring Routing Information Protocol (RIP) . . . . . . . . . . . . . . . . . . 170
Configuring Static Routes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171
Support for Bidirectional Forwarding Detection on Static Routes . . . . . . . . . . 172
Adding IPv6 Link-Local Addresses for Static Routing . . . . . . . . . . . . . . . . . . .173
Configuring Multicast Listener Discovery (MLD) . . . . . . . . . . . . . . . . . . 174
MLD Snooping of IPv6 Neighbors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .176
Multicast Listener Discovery (MLD) Snooping per VLAN . . . . . . . . . . . . . . . . .176
Creating MLD Static Sources and Static Groups . . . . . . . . . . . . . . . . . . . . . . .177
Displaying MLD Statistics for a VLAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .178
Configuring Virtual Router Redundancy Protocol . . . . . . . . . . . . . . . . . 178
Configuring the VRRP ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179
Example Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179
Layer 3 Table Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Active-Active VLAG with Link-State Layer 3 Unicast Protocols . . . . . . . . 183
Using an L3 Network to Establish the Netvisor Fabric . . . . . . . . . . . . . . 183
Basic Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183
Multiple Neighbors over a Layer 3 Fabric . . . . . . . . . . . . . . . . . . . . . . . . . . .186
Support for Bidirectional Forwarding Detection (BFD) and Static Routes . . . . . . 187
Support for Policy-based Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .187
Cluster Active-Active Routing Support for IPv6 Addresses . . . . . . . . . . . . . . .188
Support for PIM Source Specific Multicast (PIM-SSM) Forwarding . . . . . . . . . . .189
Virtual Routing and Forwarding (VRF) Support . . . . . . . . . . . . . . . . . . . . . . .193
Configuring Virtual Networks . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Implementing Virtual Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Specifying the Type of VNET Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . .198
Creating a Virtual Network (VNET) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .199
VNET High Availability (HA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .199
Configuring Network Security . . . . . . . . . . . . . . . . . . . . . . . . . 202
Creating and Implementing Access Control Lists (ACLs) . . . . . . . . . . . . 202
MAC ACLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Using MAC ACLs to Deny Network Traffic . . . . . . . . . . . . . . . . . . . . . . . . . . .202
Configuring a MAC ACL to Allow Network Traffic . . . . . . . . . . . . . . . . . . . . .204
Configuring a MAC ACL to Deny Network Traffic . . . . . . . . . . . . . . . . . . . . . .205
IP ACLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Using a Deny IP ACL to Block Network Traffic . . . . . . . . . . . . . . . . . . . . . . .205
Using IP ACLs to Allow Network Traffic . . . . . . . . . . . . . . . . . . . . . . . . . . . .207
Configuring IP ACLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207
Configuring an Internal Deny ACL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207
Configuring an External Deny ACL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .208
Configuring an External Allow IP ACL . . . . . . . . . . . . . . . . . . . . . . . . . . . . .208
Support for DHCP Snooping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .209
Support for Router Advertisement (RA) Guard . . . . . . . . . . . . . . . . . . . . . . .211
Administering your Switches and Fabric . . . . . . . . . . . . . . . . . . 215
Fabric Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Using the Fabric Transaction Commands . . . . . . . . . . . . . . . . . . . . . . . . . . .215
Displaying Fabric Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .217
Troubleshooting the Fabric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .217
Displaying System Statistics on a Switch . . . . . . . . . . . . . . . . . . . . . . . . . . .219
Configuring Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Sending Log Messages to Syslog Servers . . . . . . . . . . . . . . . . . . . . . . . . . . .222
Forwarding Log Files to an External Linux Server . . . . . . . . . . . . . . . . . . . . .223
iv pluribusnetworks.com
Saving Diagnostic Files and Exporting to an External Server . . . . . . . . . . . . . .224
Using Facility Codes with Log Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . .224
Displaying Log Counters Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . .225
Viewing Log Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .225
Displaying Log Counters Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . .227
Displaying System Statistics on a Switch . . . . . . . . . . . . . . . . . . . . . . . . . . .227
Exceptions for Audit Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .227
Configuring SNMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
SNMP Communities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229
Users and SNMPv3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229
Modifying the SNMP Engine ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .231
Additional Supported MIBs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .235
Supported Traps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .235
Using Analytics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Configuring vFlow for Analytics . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Using vFlows to Disable Communication . . . . . . . . . . . . . . . . . . . . . . . 242
Use Case Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .243
Configuring Mirroring for vFlows and Ports . . . . . . . . . . . . . . . . . . . . . . . . .244
Managing Traffic Classes with vFlow . . . . . . . . . . . . . . . . . . . . . . . . . 246
Applying CoS Queue Mapping based on Re-Marked DSCP in vFlow . . . . . . . . . . . 247
Displaying Multiple Objects for Show Commands . . . . . . . . . . . . . . . . . . . . .248
Support for Policy-based Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249
Using Application Flows and Statistics . . . . . . . . . . . . . . . . . . . . . . . . 250
Displaying Standard Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .250
Understanding vFlow Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251
Creating vFlows with the Scope Fabric . . . . . . . . . . . . . . . . . . . . . . . . . . . .254
Example Use Cases for vFlows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .254
Creating Multiple vFlows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .254
Configuring Bandwidth Sharing for a Single VLAN . . . . . . . . . . . . . . . . . . . . .255
Configuring vFlows in Virtual Wire Mode . . . . . . . . . . . . . . . . . . . . . . . . . .256
Support for TCP Parameters using vFlows . . . . . . . . . . . . . . . . . . . . . . . . . .256
Configuring vFlows with User Defined Fields (UDFs) . . . . . . . . . . . . . . . . . . .257
Configuring DSCP to CoS Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .259
Configuring Priority-based Flow Control . . . . . . . . . . . . . . . . . . . . . . . . . . .261
About sFlow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Configuring the sFlow Collector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .264
Enabling sFlow on the Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .264
Adding Additional Ports to sFlow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .265
Counter Sampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .265
Packet Sampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .265
Agent to Collector Datagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .265
Analyzing Live Traffic Using Wireshark . . . . . . . . . . . . . . . . . . . . . . . . . . . .267
Using Wireshark to Analyze Packets in Real Time . . . . . . . . . . . . . . . . 268
Internet Protocol Flow Information Export (IPFIX) . . . . . . . . . . . 270
IPFIX Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
IPFIX Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .270
IPFIX Collector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .270
Information Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .271
Abstract Data Types Supported by IPFIX . . . . . . . . . . . . . . . . . . . . . . . . . . .272
Data Type Semantics Supported by IPFIX . . . . . . . . . . . . . . . . . . . . . . . . . . .273
pluribusnetworks.com v
Information Elements Supported by Netvisor OS and IPFIX . . . . . . . . . . . . . . .274
Configuring IPFIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .283
Configuring vCenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
vCenter Connection Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Configuring a vCenter Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .286
Auto Provisioning for vCenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .286
Automatic Link Aggregation on EXSi-facing Ports for vCenter . . . . . . . . . . . . .287
Support for VLAN Alarms in vCenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .288
Configuring Open Virtual Switch . . . . . . . . . . . . . . . . . . . . . . . . 290
Configuring OVSDB with Netvisor OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .290
Using OpenSSL TLS Certificates for OVSDB and other Services . . . . . . . . . . . . .291
Open Virtual Switch Database (OVSDB) Error Reporting . . . . . . . . . . . . . . . . .294
Appendix A - Acknowledgments for Open Source Software . . . . . . 295
vi pluribusnetworks.com
Preface
Audience
Organization
Conventions
Documentation Feedback
Obtaining Documentation and Submitting a Service Request
Audience
This publication is for experienced network administrators responsible for configuring and
maintaining network switches with some expertise in the following areas:
Network Administration
Storage Administration
Server Administration
Application Delivery Administration
Network Security Administration
Organization
This publication is organized as follows:
Installing Pluribus Netvisor® ONE and Initial Configuration
Configuring Virtual Wire features
Introducing Netvisor ONE foundational object
Layer 2 features
Layer 3 features
Administering your switches and fabric
VNET and other virtual services
Using Analytics
Internet Protocol Flow Information (IPFIX)
Acknowledgments for Open Source Software
Conventions
This document uses the following conventions:
Convention Indication
Bold font Keywords, user interface elements, and user-entered text
appear in bold font.
Italic font Document titles, new or emphasized terms, and variables
that you supply values are in italic font.
Pluribus Networks
www.pluribusnetworks.com
1
Convention Indication
[] Elements in square brackets are optional.
{x|y|z} Required elements are grouped in curly braces and are
separated by vertical bars.
[x|y|z] Optional parameters are grouped in brackets and
separated by vertical bars.
String A non-quoted set of characters. Do not use quotation
marks around the string or the string includes the
quotation marks.
courier font Command Line Interface (CLI) commands and samples
appear in courier font.
<> Nonprinting characters such as passwords are indicated by
angle brackets.
[] Default responses to system prompts are in angle
brackets.
CLI >Indicates that you enter the following text at the
network-admin@switch
command prompt.
Informational Note:
Indicates information of special interest.
Caution!
Indicates a situation that could cause equipment failure or loss of data.
TIP!
Indicates information that can help you solve a problem.
2
Pluribus Networks
www.pluribusnetworks.com
Timesaver:
Indicates information that can help you save time.
Documentation Feedback
To provide technical feedback on this document, or to report an error or omission, please
send your comments to [email protected]. We appreciate your feedback.
Pluribus Networks
www.pluribusnetworks.com
3
About the Netvisor ONE CLI
This chapter provides information for understanding and using the Pluribus Networks
Netvisor ONE command line interface (CLI) on a Netvisor ONE switch.
Important Terms
Entering Commands and Getting Help
Finding Command Options
Specifying IP Address Netmasks
Specifying Measurement Units
Customizing Show Output Formats
Specifying a Switch or Fabric for Command Scope
Important Terms
The following list of important terms and concepts as well as definitions is important for
understanding Netvisor ONE features and determine the best configuration to meet your
needs.
Term Meaning
API Application Programming Interface to the Netvisor OS
OS switch. It has a similar scope as the CLI.
CLI Command Line Interface to the Netvisor OS OS
switch. Depending on the command, it can be
executed for an individual switch, a cluster, or a
fabric.
Cluster A pair of Netvisor OS OS switches configured as a
high availability group. You can configure a number of
clusters in the fabric, but a switch can be a member
of one cluster.
Fabric A set of Netvisor OS switches configured as a single
entity. Any switch can only be a member of one
fabric.
Flow NetFlow identifies packet flows for both ingress and
egress IP packets and provides statistics based on
these packet flows. NetFlow does not require any
change to either the packets themselves or to any
networking device.
In-band Management The IP address of the switch on a production or
Address management network for administration and
inter-switch communication.
LACP Link Aggregation Control Protocol allows a
non-Netvisor OS device to have multiple connections
to the same switch, for example, IEEE 802.3ad
trunks.
Pluribus Networks
www.pluribusnetworks.com
5
Term Meaning
vFlow A logical, manageable connection within or
throughout the fabric.
VLAG Virtual Link Aggregation Group is the Netvisor OS
method for multiple connecting hosts to multiple
switches, switches to each other, and switches to
other switches.
Where a text string is used, such as name-string, the following characters are allowed as
part of the text string: a-z, A-Z, 0-9, _ (underscore), . (period), , (comma), : (colon), and -
(dash).
Informational Note: If you enter an invalid command, then using the ? and tab
key have no effect and do not return any changes to the CLI.
6
Pluribus Networks
www.pluribusnetworks.com
Informational Note: The CLI contains an editing ability similar to UNIX
and Linux functionality using emacs keys. For example, p steps backward
through previous commands, n moves to the next command in the
history, a moves to the first character in the command and e moves to
the end of the line, u erases the current line, and w erases the previous
word.
Informational Note: Also, use the up and down arrows on your keyboard
to retrieve the last command entered at the CLI.
Pluribus Networks
www.pluribusnetworks.com
7
Alternate Command Format
The CLI has an alternate command format in that the commands start with a verb instead of
a noun. This format omits the hyphen in the command names. For example,
connection-stats-show can also be entered as show connection-stats. The command
formats have the same features and can be used interchangeably.
format Displays only the columns matching the list of column header names.
<column_name1>, NOTE: The list of column names is comma-separated without spaces.
<column_name2>,
<column_nameX>
8
Pluribus Networks
www.pluribusnetworks.com
Table 4: Show Output Formats
format all Displays all available column headers. This output is also called
verbose mode.
By default, show commands output a terse set of the most commonly
useful column headers.
parsable-delim Displays the output of show command by separating columns by the
<separator> specified <separator> character(s).
For example, parsable-delim , produces a comma-separated output
(CSV).
NOTE: If the parsable-delim option is specified, the column header
names (titles) are suppressed from the output.
Pluribus Networks
www.pluribusnetworks.com
9
Installing Netvisor ONE and Initial Configuration
Using the Serial Console Port for Initial Configuration
Autoconfiguration of IPv6 Addresses on the Management Interface Support
Changes to the End User License Agreement (EULA)
Zero-Touch Provisioning Support
Transport Layer Security Protocol 1.2 Support
GREP Support for Netvisor OS
Running Commands on a Local Switch
Setting the Date and Time
Configuring Administrative Session Timeout
Viewing User Sessions on a Switch
Confirming Connectivity on the Network
Adding License Keys to Netvisor OS
Enabling Administrative Services
Modifying and Upgrading Software
Implementing a Fabric Upgrade or a “Rolling” Fabric Upgrade
Saving and Restoring Netvisor ONE Configurations
Copying and Importing Configuration Files
Exporting Configurations Using Secure Copy Protocol (SCP)
Displaying and Managing Boot Environment Information
Rolling Back to Previous Versions of Netvisor
Creating Switch Groups
Support for Enabling or Disabling LLDP
Managing RMAs for Switches
Overview
This section contains information about initial configuration of your switch as well as
commands to manage, upgrade, and restoring Netvisor ONE configurations.
10
Pluribus Networks
www.pluribusnetworks.com
Using the Serial Console Port for Initial Configuration
This procedure assumes that you have installed the switch in the desired location and it is
powered on.
Do not connect any ports to the network until the switch is configured.
You can accidentally create loops or cause IP address conflicts on the
network.
If you are going to cable host computers to the switch, there is an option to enable or disable
host ports by default.
1. Connect the console port on the rear or front (depending on the model) of the switch to
your laptop or terminal concentrator using a serial cable.
2. From the terminal emulator application on your computer, log into the switch with the
username network-admin and the default password admin.
3. Begin initial configuration using the initialization procedure displayed:
Informational Note: IPv6 addresses are supported for the in-band interface.
Pluribus Networks
www.pluribusnetworks.com
11
Secondary DNS IP (0.0.0.0): 192.168.200.253 <return> or ip-address
Domain name (some-domain.com): domain-name <return>
NTP Server:
Secondary NTP Server:
Timezone:
EULA accepted:
EULA timestamp:
Date:
Automatically Upload Diagnostics (yes): <return>
Enable host ports by default (yes): <return>
nvOS system info:
Switch Setup:
Switch Name: T6001
Switch Mgmt IP: 192.168.100.1/24
Mgmt IP assignment: static
Switch Mgmt IPv6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
MGMT IPv6 assignment: autoconf
Mgmt Link State: up
Mgmt Link Speed: 1g
Switch In-band IP: 192.168.200.1/24
Switch In-band IPv6: 2001:0db8:85a3:0000:0000:8a2e:0370:7315
Switch Gateway: 192.168.100.254
Switch DNS Server: 192.168.100.254
Switch DNS2 Server: 192.168.100.253
Switch Domain Name: pluribusnetworks.com
Switch NTP Server: 0.north-america.pool.ntp.org
Switch NTP Secondary-server 1.north-america.pool.ntp.org
Switch Timezone: US/Pacific
Switch Date: 2017-05-03, 13:02:39
Phone Home: Yes
HostID: 184551182
Location ID: 1
Upload Diagnostics: yes
Enable host ports: yes
Analytics Store: default
Fabric required. Please use fabric-create/join/show
Connected to Switch; nvOS Identifier:0x000044; Ver: 0.19.3398
Informational Note: In order to use the phone home feature, you must
open ports 8084 and 8843 on your firewall.
When you setup a switch for initial configuration, disable host-facing ports until ready to plug
in host cables to the switch. If Netvisor does not detect adjacency on a port during the
quickstart procedure, the ports remain in the disabled state. To enable the ports after
plugging in cables, use the port-config-modify port port-number host-enable
command. Netvisor enables host ports by default unless you specify no during the
quickstart procedure.
Netvisor OS Command Line Interface 3.0
By ANSWERING "YES" TO THIS PROMPT YOU ACKNOWLEDGE THAT YOU HAVE READ THE
TERMS OF THE PLURIBUS NETWORKS END USER LICENSE AGREEMENT (EULA) AND AGREE TO
THEM. [YES | NO | EULA]?: yes
12
Pluribus Networks
www.pluribusnetworks.com
Switch setup required:
Switch Name (e68-leaf-01):
network-admin Password:
Re-enter Password:
Mgmt IP/Netmask (10.13.25.225/16):
In-band IP/Netmask (192.168.97.2/24):
Gateway IP (10.42.42.1):
Primary DNS IP (10.42.44.1):
Secondary DNS IP:
Domain name (pluribusnetworks.com):
Automatically Upload Diagnostics (yes):
Enable host ports by default (yes): no
With switch-setup Enable host ports mode set to no, all ports have this
port-config-setting set to no. This can be viewed using the following command:
CLI (network-admin@Spine1) > port-config-show format port,host-enable,
In this mode, when any port comes up physically, Netvisor OS automatically sends and
receives LLDP packets to look for peer switches. If LLDP packets are received and Netvisor
forms an adjacency, Netvisor OS continues normally. If Netvisor does not detect an
adjacency within in 5 seconds, Netvisor OS flags the port as host-disabled. With this flag set,
Netvisor only accepts LLDP packets and does not initiate packet transmission.
CLI (network-admin@Spine01) > port-show
switch port ip mac hostname status
-------- ---- --------
------------- --------------- -------- ------------------------------
Spine-01 34 192.168.97.4 66:0e:94:cc:ee:fc E68-pa up,PN-switch,PN-other,LLDP,
Spine-01 5 phy-up,host-disabled
config trunk
--------- --------
fd,10g auto-128
After completing switch discovery and fabric creation, enable host, server, or router traffic
switching, and enable the ports using the host-enable option:
CLI (network-admin@Leaf1)>port-config-modify port 5 host-enable
switch-setup-show displays enable-host-ports setting. You cannot change this global
switch setting after the first initial switch-setup is performed. However, configure individual
ports for host-enable or disable by using the port-config-modify command.
Pluribus Networks
www.pluribusnetworks.com
13
IPv6 Stateless Address Autoconfiguration (SLAAC)
Like IPv4 addresses, you configure hosts in a number of different ways for IPv6 addresses.
Dynamc Host Configuration Protocol (DHCP) assigns IPv4 addresses dynamically and static
addresses assign fixed IP addresses. DHCP provides a method of dynamically assigning
addresses, and provides a way to assign the host devices other service information like DNS
servers, domain names, and a number of different custom information.
SLAAC allows you to address a host based on a network prefix advertised from a local
network router using Router Advertisements (RA). RA messages are sent by default by IPv6
router. These messages are sent out periodically by the router and include information
including:
One or more IPv6 prefixes (Link-local scope)
Prefix lifetime information
Flag information
Default device information (Default router to use and its lifetime)
Netvisor enables SLAAC by default on the switch.
When you configure IPv6 address on the management interface during setup, the parameter,
assignment, has two options:
none — Disables IPv6 addresses.
autoconf — Configure the interface with SLAAC.
When you enter the EULA option, the output displays the complete EULA text. After this
action, you cannot confirm EULA acceptance again. In some cases, an integrator may have
accepted the EULA on behalf of the actual end user.
Netvisor ONE displays the EULA acceptance with a timestamp of the event:
14
Pluribus Networks
www.pluribusnetworks.com
Zero-Touch Provisioning Support
Use Zero Touch Provisioning (ZTP) to quickly bring up and deploy a configuration on a
Pluribus switch with no user interaction. Typically used in large-scale data center
deployments where the data center engineers simply rack the equipment and connect it to
the management network.
ZTP leverages an on-premise DHCP server where an administrator configures one or more
vendor-specific DHCP options that Netvisor OS interprets and configures the switch.
ZTP runs when Netvisor is started and is in setup mode. Netvisor searches for vendor specific
DHCP options (236 and 237),in addition to a few commonly used ones.
Phase 2 of ZTP allows you to bring up a new switch and automatically configure the required
switch-setup settings, in-band-ip, or port-specific settings.
As new switches are connected to the DHCP-enabled management network, the new switch
is provided the required configuration using DHCP options to connect and retrieve a script
(ZTP script) interpreted by Netvisor OS.
If the switch is in ‘setup’ mode, Netvisor OS discovers and runs the ZTP script using the
following algorithm:
1. local directory (/sftp/import/nv-ztp-installer)
2. directory of USB drive (i.e. /media/{drive}/nv-ztp-installer)
3. remote webserver (http://<host>/nv-ztp-installer)
In all of the above cases, the script must be named nv-ztp-installer. However, a complete
URL may be specified using DHCP option 236, in which case the complete path to the installer
may be specified. For example,
option Pluribus_ZTP_url “http://<server>/my_script”;
Also, if you use options 66 and/or 67, the script may be named option 67. If you do not use
option 67, Netvisor OS defaults to the name nv-ztp-installer. Additionally, the Pluribus
Networks Cloud developer portal encrypts and signs the script.
Pluribus Networks
www.pluribusnetworks.com
15
Upload the script and click Create Signed Package button. The portal then encrypts, signs, and
downloads to the your switch. Pluribus Network Cloud does not store the script..
If Netvisor OS mode is in setup mode, ZTP discovery is triggered upon service startup. This is
the default mode for Netvisor OS.
The ZTP script contains a number of CLI commands that are interpreted in the order listed in
the script and issued to Netvisor OS as if you typed them at the CLI prompt.
The following sample script accepts the EULA, sets the inband-ip (based on DHCP option
237), name of the switch, DNS domain, and joins the fabric, corp-fabric:
#
# Configure the setup-related options first
#
switch-setup-modify eula-accepted true
switch-setup-modify in-band-ip %NV_ZTP_INBAND_IP%
--script-password switch-setup-modify password changeme
switch-setup-modify switch-name august
16
Pluribus Networks
www.pluribusnetworks.com
switch-setup-modify domain-name pluribusnetworks.com
#
# At this stage, nvOS is no longer in setup mode, other commands
# may now be used.
#
switch-setup-modify phone-home
--user network-admin:test123 fabric-join name corp-fabric
Any command used at the CLI prompt can also be used in a ZTP script. However, regular Unix
shell commands are not supported at this time and cause the script to fail.
When developing the script, Pluribus Networks recommends validating the script by first
executing the equivalent commands at the CLI prompt to ensure the proper sequence and
syntax. If any command fails, Netvisor ONE terminates the script.
The %NV_ZTP_INBAND_IP%, if used, replace the vendor-specific DHCP option 237. This allows
the DHCP server to control the in-band IP assignment in much the same way as controlling
management IP assignment by MAC. For example, the following DHCP server snippet sends
the inband-ip of 1.1.1.1 to my-switch:
host my-switch {
hardware ethernet 01:02:03:04:05:06;
option host-name "my-switch1";
option Pluribus_ZTP_inband_ip "1.1.1.1/24";
fixed-address 192.168.1.10;
Pluribus Networks
www.pluribusnetworks.com
17
Figure 4:ZTP Script Discovery
DHCP Options
The following options are queried and interrogated during ZTP discovery:
OPTION 54: DHCP server identifier
OPTION 66: TFTP server name
OPTION 67: Boot filename
OPTION 72: WWW server
OPTION 236: Pluribus ZTP URL (string)
OPTION 237: Pluribus ZTP Inband IP (string
SFTP Discovery
SFTP discovery checks for the presence of the ZTP installer (nv-ztp-installer) in the
directory: /sftp/import.
18
Pluribus Networks
www.pluribusnetworks.com
USB Discovery
USB discovery checks for the presence of the ZTP installer (nv-ztp-installer) on the root
directory of a removable drive. For Netvisor OS, USB drives are auto-mounted under
/media/{name of drive}.
HTTP Discovery
HTTP discovery uses the DHCP options above to find the ZTP script by performing a wget to
each of the options.
When performing HTTP discovery, Netvisor OS sends a number of HTTP headers with each
request. Specify the HTTP headers in the request to identify the client and platform to the
server. This allows the server-side to generate a dynamic response based on these client
parameters.
Netvisor OS sends the following HTTP headers during ZTP discovery:
X-NV-ZTP-HOSTID: <hostid of switch>
X-NV-ZTP-SERIAL: <serial # of switch>
X-NV-ZTP-PLATFORM: <platform of switch>
Security Considerations
The script is encrypted and signed in the same way as Netvisor OS packages and can only be
decrypted by Netvisor OS.
Additionally, the signer is also verified and only scripts signed by Pluribus are run.
CLI > help | grep “openstack” lists all of the commands for OpenStack
Pluribus Networks
www.pluribusnetworks.com
19
Changing Other Switch Setup Parameters
You can also modify other switch parameters including the following:
Switch name
Management IPv4 and IPv6 addresses
Management IPv4 and IPv6 netmasks
Management IPv4 and IPv6 address assignments
In-band IPv4 address
In-band netmask
Gateway IPv4 address
Gateway IPv6 address
Primary and secondary IPv4 addresses for DNS services
Domain name
NTP server
End User License Agreement (EULA) acceptance and timestamp
Password
Date
Phone home for software updates
Analytics store (storage type)
Message of the Day (MOTD)
Banner
20
Pluribus Networks
www.pluribusnetworks.com
banner:
The analytics-store parameter refers to the storage location for analytics which in this
case is the hard drive on the switch. Netvisor ONE does not support external hard drives.
(CLI network-admin@Spine1)>admin-session-timeout-show
switch: Spine1
timeout: 300s
CLI (network-admin@Leaf1)>mgmt-session-show
switch user cli-user pid terminal from-ip login-time
------------- ----- ------------- ----- -------- ------------ --------------
Spine-ext-41 admin network-admin 13805 pts/3 10.60.1.216 11:20:52
Spine-ext-41 root network-admin 8589 pts/2 10.14.20.109 11-15,17:16:17
Pluribus Networks
www.pluribusnetworks.com
21
Spine-ext-41 network-admin 08:24:10
Spine-ext-41 root 19139 pts/1 10.14.22.54 11-15,11:01:08
type
------
cli
cli
api
shell
Once you install the license key, display information about the key using the following
command:
CLI (network-admin@Leaf1)>software-license-show
switch: T6001-ON
license-id: NVOS-CLD-LIC-60D
description: Pluribus Open Netvisor OS Linux Cloud Edition License
expires-on: never
status: VALID
22
Pluribus Networks
www.pluribusnetworks.com
Enabling Administrative Services
There are many features of the Pluribus Networks fabric that require or can be enhanced
using remote access. For example, when Netvisor writes packets to a log file, transfer the file
from a switch to a different system for analysis. Also, if you create a NetVM environment, you
must load the OS of the guest OS on the switch.
Netvisor supports file transfer method SFTP.
SFTP is enabled by default. Because SFTP relies on Secure Shell (SSH), you must enable SSH
before enabling SFTP.
1. To check the status of SFTP, use the following command:
CLI (network-admin@Leaf1)>admin-service-show
switch: Leaf-2
if: mgmt
ssh: on
nfs: on
web: on
web-ssl: off
web-ssl-port: 443
web-port: 80
web-log: off
snmp: on
net-api: on
icmp: on
switch: techpub-accton-2
if: data
ssh: on
nfs: on
web: on
web-ssl: off
web-ssl-port: 443
web-port: 80
web-log: off
snmp: on
net-api: on
icmp: onf
The default SFTP username is sftp and change the password using the
admin-sftp-modify command:
CLI (network-admin@Leaf1)>admin-sftp-modify
sftp password: <password>
confirm sftp password: <password>
CLI (network-admin@Leaf1)>admin-service-show
switch nic ssh nfs web web-port snmp net-api icmp
------ --- --- --- --- -------- ---- ------- ----
pleiades24 mgmt on on off 80 off off off
CLI (network-admin@Leaf1)>admin-sftp-show
Pluribus Networks
www.pluribusnetworks.com
23
switch: pleiades24
sftp-user: sftp
enable: yes
Use SFTP from a host to the switch, and login with the username sftp and the password
configured for SFTP. Then you can download the available files or upload files to the switch.
CLI (network-admin@Leaf1)>admin-service-show
switch nic ssh nfs web web-port snmp net-api icmp
------ --- --- --- --- -------- ---- ------- ----
pleiades01 mgmt on off on 80 off on on
2. If the upgrade status indicates the availability of a newer version of Netvisor ONE, request
an update from the server:
CLI (network-admin@Leaf1)>software-upgrade
Check the status while the switch is upgrading, use the software-upgrade-status-show
command.
3. Check the status of the switch after upgrading, reconnect to the switch, and enter the fol-
lowing command:
24
Pluribus Networks
www.pluribusnetworks.com
CLI (network-admin@Leaf1)>software-show
version: 2.2.1-202016554
track: 2.2-release
upgrade-status: up-to-date
auto-upgrade: disable
use-proxy: no
Informational Note: Allow plenty of time for the switch to download and
install the new version of software. Do not interrupt the operation while the
upgrade is in progress. After completing the upgrade, the switch reboots
and loads the latest version of the software.
If you encounter any problems with the new version of the software, select
a previous versionof the boot software.
To upgrade the current Netvisor OS to a later release, use the software-upgrade command.
CLI (network-admin@Leaf1)>software-upgrade package
nvos-2.3.1-203018600.tgz
The parameter package allows you to specify the name of the upgrade file.
To display information about the software upgrade path, you can use the
software-track-show command.
Pluribus Networks
www.pluribusnetworks.com
25
Before You Begin the Fabric Upgrade
Before you begin, review the following options for the fabric-upgrade-start command:
auto-finish — specify to automatically reboot the entire fabric after completing the
upgrade.
rolling — specify if performing a rolling fabric upgrade. A rolling fabric upgrade
performs the upgrade procedure on a switch-by-switch basis and copies the software
package from the controller to other switches in the fabric. If you specify no-rolling,
Netvisor reboots all switches after the upgrade.
abort-on-failure — specify if the upgrade to stop if a failure occurs during the
process.
manual-reboot — specify if to manually reboot individual switches after the upgrade
process. If you specify no-manual-reboot, all switches reboot automatically after
completing the upgrade.
prepare — specify if to perform setup steps prior to performing the upgrade. This step
copies the offline software package and then extracts and prepares it for the final
upgrade process. Once you begin the prepare process, you cannot add new switches
to the fabric.
reboot-parallel — specify to reboot switches in parallel for a cluster configuration.
Or, you can reboot them one at time using the reboot-single option.
reboot-group — specify the number of switches to reboot as a group in parallel
mode. By default, a fabric consists of up to 100 switches msximum.
The first entry in the log is the duration of the upgrade process. It does not include waiting
time. The switch with the asterisk (*) is the controller server-switch where the
fabric-upgrade-start command was issued.
26
Pluribus Networks
www.pluribusnetworks.com
Additional commands for the fabric upgrade feature:
fabric-upgrade-finish — you can issue this command at any time during the fabric
upgrade to reboot all nodes in the fabric and complete the upgrade. Once the upgrade
phase is complete, all server-switches display the “Upgrade complete” message in the
log field. You can then safely reboot the fabric.
fabric-upgrade-abort — aborts the software upgrade process. All changes to the
server-switches are cleaned up and the server-switches do not reboot. The
configuration lock on the fabric is also released.
If you issue the fabric-upgrade-abort command during the upgrade process, it may take
some time before the process stops because the upgrade has to reach a logical
completion point before the changes are rolled back on the fabric. This allows the proper
cleanup of the changes.
fabric-upgrade-prepare-cancel — cancels a fabric upgrade prepared earlier.
fabric-upgrade-prepare-resume — resume a fabric upgrade prepared earlier.
fabric-upgrade-prepare-show — displays the status of prepared upgrades on the
fabric nodes.
2. Use the following command to display the files available for import and export:
CLI (network-admin@Leaf1)>switch-config-show
Pluribus Networks
www.pluribusnetworks.com
27
switch export-file
pleiades24 pleiades24.2013-11-04T22.33.31.tar.gz
Now copy the configuration file to a different host using SFTP or NFS. For example, SFTP to
the switch-ip-address, and login using the SFTP password. Then use cd/nvOS/import,
and use get to download the configuration file.
The Netvisor command, switch-config-export exports the configuration of the local
switch. The file created is a tar file that includes a number of configuration files for the
switch. The file created under /nvOS/export. Also, each time you reset the switch using
the command, switch-config-reset, Netvisor retains a backup of the configuration and
places a file in the same location.
Once you export the switch configuration, use it to import on the same switch, by executing
the switch-config-copy-to-import command. Netvisor copies the configuration tar file
from the /nvOS/export to the /nvOS/import directory. Once in the /nvOS/import
directory, use the switch-config-import command to import the switch configuration.
The switch-config-import command is used to import a configuration on the local
switch. When using that command, the intention is to import a switch configuration t
previously exported by the same switch.
The switch-config-import command has a few parameters to it. The
ignore-system-config and the apply-system-config parameters are 2 parameters
that allow the imported configuration of the switch to override or not override the
currently configured information found under the switch-setup-show command. When
you select the ignore-system-config parameter, Netvisor s to an archive. If you select
apply-system-config, Netvisor applies the settings in the tar file to the local switch.
When you import a configuration using the switch-config-import command, Netvisor
over writes the current configuration on the switch with the imported configuration file.
The skip-fabric-join option imports the fabric configuration from the tar file.
However, this information may be out of date with respect to the fabric if transactions
occurred on the fabric since exporting the file causes the imported configuration to be
out-of-sync with the current fabric. Specify do-fabric-join, which extracts the fabric
name from the tar file, and attempts to join the fabric and download the current fabric
configuration, so that it synchs with the rest of the fabric. Netvisor ignores the fabric
configuration in the tar file, but imports cluster and local configurations from the tar
file.
When a switch that was part of a cluster is replaced, use the fabric-join
repeer-to-cluster-node command for the new switch to receive all required switch
configuration, including the local configuration.
To upload a configuration file to a switch and set the configuration for the switch using the
configuration file, you must transfer the configuration file to the target switch using the
following sequence of commands:
sftp sftp@<switch-ip-address>
Connecting to switch-ip-address
Password: <password>
sftp> cd nvOS/import
sftp> put pleiades24.2013-11-04T22.33.31.tar.gz
28
Pluribus Networks
www.pluribusnetworks.com
Informational Note: The configuration file must use the *.tar.gz
extension to be recognized by nvOS.
CAUTION! Loading the configuration file causes nvOS to restart which results in
a brief interruption to switch traffic flow.
Now load the configuration file which replaces the current configuration on the switch with
the information in the file.
CLI (network-admin@Leaf1)>switch-config-import import-file
pleiades24.2013-11-04T22.33.31.tar.gz
New configuration imported. Restarting nvOS...
Connected to Switch pleiades24; nvOS Identifier:0xb000011; Ver: 0.19.3747
Netvisor provides many options to allow you to control how the switch-config-import
modifies the switch, including the following:
ignore-system-config - ignore the current system configuration.The settings in the
*.tar file are not applied to the local switch.
apply-system-config — apply the system configuration in the imported file. The
settings in the *.tar file are applied to the local switch. You typically do not want to
use this option as it changes the in-band IP address and other settings.
skip-fabric-join — opt out of joining the fabric. This setting imports the fabric
configuration from the *.tar file, but this information may be out of date with respect
to the fabric if additional transactions occur on the fabric since the file was exported.
do-fabric-join — join the current fabric. This setting extracts the fabric name from the
*.tar file and attempts to join the fabric. Then the switch contacts the current fabric to
download the configuration so that the switch is in sync with the rest of the fabric.
Cluster and local configurations are imported from the *.tar file.
no-replace-switch — do not replace the current switch.
replace-switch — replace the current switch. Use this setting to replace a faulty switch
and after importing the file, has the same configuration as the replaced switch. This
replaces all of the local, cluster, and fabric configuration by downloading the
configurations from peer switches. No configuration is necessary or advised before
running this command. However, you need to run the initial quickstart to obtain an
in-band IP address.
Pluribus Networks
www.pluribusnetworks.com
29
By default, the initial switch system configuration, management IP addresses and other
parameters, are not applied if there is another switch in the fabric with the same settings. To
apply the initial settings, use the apply-system-config option. Also, by default, the
imported configuration attempts to join the same fabric that the original switch was a
member. If that join fails, then the import fails. You can avoid this issue by using the
skip-fabric-join option. Finally, if the original switch is still on the network and you want
to copy the configuration to a new switch, but you want to prevent the new switch from
taking ownership of any objects specific to the original switch, such as VNET services, or
VLAN port settings, you must use the no-replace-switch option.
Depending on the available remote access services, you copy the configuration file to a
different switch. For example, SFTP to another switch using the IP address of the switch,
login as SFTP with the previously set password, cd /nvOS/import and get the configuration
file.
To upload the configuration file to the target switch and set the configuration from the
configuration file, transfer the configuration file to the target switch with the IP address,
192.168.3.35.
To export a configuration to a server, use the switch-config-export command:
CLI (network-admin@Leaf1)>switch-config-export
30
Pluribus Networks
www.pluribusnetworks.com
New parameters in Netvisor support this feature:
CLI (network-admin@Leaf1)>switch-config-export
If you specify an upload server and password, Netvisor OS prompts you for that information
when you execute the software-upgrade command.
To reset the boot environment and reboot using the previous environment, use the following
syntax:
CLI (network-admin@Leaf1)>bootenv-activate-and-reboot name netvisor-22
To delete a boot environment, use the following syntax:
CLI (network-admin@Leaf1)>bootenv-delete name netvisor-22
Pluribus Networks
www.pluribusnetworks.com
31
If the current transaction ID for the scope is less, Netvisor rolls the transaction
forward, and deletes the files when done.
32
Pluribus Networks
www.pluribusnetworks.com
CLI (network-admin@Leaf1)>switch-group-modify name rack-1-row-1
description datacenter
(CLI network-admin@Spine1)>switch-group-show
name name-string Specify the name of the switch group to add the
member.
member fabric-node name Specify the name of the switch to add as a member.
To add switch, Leaf-1, to switch-group, rack-1-row-1, use the following syntax:
CLI (network-admin@Leaf1)>switch-group-member-add name rack-1-row-1
member Leaf-1
(CLI network-admin@Spine1)>switch-group-member-remove
name name-string Specify the name of the switch group to remove the
member.
member fabric-node name Specify the name of the switch to remove as a
member.
To remove switch, Leaf-1, from switch-group, rack-1-row-1, use the following syntax:
CLI (network-admin@Leaf1)>switch-group-member-remove name rack-1-row-1
member Leaf-1
(CLI network-admin@Spine1)>switch-group-member-show
Pluribus Networks
www.pluribusnetworks.com
33
CLI (network-admin@Leaf1)>system-settings-modify [lldp|no-lldp]
LLDP packets are executed on the CPU with the help of LLDP vFlows.
To clear all LLDP protocol system flows use the parameter no-lldp.
To add all LLDP protocol system flows use the parameter lldp.
This approach does not disturb port LLDP configurations
CLI (network-admin@Leaf1)>system-settings-show
switch: Spine1
optimize-arps: on
lldp: on
A primary case for an RMA is a failed switch in the network. Netvisor restores the
configuration to a replacement switch using the following commands:
fabric-join
fabric-join repeer-to-cluster-node
switch-config-import
RMA Process
This procedure assumes a failed switch is part of a HA pair (cluster). Nodes part of a cluster
automatically back up the other configuration.
For an RMA case, the host ID differs between the new switch and the old failed switch.
Netvisor ties both cluster membership and service object locations to the host ID.
1. Retrieve the host id of the old node:
CLI> fabric-node-show name <old-hostname> format name,id
2. Evict the old node from the fabric. This allows Netvisor to process fabric provisioning oper-
ations before completing the RMA. Additionally, the presence of the old node ID interferes
with subsequent steps.
CLI> fabric-node-evict name <old-hostname>
3. Setup the new switch with basic settings, such as hostname and IP address.
Perform this step at the console when booting the switch for the first time:
CLI> switch-setup-modify
4. Configure the new switch to rejoin the fabric. As it is part of a cluster, use the
repeer-to-cluster-node option.
CLI> fabric-join name <fabric-name> repeer-to-cluster-node
<existing-peer-name>
Netvisor downloads the entire backed up configuration from the cluster peer and restarts
Netvisor ONE to apply it. The process restores local, cluster, and fabric scoped configuration.
34
Pluribus Networks
www.pluribusnetworks.com
5. After restart, any service objects present on the failed switch, must be migrated to the
new host. Use the value retrieved in Step 1 for the location parameter:
The above command executes a bulk migration of all service objects (vRouters, VNET
managers, OVSDB Interfaces) and sub-objects
If the imported configuration already has location IDs, Netvisor ignores the parameter.
Pluribus Networks
www.pluribusnetworks.com
35
Configuring Port Attributes
Displaying Port Numbering
Configuring Ports for Different Throughput
Displaying Port Status
Displaying Port Statistics
Auto-Recovery of a Disabled Port
Loop-Free Layer 2 Topology
Managing Control Plane Traffic Protection (CPTP)
Enhancements for Control Plan Traffic Protection
Additional Control Plane Traffic Protection Enhancements
Display Physical Port Layer 2 Information
Displaying Transceiver Information
Configuring Minimum and Maximum Bandwidth on Ports
Changes to Class of Service (CoS) Behavior
Configuring Port Storm Control
Enabling Jumbo Frame Support
About Port Isolation
Support for Priority-based Flow Control
Support for Priority-based Flow Control Port Statistics
36
Pluribus Networks
www.pluribusnetworks.com
Leaf1 51 49.3
Leaf1 52 49.4
Leaf1 53 50
Leaf1 54 50.2
Leaf1 55 50.3
Leaf1 56 50.4
To change the port back to 40Gb operation, use the following command sequence:
Netvisor sets the default port speed to 10G and you can modify the parameters of a port:
Speed - you can disable the port or set the speed to 10m, 100m, 1g, 2.5g, 10g, or
40g.
Egress rate — limit the egress rate or set to unlimited.
Ethernet mode type — set the mode type to 1000base-x, sgmii, autonegotiate
Enable or disable a port
LACP priority — between 1 and 65535
Reflect — received frames are reflected for loopback testing.
Edge-switch — Specify if the port connects to another Netvisor ONE device or
uplinks to a third-party switch or host.
Pause — pause traffic on the port.
Description — description of the port
Loopback — specify loopback
Mirror-receive — receive mirrored traffic only.
MAC address — specify a MAC address for the port.
VLAG failover — specify if the port is used in VLAG failover.
Sending port number — specify if the port number sends traffic.
Pluribus Networks
www.pluribusnetworks.com
37
Displaying Port Status
Use the port-show command to display status information on all ports with active links.
Details for each port include the IP addresses and MAC addresses of hosts connected to that
port. More than one host if a network device such as a switch connects. The command also
displays the VLAN of the port, port status, and configuration details.
To display all port information for ports 1-6 on the switch, use the command, port-show
port 1-6:
switch: dorado05
time: 11:32:41
port: 0
description:
counter: 0
ibytes: 2.82G
ibits: 24.2G
iUpkts: 176M
iBpkts: 0
iMpkts: 0
iPauseFs: 0
iCongDrops: 0
idiscards: 7
ierrs: 0
obytes: 884M
obits: 7.42G
oUpkts: 13.0M
oBpkts: 0
oMpkts: 0
oPauseFs: 0
oCongDrops: 1.89G
odiscards: 1.89G
oerrs: 0
mtu-errs: 0
HER-pkts: 0
HER-bytes: 0
port-speed: disable
38
Pluribus Networks
www.pluribusnetworks.com
The output headers have the following meaning:
switch — switch name
time — the time of the command
port — port number
counter — number of counters for the port
ibytes — number of incoming bytes in K (Kilobytes), M (Megabytes), or G (Gigabytes)
iUpkts — number of incoming unicast packets
iBpkts — number of incoming broadcast packets
iPauseFs — number of incoming paused fragmented packets
iCongDrops — number of incoming packets dropped due to congestion
idiscards — number of discarded incoming packets
ierrs — number of incoming packets with errors
obytes — number of outgoing bytes K (Kilobytes), M (Megabytes), or G (Gigabytes)
oUpkts — number of outgoing unicast packets
oBpkts — number of outgoing broadcast packets
oMpkts — number of outgoing multicast packets
oPauseFs — number of outgoing paused fragmented packets
oCongDrops — number of outgoing packets dropped due to congestion
odiscards — number of discarded outgoing packets
oerrs — number of outgoing packets with errors
mtu-errs — number of MTU errors
HER-pkts — number of VLE port packets
HER-bytes — number of VLE bytes
switch: Spine1
enable: yes
interval: 1m
disk-space: 50M
Modify the buffer interval, duration, disk space, and enable or disable port buffering on the
switch.
To display the port buffer, use the port-buffer-show command:
switch: Spine1
Pluribus Networks
www.pluribusnetworks.com
39
port: 0
ingress-used-buf: 0%
ingress-used-buf-val: 0
egress-used-buf: 0%
egress-used-buf-val: 0
switch: Spine1
port: 3
ingress-used-buf: 0%
ingress-used-buf-val: 0
egress-used-buf: 0%
egress-used-buf-val: 0
switch: Pleiades24
port: 57
ingress-used-buf: 0%
ingress-used-buf-val: 0
egress-used-buf: 0%
egress-used-buf-val: 0
switch: Spine1
port: 65
ingress-used-buf: 0%
ingress-used-buf-val: 0
egress-used-buf: 0%
egress-used-buf-val: 0
switch: Spine2
port: 0
ingress-used-buf: 0%
ingress-used-buf-val: 0
egress-used-buf: 0%
egress-used-buf-val: 0
switch: Spine2
port: 1
ingress-used-buf: 0%
ingress-used-buf-val: 0
egress-used-buf: 0%
egress-used-buf-val: 0
The port is set to Err disabled when a BPDU Guard message is received on an Edge
port.
The port is configured with BPDU Guard enabled.
Pluribus Networks switches supports BPDU Guard on Edge ports.
Link Flaps
There are too many link flaps for a configured interval of time.
MAC address Security Violation
40
Pluribus Networks
www.pluribusnetworks.com
The number of MAC addresses on an interface is greater than the configured limit.
This feature allows you to configure an automatic retry to enable the port after a
configured timeout.
switch: Leaf1
bpduguard: off
macsecurity: off
recovery-timer: 5m
Pluribus Networks
www.pluribusnetworks.com
41
Migration history including owner, time, and port
vPort state as active, static, moving, or loop-probe
Access to the Netvisor ONE fabric goes through the Netvisor ONE software. Netvisor ONE
determines if endpoints access the network based on control plane data structures including
the vPort database.
Detecting Loops
Netvisor implements Netvisor ONE Loop Detection as part of Netvisor ONE source MAC
address miss handling. Netvisor ONE disables hardware learning of MAC addresses, when a
packet arrives with an unknown MAC address, the switch sends the packet to Netvisor ONE
rather than switching the packet normally. Netvisor ONE examines the vPort table to
determine if a packet with an unknown MAC indicates a loop.
Netvisor ONE uses two criteria to detect a loop on the network:
A MAC address associated with an in-band NIC of a node in the fabric appears as the
source MAC on a packet that ingresses on a host port. Netvisor ONE detects this
situation by noting the PN-internal status of a vPort migrating to a host port. Netvisor
ONE prevents the migration to take place and starts loop mitigation.
For the purposes of Netvisor ONE Loop Detection, Netvisor defines a host port as a port not
connected to another Pluribus switch, not an internal port, and disables participation in STP
with Netvisor ONE. Netvisor ONE disables STP on the switch and the device connected on the
port.
Packets with the same source MAC address arrive on multiple host ports in the fabric
at approximately the same time. In order to support VM and host migration, Netvisor
tolerates some rapid movement of MAC addresses through the fabric. When the same
MAC address moves rapidly back and forth between two ports, Netvisors detects a
loop and loop mitigation starts.
VRRP MAC addresses do not participate Loop Detection and Mitigation, and migrate freely.
Netvisor detects loops on a port by port basis. A single loop typically involves two ports,
either on the same switch or on two different switches. When multiple loops occur with more
than two ports then Netvisor responds to each port separately.
Loop Mitigation
When Netvisor detects a loop, a message appears in the system log indicating the host port
and VLAN involved in the loop. In addition the host port involved in the loop has the "loop"
status added and Netvisor ONE adds the VLAN to the host port loop-vlans VLAN map.
Looping ports and VLANs are displayed in the port-show output.
At the start of loop mitigation, Netvisor ONE creates vPorts to send loop probe packets. The
vPorts use the port MAC address for the in-band NIC port, status of PN-internal, and a state
of loop-probe. Netvisor propagates Loop-probe vPorts throughout the fabric. Netvisor ONE
creates a loop-probe vPort for each looping VLAN.
At the start of loop mitigation Netvisor ONE deletes all vPorts from the looping host port and
VLAN. This prevents the hardware from sending unicast packets to the looping port, and
causes every packet arriving on the looping port to appear in the software as a source MAC
miss. During loop mitigation, Netvisor drops all packets arriving on the looping port.
42
Pluribus Networks
www.pluribusnetworks.com
During loop mitigation, Netvisor ONE sends loop probe packets on the looping VLANs every 3
seconds. As long as the loop persists, Netvisor ONE receives the probe packets as source
MAC miss notification on the looping ports, so Netvisor ONE can determine if the loop is still
present. If 9 seconds elapse with no received probe packets, Netvisor ONE detects the loop is
resolved and ends loop mitigation.
At the end of loop mitigation, log messages are added the system log, loop-probe vPorts are
removed, and loop stats and loop VLANS are removed from the looping port.
To view affected ports, use the port-show command and add the parameter, status loop:
network-admin@switch-31>port-show status loop
switch port hostname status config
---------- ---- -------- --------------------- ------
switch-31 9 up,stp-edge-port,loop fd,10g
switch-32 9 up,stp-edge-port,loop fd,10g
Note the new status, loop, in the status column.
During loop mitigation, the MAC addresses for loop probes are displayed in the vPort table:
CLI (network-admin@switch-31) > vport-show state loop-probe
owner mac vlan ports state hostname status
---------- ----------------- ---- ----- ---------- ---------- -----------
switch-32 06:c0:00:16:f0:45 42 69 loop-probe leo-ext-32 PN-internal
switch-31 06:c0:00:19:c0:45 42 69 loop-probe leo-ext-31 PN-internal
Note the loop-probe state as well as the PN-internal state. The loop probes use the port
MAC address format, and use the internal port for the in-band NIC.
If you notice a disruption in the network, use the port-show command to find the looping
ports, and fix the loop. Fixing the loop typically involves correcting cabling issues, configuring
virtual switches, or as a stop-gap measure, using the port-config-modify command to
change port properties for the looping host ports. Once you resolve the loop, Netvisor ONE
no longer detects probes and leaves the loop mitigation state, while logging a message:
2016-01-12,12:18:41.911799-07:00 leo-ext-31 nvOSd(25695) system
host_port_loop_resolved(11381) : level=note : port=9 :
Traffic has stopped looping on host-port=9
At this point Netvisor removes the loop status from the port-show output for port 9 and
deletes the loop-probe vPorts.
Netvisor ONE Loop Detection exposes loops using system log messages, port-show output,
and vport-show output. Enable or disable Netvisor ONE Loop Detection by using the
system-settings-modify command:
network-admin@e68-leaf-01>system-settings-modify block-loops
network-admin@e68-leaf-01>system-settings-modify no-block-loops
When Netvisor ONE detects an internal port MAC address on a host port, Netvisor ONE prints
a log message:
system 2016-01-19,15:36:40.570184-07:00 mac_move_denied
11379 note MOVE DENIED mac=64:0e:94:c0:03:b3 vlan=1 vxlan=0
from switch=leo-ext-31 port=69 to deny-switch=leo-ext-31 deny-port=9
reason=internal MAC of local switch not allowed to change ports
Pluribus Networks
www.pluribusnetworks.com
43
During Loop Mitigation, Netvisor ONE sends loop probes. When these probes, as well as any
other packets received on a looping host port, Netvisor ONE logs a message:
Netvisor ONE limits mac_move_denied messages to one every 5 seconds for each vPort. This
prevents the system log from filling up with mac_move_denied messages during loop
mitigation.
During loop mitigation, use the port-show command to see ports involved in the loop:
Note the loop status in the status column and the loop-vlans column.
During loop mitigation the MAC addresses for loop probes Netvisor displays the vPort table:
44
Pluribus Networks
www.pluribusnetworks.com
Nevisor supports this feature on the following
platforms:
• S4048-ON • Z9100-ON
Control Plane Traffic Protection (CPTP) applies to the internal control, data, and span ports
which all connect to the CPU, so CPTP protects the CPU resources from large quantities of
traffic arriving from different sources such as control packets, cluster communication, fabric
updates as well as the regular flood traffic, learning packets and copy-to-cpu packets.
CPTP classifies the traffic on the hardware to different Class of Service (CoS), and performs
priority scheduling between them, and also applies a rate limit for each of the CoS, to protect
the CPU resources and at the same time, provide a Service Level Agreement (SLA) for critical
traffic.
switch port port-number cos0-rate cos1-rate cos2-rate cos3-rate cos4-rate cos5-rate cos6-rate
--------- ----- ----------- --------- --------- --------- --------- --------- --------- --------
Spine1 pci-e 0 100 100 1000000 1000000 1000000 1000000 1000000
Spine1 data 65 100 100 1000000 1000000 1000000 1000000 1000000
Spine1 span 66 100 100 1000000 1000000 1000000 1000000 1000000
switch: Leaf1
port: control-port
ports: 0
cos0-rate(pps): 5000
cos1-rate(pps): 5000
cos2-rate(pps): 5000
cos3-rate(pps): 5000
cos4-rate(pps): 5000
cos5-rate(pps): 5000
cos6-rate(pps): 5000
cos7-rate(pps): 5000
Modify the CoS rate settings using the port-cos-rate-setting-modify command. Netvisor
sets the rate limits in packets per second.
switch: Spine1
time: 11:59:15
port: 0
cos0-out: 58.8M
cos0-drops: 180M
cos1-out: 58.8M
cos1-drops: 185M
cos2-out: 0
cos2-drops: 0
cos3-out: 0
cos3-drops: 0
cos4-out: 0
Pluribus Networks
www.pluribusnetworks.com
45
cos4-drops: 0
cos5-out: 0
cos5-drops: 0
cos6-out: 65.5M
cos6-drops: 1.06G
cos7-out: 483K
cos7-drops: 493MTo clear the statistics for CoS on the ports, use the
port-cos-stats-clear command.
Netvisor assigns all DHCP traffic to a separate CoS queue, 21, and reserves CoS 0-7 CPU
queues. Any traffic not in one of the listed classes uses queue 0.
Netvisor ONE assigns a default rate-limit of 1000 to each queue, and you modify the rate
using the following syntax:
Restart Netvisor ONE for the change to take effect on the switch. Modify any or all traffic
classes at one time and then reboot the switch once.
46
Pluribus Networks
www.pluribusnetworks.com
Configuring User-defined Classes
1. Create a CPU class and specify the rate-limit:
CLI network-admin@Leaf1 > vflow-create name ftp scope local proto ftp cpu-class
ftp action copy-to-cpu
Netvisor validates the vFlow only if you add the cpu-class parameter and specify the
action copy-to-cpu or to-cpu.
Pluribus Networks
www.pluribusnetworks.com
47
Spine1 ospf 25 0 0
Spine1 ftp 26 0 0
48
Pluribus Networks
www.pluribusnetworks.com
rate-limit unlimited Displays the ingress rate limit on the
management port in Bps or unlimited.
burst-size default Displays the ingress traffic burst size in bytes
or default.
Pluribus Networks
www.pluribusnetworks.com
49
in-pkts in-pkts-number Displays the ingress packets processed.
drop-pkts drop-pkts-number Displays the number of ingress packets
dropped.
name rate-limit
------- ----------
arp unlimited
icmp unlimited
ssh unlimited
snmp unlimited
fabric unlimited
bcast unlimited
nfs unlimited
web unlimited
web-ssl unlimited
net-api unlimited
50
Pluribus Networks
www.pluribusnetworks.com
Displaying Transceiver Information
Display information about the transceivers connected to the switch using the
port-xcvr-show command:
(CLI network-admin@Spine)>port-cos-bw-show
Pluribus Networks
www.pluribusnetworks.com
51
CLI (network-admin@Spine1) > port-cos-bw-show
Changing the port settings to new values overrides the previous settings.
52
Pluribus Networks
www.pluribusnetworks.com
CLI network-admin@Leaf1 > port-cos-bw-modify
Pluribus Networks
www.pluribusnetworks.com
53
switch cos port min-bw-guarantee max-bw-limit weight
------- --- ---- ---------------- ------------ ------
Spine-1 0 1-72 0% 100% 0
Spine-1 1 2-72 0% 100% 0
Spine-1 1 1 20% 100% 6
Spine-1 2 1-72 0% 100% 0
Spine-1 3 1-72 0% 100% 0
Spine-1 4 1-72 0% 100% 0
Spine-1 5 1-72 0% 100% 0
Spine-1 6 1-72 0% 100% 0
Spine-1 7 1-72 0% 100% 0
54
Pluribus Networks
www.pluribusnetworks.com
About Port Isolation
Port Isolation prevents local switching among ports on a Netvisor ONE switch or on a pair of
Netvisor ONE switches configured as a cluster. With Port Isolation, Netvisor disables direct
communication with hosts part of same Layer 2 domain connected to isolated ports or to
mutually learn the other MAC address. Communication between these hosts occurs through a
Layer 3 device. Use this feature to secure bridged east-west traffic through a firewall.
When using this feature on ports within a cluster, you must configure the port-link state
association rules between the uplink ports and the downlink isolated ports.
Pluribus Networks
www.pluribusnetworks.com
55
PN-HA2
Typically, you configure the upstream router or firewall to perform local proxy ARPs and/or
NDP proxy and respond to all ARP requests and/or Neighbor Solicitations coming from
isolated hosts. To avoid interfering with local proxy ARPs and NDP proxy, disable ARP and ND
Optimization as follows:
2. Optionally, configure the port link state association. A port association requires matching
the link state of downlink isolated ports with the one of uplink ports. When all uplink ports
detect the down state, Netvisor disables downlink isolated ports until one of the uplinks
becomes operational again. In this example, the port association name ,PA, uplink (mas-
ter), ports value 64, and isolated downlink (slave) ports value as 1, 2.
This feature uses the command no-local-switching for the port-config-modify command.
To configure one or more isolated ports:
To view ports that are impacted by the no-local-switching command, use the
port-egress-show command:
switch port egress rx-only active-active-vlags loopback
------ --------- ------- ------------------- -------------------- --------
1 0-72 none none none none
2 0-72 none none none none
3 0-72 none none none none
4 0-72 none none none none
5 0-4,11-72 none none none none
6 0-4,11-72 none none none none
7 0-4,11-72 none none none none
8 0-4,11-72 none none none none
56
Pluribus Networks
www.pluribusnetworks.com
mir_prevent_out no-local-switching-out
------------------------ ----------------------
none none
none none
none none
none none
none 5-10
none 5-10
none 5-10
none 5-10
The following Port Isolation options for the trunk-create, trunk-modify, and trunk-show
commands are as follows:
Pluribus Networks
www.pluribusnetworks.com
57
Support for Priority-based Flow Control
Priority Flow Control (PFC) is an IEEE standard (802.1qbb) for link level flow control on
Ethernet networks. Functionally, this feature is similar to the IEEE standard 802.3 for PAUSE
mechanism, except that it operates at the granularity of individual packet priorities or traffic
class, instead of port level. When a queue corresponding to traffic with a particular traffic
class reaches a predetermined, either auto or statically set, threshold, the switch chip
generates a PFC frame and sends it back to the sender. For PFC to work effectively end to end
on the network, all switches and hosts in the traffic path are configured to enable PFC, and
configured for traffic class to priority mappings.
Netvisor ONE commands configure priorities, or traffic classes, for PFC. The configuration
allows you to add ports where PFC is enabled. When enabled, traffic class to CoS queue
mappings, as well as to packet priorities, Netvisor performs the configuration in the
background.
Netvisor accepts the following mappings:
1 to 1 traffic class to CoS queue mapping (0 through 7
1 to 1 packet priority (802.1p) mapping
You enable PFC for both transmitting and receiving on the selected port. For transmit,
Netvisor ONE pauses traffic corresponding to the traffic class indicated in the received PFC
frame. For receive, Netvisor ONE generates a PFC frame when a queue corresponding to a
traffic class reaches the pause threshold. Netvisor ONE auto-configures parameters such
buffer threshold, and pause timer value. Disabling PFC turns off PFC for receive and transmit,
although the traffic class priority and queue mappings remain.
On supported switches, even with ingress admission control enabled (in lossless mode), by
default, Netvisor supports only the traffic class or priority group 7 with the memory
management unit (MMU) buffer resources. Packets of all priorities utilize the resources of the
default priority group unless specifically configured. This implies when enabling a new priority
group for PFC, Netvisor generates the buffer configuration and saves in the chip configuration
file, which is read during system initialization for MMU setup. AS a result, when you enable a
new priority for PFC, you must restart Netvisor ONE. Adding new ports to an existing priority
group setting, for another port or ports, does not require restarting Netvisor ONE.
You configure Up to three priority group buffer settings on switches in Netvisor ONE. If you
attempt to configure more than three, Netvisor ONE returns an error message.
To create a new PFC configuration on port 2 with a priority group of 2, use the following
command:
CLI (network-admin@Spine1)port-pfc-create priority 2 port 1-10
Priority configuration will be effective after restart.
To modify the ports and change them to 11-15, use the following command:
CLI (network-admin@Spine1)port-pfc-modify priority 2 port 11-15
Priority configuration will be effective after restart.
58
Pluribus Networks
www.pluribusnetworks.com
To delete the configuration, use the following command:
CLI (network-admin@Spine1)port-pfc-delete priority 2 port 11-15
time date/time: Displays the date and time for statistics collection.
yyyy-mm-ddTHH:mm:ss
start-time date/time: Displays the start date and time for statistics collection.
yyyy-mm-ddTHH:mm:ss
end-time date/time: Displays the end date and time for statistics collection.
yyyy-mm-ddTHH:mm:ss
duration duration: #d#h#m#s Displays the duration for statistics collection.
interval duration: #d#h#m#s Displays the interval between statistics collection.
since-start Displays the statistics since the start time.
older-than duration: #d#h#m#s Displays the statistics older than the specified time.
within-last duration: #d#h#m#s Displays the statistics within a specified time.
port port-list Displays the port list.
Pluribus Networks
www.pluribusnetworks.com
59
Support for Fabric Guard
Currently, Netvisor detects a Layer 2 loop using by STP, LLDP, or loop detect code. However if
a third party device connected to a Pluribus Networks switch consumes LLDP such as a
hypervisor vSwitch, and you configure the port as an edge port, Netvisor ONE cannot detect
loops on the network.
If you configure a port as fabric-guard port, Netvisor ONE triggers sending global discovery
multicast packets on this port after the port is physically up and in an adjacency wait state. If
a port with fabric-guard configuration receives a global discovery packet, Netivsor disables
the port in the same way LLDP disables the port when receiving messages from the same
switch. In order to re-enable the port once the loop is fixed, you must manually enable the
port using the command, port-config-modify port port-number enable.
To enable fabric guard, use the following syntax:
60
Pluribus Networks
www.pluribusnetworks.com
Introducing Netvisor ONE Foundational Objects
About the Netvisor ONE Fabric
Adding Switches to an Existing Fabric
Directly Connected Switches in a Fabric
Fabric Over Management Interface
Displaying Information about Nodes in the Fabric
Simplifying Netvisor OS VXLAN Fabric Configuration
Configuring Link Aggregation Control Protocol (LACP)
Active-Standby Link Aggregation on Management Interfaces
Configuring Trunking for Link Aggregation (LAG)
High Availability
Modifying a Trunk or VLAG Configuration by Changing the LACP Mode
Safely Restoring Ports for Cluster Configurations
Configuring Layer 2 Multipathing for Virtual Chassis Link Aggregation (VLAG)
VLAG Topology Examples
Configuring Active-Active VLAG
Pluribus Networks
www.pluribusnetworks.com
61
Figure 1: Fabric Architecture
password:*******
Re-enter password:*******
By default, the fabric is created on VLAN1. You can specify a different VLAN, but if you
change the VLAN, you must recreate the fabric.
To join a remote fabric use the fabric-join command and the switch IP address. For
example,
62
Pluribus Networks
www.pluribusnetworks.com
CLI network-admin@switch > fabric-show
Netvisor ONE accepts global discoveries for identifying fabrics in the network as joinable
fabrics for the fabric-join command. Upon receipt, the receiver sends back a global
keep-alive with node and fabric information.
When you have more than one switch, you must add it to the fabric to take advantage of the
features offered by Netvisor ONE. To add the new switch, use the following command on one
of the switches:
You can join the fabric using either the fabric name or the switch IP address. If you use the
Tab key to display the available options, Netvisor ONE displays all fabrics configured on the
network as options.
Pluribus Networks
www.pluribusnetworks.com
63
If you specify a password for the fabric, you must type it in twice. Netvisor ONE uses the
password to encrypt communication between the nodes in the fabric. When you join the
fabric from a node, you must type in the password to join it.
You can specify a specific VLAN for the fabric when you create a new one, or by default, the
fabric uses VLAN1. However, you cannot change the fabric VLAN without recreating the
fabric.
When Netvisor creates the fabric, the switch begins sending multicast messages out on Layer
2 looking for other switches. Netvisor ONE does not propagate the messages to other
networks. This is how Switch B in Figure 4 learns about the fabric.
Once Switch B joins the fabric, the switch downloads the fabric configuration (commands
with scope fabric) and the switch reboots.
If you want to connect to a switch over Layer 3, you must specify the IP address for the
switch in the fabric using the following command:
fabric joined.
[state offline|online|in-band-only-online|mgmt-only-online|
fabric-joined|eula-required|setup-required|fabric-required| fresh-install]
64
Pluribus Networks
www.pluribusnetworks.com
Because there are now two networks for Netvisor ONE to monitor for connectivity, online
denotes reachability for both management and in-band interfaces. in-band-only-online
denotes reachability switch through the in-band network. mgmt-only-online denotes
reachability through the management network, and offline denotes no reachability on
either network.
Netvisor supports monitoring and reporting on both the management and in-band network
connectivity.
You can display information about the fabric using the fabric-info command:
name: pn-EBC4
switch-ip: ::
id: a0000c5:53ab701e
mcast-ip: 239.4.10.111
fid: 327
cid: 0
Pluribus Networks
www.pluribusnetworks.com
65
About Fabric Transactions
Netvisor uses transactions to synchronize configuration changes across the fabric or cluster.
The originator sends the configuration change request from the client to other nodes in the
fabric. Clients communicate the primary initiations of transactions, and clients consist of a
CLI user, a REST API user, or an OpenStack client.
Netvisor sends transactions over a TCP socket on port 23399 on the fabric network, and
opens a new socket for each transaction and phase of a transaction. Netvisor does not retain
the sockets and closes the socket after each phase of the transaction.
Netvisor uses status updates to distribute information across the fabric. Unlike transactions,
Netvisor does not require the data to be synchronized across the fabric, but usually the data
synchronizes.
Netvisor sends the following states from the local node to other nodes in the fabric:
Node State
Port State
VLAN State
Owned vPort State
Layer 3 Entry State
Netvisor sends the following states to a cluster peer:
All Local vPort State
Spanning Tree State
Configuration File Hash Keys
vRouter state
vRouter Interface State
Bridge Domain State
Tunnel State
A node only sends updates to vPorts, directly connected hosts on the node, and you can
display this information using the command, vport-show. Cluster nodes share a larger data
set in order to act as a single node for redundancy.
66
Pluribus Networks
www.pluribusnetworks.com
Rolling Back and Rolling Forward Transactions
The Netvisor ONE transaction log contains both the command and the undo command(s) for
a transaction, used to redo the transaction, roll forward, or undo the transaction, roll back.
Roll back a transaction roll back using the command, transaction-rollback-to. Any scope
can be rolled back. Transactions roll back from the latest, to a specified older transaction, in
order. After successfully rolling back the transaction, the local change completes, and the
transaction removed from the transaction log.
You can roll forward a transaction using the command, transaction-rollforward-to.
Netvisor only supports the scope fabric and cluster, because the local node receives the
transaction from a location on the fabric. Transactions roll forward from the next transaction
in order to the target transaction ID. Netvisor applies the changes locally and updates the
transaction log.
id: 167772619
name: Leaf2
fab-name: fab1
fab-id: a0001c8:53e2601b
cluster-id: 0:0
fab-mcast-ip: 239.4.10.94
local-mac: 64:0e:94:28:06:f2
mgmt-nic:
mgmt-ip: 192.168.1.14/24
...
in-band-ip: 192.168.254.14/24
...
fab-tid: 9
out-port: 0
version: 2.1.201015836,pn-ONVLnvOS-2.0.2-2000212196
state: online
firmware_upgrade: not-required
device_state: ok
ports: 72
id: 201326827
name: Leaf1
fab-name: fab1
fab-id: a0001c8:53e2601b
cluster-id: 0:0
fab-mcast-ip: 239.4.10.94
local-mac: 64:0e:94:30:03:97
mgmt-nic:
mgmt-ip: 192.168.1.11/24
...
in-band-ip: 192.168.254.11/24
...
fab-tid: 9
out-port: 129
version: 2.1.201015836,pn-ONVLnvOS-2.0.2-2000212196
state: online
firmware_upgrade: not-required
device_state: ok
ports: 72
id: 167772618
Pluribus Networks
www.pluribusnetworks.com
67
name: Spine2
fab-name: fab1
fab-id: a0001c8:53e2601b
cluster-id: 0:0
fab-mcast-ip: 239.4.10.94
local-mac: 64:0e:94:28:06:ee
mgmt-nic:
mgmt-ip: 192.168.1.13/24
An example of a fabric that is out of sync for two nodes in the fabric:
id: 100663365
name: CBF-switch
fab-name: pn-CBF4
fab-id: a0000c5:53ab701e
cluster-id: 0:0
fab-mcast-ip: 239.4.10.111
local-mac: 64:0e:94:18:01:03
mgmt-nic:
mgmt-ip: 192.168.1.61/24
...
in-band-ip: 192.168.77.61/24
...
fab-tid: 328
out-port: 128
version: 2.1.201005800,pn-ONVL-2.0.2-2000212196
state: online
firmware_upgrade: not-required
device_state: ok
ports: 68
id: 201326771
name: CBF-Leaf-1
fab-name: corp-CBF4
fab-id: a0000c5:53ab701e
cluster-id: 0:0
fab-mcast-ip: 239.4.10.111
local-mac: 64:0e:94:30:02:4d
mgmt-nic:
mgmt-ip: 192.168.1.53/24
...
in-band-ip: 192.168.77.53/24
...
fab-tid: 329
out-port: 128
version: 2.1.201005800,pn-ONVLnvOS-2.0.2-2000212196
state: online
firmware_upgrade: not-required
device_state: ok
ports: 72
id: 167772357
name: CBF-Spine1
fab-name: pn-CBF4
fab-id: a0000c5:53ab701e
cluster-id: 0:0
fab-mcast-ip: 239.4.10.111
68
Pluribus Networks
www.pluribusnetworks.com
local-mac: 64:0e:94:28:02:de
mgmt-nic:
mgmt-ip: 192.168.1.51/24
...
in-band-ip: 192.168.77.51/24
f you apply a configuration to the fabric, and a node does not respond to it, you evict the
node from the fabric, and then troubleshoot the problem. To evict a node, use the following
command:
or
(CLI network-admin@Spine1)>fabric-comm-port-show
switch: techpub-accton-2
range-start: 23300
fabric-port: 23399
notify-port: 23398
proxy-port: 23397
fabric-keepalive-port: 23394
filesystem-replication-port: 23392
cluster-traffic-forwarding-port: 23391
vport-statistics-port: 23390
l2-encap-port: 23389
igmp-encap-port: 23388
icmpv6-encap-port: 23387
arp-encap-port: 23386
cluster-analytics-port: 23385
When you modify the port range, you must modify each node in the fabric which temporarily
interrupts fabric communication until you configure each node with the same port range.
There is no forwarded traffic loss if the interruption is brief. Because application of this
command prevents communication with other nodes, you must log in to each node directly
and separately to apply the command.
Pluribus Networks
www.pluribusnetworks.com
69
Configuring Link Aggregation Control Protocol (LACP)
Link Aggregation Control Protocol (LACP), a IEEE specification 802.3ad, allows you to bundle
several physical ports to form a single logical channel. When you change the number of
active bundled ports on a port channel, traffic patterns reflect the rebalanced state of the
port channel.
LACP supports automatic creation of Gigabit Ethernet port trunks by exchanging LACP
packets between ports. It learns the capabilities of port groups and informs the other ports.
Once LACP identifies correctly matched Ethernet links, it facilitates grouping the links into
Gigabit Ethernet port trunks.
LACP performs the following functions on the switch:
Maintains configuration information to control aggregation.
Exchanges configuration information with other peer devices.
Attaches or detaches ports from the LAG based on the exchanged configuration
information.
Netvisor ONE exchanges LACP packets between ports in these modes:
Active — Places a port into an active negotiating state, and the port initiates
negotiations by sending LACP packets.
Passive — Places a port into a passive negotiating state where the port responds to
LACP packets it receives but does not initiate LACP negotiation. In this mode, the port
channel group attaches the interface to the bundle.
Off — LACP is not enabled on the switch port or trunk
Active and passive modes allow LACP to negotiate between ports to determine if the ports
can form a port channel based on criteria such as port speed and trunking state.
To enable or disable LACP, or change the system priority, use the following command:
Netvisor sets the default system priority value to 32768 with a range from 0 to 65535.
70
Pluribus Networks
www.pluribusnetworks.com
To modify a port configuration and add LACP priority to the port, use the following command:
Informational Note: You must create unique names for each VLAG.
To configure a trunk for aggregating the links connected to ports 1, 2, 3, use the following
steps:
1. Create a trunk called trunk-1 on ports 1, 2, 3, enter the following command:
Notice that the ports have changed from 1-3 to 1,3 indicating that port 2 is no longer a
member of the trunk configuration.
5. Delete the trunk configuration from the switch:
Pluribus Networks
www.pluribusnetworks.com
71
Verify that the trunk configuration is removed by using the trunk-show command.
High Availability
Netvisor ONE switches automatically perform functions that ease your administrative burden.
With high availability, switches in a fabric automatically detect other switches in the fabric. If
multiple connections exist between two switches, the connections automatically create an
801.3ad Link Aggregation Group (LAG) between the two switches for resiliency and load
balancing. Other features require configuration such as connecting one device to two
switches, or if LAGs are desired between Netvisor ONE switches and other manufacturers’
equipment.
Figure 6:High Availability
Configuring a Cluster
With two Netvisor ONE switches, and require the tw switches to provide networking services
in the event one of the switches fails, the switches must be members of the same fabric, and
you must configure them as a cluster.
You configure one node as a primary node and the other node as a secondary. This reference
is asymmetric, as these assignments do not change unless you explicitly configure them
differently.
72
Pluribus Networks
www.pluribusnetworks.com
When you create a cluster configuration, you specify the nodes as cluster-node-1 and
cluster-node-2. These assignments do not change unless you explicitly change them.
Cluster-node-1 is the primary node and cluster-node-2 is the secondary node. These roles
are used to add asymmetry to some protocols. This reference is asymmetric.
A cluster-link contains the port or ports directly connecting the two cluster nodes together. If
you configure more than one port, this refers to the trunk (LAG) of those ports.
Netvisor ONE reserves VLAN 4094 ass VLAN used for cluster synchronization traffic. It is
added to the in-band interface port and cluster-link automatically when you create the
cluster configuration.
Netvisor ONE detects cluster-links using an extra data set send in LLDP messages. When a
cluster-link is detected, Netvisor automatically adds VLAN 4094 to the cluster link.
Netvisor ONE performs cluster synchronization over the control network of the fabric. For the
in-band interface, synchronization uses the clust4094 vNIC on VLAN 4094 over the
cluster-links. For management, Netvisor performs cluster synchronization on the
management interface.
Cluster synchronization uses keep-alive messages to detect if the peer cluster node state as
online. Cluster synchronization messages contain the following information:
Version
State — online, coming-online, etc.
Sequence number
Flags
Uptime
STP version number
Status version number
The state synchronization designates the online or offline state of the cluster. Additionally,the
cluster exchange version numbers so messages adjust to ensure backward compatibility.
Each cluster node sends synch messages to the other node every 2 seconds. If a node misses
three synchronization messages in a row, the cluster goes offline. When a node comes
online, the node triggers the following behavior:
A resend of all status updates to the peer
A resynchronization of all VLAGs
The transition of STP from independent mode to cluster mode.
To set up a cluster of two switches, pleiades4 and pleiades6, you must verify the switches
as members of the existing fabric:
id: 184549641
name: pleiades4
fab-name: corp-fab
fab-id: b000109:5695af4f
cluster-id: 0:0
local-mac: 3a:7f:b1:43:8a:0f
fabric-network: in-band
control-network: in-band
mgmt-ip: 10.9.19.203/16
mgmt-mac: ec:f4:bb:fe:06:20
mgmt-secondary-macs:
in-band-ip: 192.168.168.203/24
Pluribus Networks
www.pluribusnetworks.com
73
in-band-mac: 3a:7f:b1:43:8a:0f
in-band-vlan: 0
in-band-secondary-macs:
fab-tid: 1
cluster-tid: 0
out-port: 0
version: 2.4.204009451,#47~14.04.1-Ubuntu
state: online
firmware-upgrade: not-required
device-state: ok
ports: 104
To replace a failed cluster node, use the cluster-repeer command. However, you must
evict the failed node from the fabric, and then run the cluster-repeer command on an
active node after replacing the failed node.
To display information about the cluster, use the cluster-info command:
name: cluster-leaf
state: online
cluster-node-1: draco01
cluster-node-2: draco02
tid: 2
mode: master
ports: 69-71,129
remote-ports: 69-71,128
If you want to connect the cluster nodes to an uplink switch, you must configure a VLAG
between the ports on the cluster nodes and the uplink switch. For example, if corp-switch1
has port 53 connected to the uplink switch and corp-switch2 has port 19 connected to the
uplink switch, create a VLAG by executing the vlag-create command on either of the
switches:
74
Pluribus Networks
www.pluribusnetworks.com
-------- ----------- ------------- ---------- ---- ---------
switch-1 cluster-2 active-active spine-1 34 spine-2
Informational Note: Before you can create a VLAG, you must configure the two
switches in a cluster.
Pluribus Networks
www.pluribusnetworks.com
75
lacp-fallback Specify the LACP fallback mode as individual or
bundle|individual bundled.
lacp-fallback-timeout Specify the LACP fallback timeout in seconds. The
seconds default is 50
seconds
To change the LACP failback mode and timeout, use the new parameters:
76
Pluribus Networks
www.pluribusnetworks.com
Safely Restoring Ports for Cluster Configurations
Informational Note: This feature is only applied during the initial start up of the
cluster slave switch.
Sub-second traffic loss for fail over events is required for a cluster configuration. There are
two types of ports providing redundant data paths: 1) Layer 3 ports over ECMP redundant
routed paths, and 2) virtual LAGS (VLAGs) providing redundant Layer 2 paths. During
failover and recovery port events, it can take measurable time to change the hardware
routing and MAC tables on larger networks. This delay incurs traffic loss on the network. This
delay incurs traffic loss on the network. To reduce delay, this feature allows you to
incrementally restore these ports at start up. By incrementally restoring the ports, the
changes to the hardware are prevented from contending with each other and reduces the
delay between a port up and the hardware updates with the appropriate Layer 3 and Layer 2
information for the port. This process ensures sub-second fail over.
All non-Layer 3 and non-VLAG ports are restored first. This allows the cluster links to activate
and the cluster configuration to synchronize information. Layer 3 and VLAG port restoration
starts after the cluster synchronizes. This is predicated on the cluster becoming active, all
Layer 2 and Layer 3 entries, such as status updates, exchanged, cluster STP status
synchronized, and all router interfaces initialized.
The parameter, maximum-sync-delay, controls the maximum time to wait for synchronization
in the case where the cluster cannot synchronize information. After synchronization is
complete, Layer 3 ports are restored first, since Layer 3 traffic can traverse the cluster link to
the peer VLAG port if needed. Currently the reverse is typically not true.
If VLAG ports are restored first, a Layer 3 adjacency between the two cluster nodes may be
needed but may not exist in some network configurations. After Layer 3 ports are restored,
Netvisor ONE waits a configurable Layer 3 port to VLAG delay to allow time for the routing
protocols to converge and insert the routes. The delay time defaults to 15 seconds.
After the delay, the VLAG ports are restored incrementally. Incrementally restoring ports
allows enough time to move Layer 2 entries from the cluster link to the port. Incrementally
restoring ports also allows the traffic loss to occur in small, 200-300ms per port, rather than
one large time span. This is particularly important for server clusters where temporary small
losses are no issue, but fail or timeout for a large continuous traffic loss. If the node coming
up is the cluster master, then no staggering and no Layer 3 to VLAG wait is applied. And if
the node is the cluster master node, that means the peer is down or coming up, and not
handling traffic. Therefore Netvisor ONE safely restores the ports as soon as possible to start
traffic flowing between the nodes.
The following is the sequence of cluster bringup events:
1. Netvisor ONE re-establishes cluster ports and synchronize Layer 2 protocols, MAC learning
on cluster links.
2. Layer 3 ports establish connectivity to upstream neighbors.
3. VLAN interfaces learn IGP and IP routes.
4. VLAG ports re-establish LACP, Layer 2 protocols and MAC learning.
5. Orphan ports are re-established.
Pluribus Networks
www.pluribusnetworks.com
77
To configure a cluster for restoring Layer 3 ports, use the following commands:
78
Pluribus Networks
www.pluribusnetworks.com
Configuring Layer 2 Multipathing for Virtual Chassis Link Aggregation
(VLAG)
You can aggregate links between two switches by configuring Layer 2 multipathing and
virtual chassis Link Aggregation.
A virtual chassis Link Aggregation Group (VLAG) allows links physically connected to two
different switches to appear as a single Ethernet trunk to a third device. The third device can
be a server, switch, or any other networking device. A VLAG creates Layer 2 multipathing
which allows the creation of redundancy, and enabling multiple parallel paths between nodes.
A VLAG requires at least one cross connection between the two switches, also called peers,
where the VLAG links terminate. The specific ports connecting the different switches, do not
require explicit configuration before creating a VLAG.
VLAGs can provide the following benefits:
Allows a single device to use an Ethernet trunk across two access layer (Top of Rack)
switches.
Eliminates Spanning Tree Protocol (STP) blocked ports
Provides a loop-free topology
Provides fast convergence if a link or device fails.
Provides link-level resiliency.
Helps ensure high availability.
Netvisor ONE performs VLAG synchronization to coordinate active-standby and active-active
configurations using the following rules:
Active-Standby VLAGs — For VLAG, only one side, ports on the cluster node, may
be up at anytime. The other side is in standby mode. If there is conflict, the side with
the longest time up remains up and the other side is disabled.
Active-Active VLAGs — If both sides of the VLAG are up, Netvisor ONE adds port
egress rules to drop any packets that egress the VLAG port if the ingress port acts as
the cluster link. This prevents loops.
Netvisor ONE reports the state as up or down and synchronizes the state. For active-standby
VLAGs, Netvisor exchanges port up timestamps to resolve any contest if both ports become
active.
Netvisor ONE performs synchronization from the primary node to the secondary node. If the
secondary node requires synchronization, the secondary node sends a request to the primary
node to perform the synchronization.
Netvisor sends synchronization messages on a per-VLAG basis, and compares the local VLAG
port state with the peer VLAG port state. The port state then determines any port enable or
disable actions for active-standby VLAGs or port egress rule changes for active-active VLAGs.
VLAG synchronization occurs when a trigger happens on the configuration:
A VLAG is created or modified.
A VLAG member port is up or down.
A cluster-link is up or down.
For any port in an active-standby VLAG, Netvisor records the time up of the port, and sends
it as part of the VLAG synchronization message. The time up values are compared on both
nodes to determine the active port.
Pluribus Networks
www.pluribusnetworks.com
79
VLAG Topology Examples
Figure 6:L2 Design - Leaf and Spine with Active-Passive VLAG
80
Pluribus Networks
www.pluribusnetworks.com
Figure 7:L2 Design - Leaf and Spine with Active-Active VLAG
To create a VLAG for aggregating links connected to ports 70 on the local switch and the peer
called, eng-switch-b, you must first create a cluster configuration between the two
switches. Netvisor ONE switches must be members of a cluster configuration before you add
VLAGs to them.
Informational Note: There must be a physical connection between PN-0 and PN-1
before you can configure VLAG.
Pluribus Networks
www.pluribusnetworks.com
81
Figure 8:Active-Active VLAG over a Trunk with a Switch and Host
Three Netvisor ONE switches in a common fabric with the Spine switch as the RSTP root.
Note that ports 19-22 on PN-0 and PN-1 connect to PN-2 (Spine). Port 26 connects PN-0
to PN-1 for the cluster configuration required for VLAG.
1. On PN-2, use the following command:
82
Pluribus Networks
www.pluribusnetworks.com
3. Create VLAN connectivity from the top switch to the bottom:
On PN-2, create the VLAN with scope fabric:
On PN-0, add the VLAN and untag the port connected to the host.
On PN-1, add the VLAN and untag the port connected to the host.
4. Create a cluster configuration between PN-1 and PN-0. This creates the cluster across
port 26.
On PN-0, enter the cluster-create command:
5. You must disable ports between PN-2 and PN-0, and then create a static trunk between
them:
On PN-0, modify the ports facing PN-2:
switch: tac-1
trunk-id: 253
name: pn0-to-pn2
ports: none
speed: disable
egress-rate-limit: unlimited
autoneg: off
jumbo: on
enable: off
lacp-mode: off
lacp-priority: 0
lacp-timeout: slow
lacp-fallback: bundle
lacp-fallback-timeout: 50
lacp-individual: none
Pluribus Networks
www.pluribusnetworks.com
83
stp-port-cost: 2000
stp-port-priority: 128
reflect: off
edge-switch: no
pause: no
description:
loopback: off
receive-only: on
unknown-ucast-level: %
unknown-mcast-level: %
broadcast-level: %
lport: 0
rem-rswitch-port-mac: 00:00:00:00:00:00
rswitch-default-vlan: 0
status:
config:
trunk-hw-id: 0
send-port: 4294967295
routing: yes
host-enable: no
From the above output, you find the name of the trunk configuration, pn0-to-pn2. You
need this information to create the VLAG.
Then, on PN-1, repeat the same commands to create a trunk between PN-1 and PN-2.
7. You must disable ports between PN-2 and PN-1, and then create a static trunk between
them:
On PN-1, modify the ports facing PN-2:
switch: PN-0
intf: 129
name: pn1-to-pn2
port: 21-22
speed: 10g
autoneg: off
jumbo: off
enable: off
lacp-mode: off
lacp-priority: 32768
lacp-timeout: slow
reflect: off
edge-switch: no
pause: no
description:
loopback: off
mirror-only: off
lport: 0
rswitch-default-vlan: 0
port-mac-address: 06:60:00:02:10:80
status:
84
Pluribus Networks
www.pluribusnetworks.com
config:
send-port: 0
8. Now create the VLAG from the bottom switches going upward and static trunk from the
top down. Keep one side of the VLAG disabled while you configure this step.
On PN-0, use the VLAG-create command:
CLI network-admin@switch > VLAG-create name to-spine port 128 peer-port 129
peer-switch PN-1 lacp-mode off mode active-active
id: a000024:0
name: to-spine
cluster: VLAG
mode: active-active
switch: pubdev02
port: trunk2
peer-switch: pubdev01
peer-port: 129
failover-move-L2: no
status: normal
local-state: enabled,up
lacp-mode: off
lacp-timeout: slow
lacp-key: 26460
lacp-system-id: 110013777969246
Pluribus Networks
www.pluribusnetworks.com
85
Routing over VLAGs
When you use a routing protocol such as OSPF for peering over a VLAG, the cluster egress
filtering rules prevent routed packets from egressing VLAGs, if the packet crosses the cluster
links before egressing the VLAG.
In some suboptimal network designs, for example when you create vrouter-interfaces on
only one side of the cluster due to the use of /30 network addresses, and the cluster
active-active routing feature does not help with the implementation. These suboptimal
network designs may cause Layer 3 traffic to route through the cluster even when you use
VLAG as the point of exit a VLAG locally up on each cluster member. To help in those cases,
Netvisor provides a new parameter to allow packets crossing the cluster to egress out of
VLAGs, if the packet follows a route after crossing the cluster. To enable this feature, use the
following command:
system-settings-modify
routing-over-vlags| Specify if you want to enable or
no-routing-over-vlags disable routing to VLAGs from cluster
links
CLI (network-admin@vs-spine1) > system-settings-show
switch: spine1
routing-over-vlags: off
switch: vanquish2
switch: vanquish4
routing-over-vlags: off
switch: vanquish3
routing-over-vlags: off
86
Pluribus Networks
www.pluribusnetworks.com
Configuring Virtual Wire Features
Informational Note: Netvisor ONE Virtual Wire only supports on the following
switches: AS5712-54X, AS6712-32X, AS7716-32X, F9272-X, F9232-Q, and F9532-C.
Netvisor does not support Virtual Wire on Dell platforms.
Overview
Prerequisites
Overview
Virtual Wire technology uses a software approach to configure cable topologies to
interconnect network devices together. Network devices are physically connected to the
Virtual Wire switch once using Ethernet cables and transceivers that match the device port
media and speed characteristics. The desired cable topology is then obtained by a remote
software configuration of the Virtual Wire switch and consists of a set of Virtual Wire links.
Virtual Wire topology configurations can be dynamically created, saved and re-applied
without any manual intervention on the physical infrastructure.
Netvisor Virtual Wire implementation uses transparent low-latency Ethernet forwarding
between physical ports over a non-blocking any-port to any-port switching architecture.
Virtual Wire transparently cross bridges any standard or proprietary Ethernet protocol of any
size, including these types of traffic:
IPv6, Q-in-Q, VN-TAG
Ethernet control plane traffic such as BPDU, LACP and LLDP protocol packets
Proprietary or experimental Ethernet fabric
Undersized or invalid frames
Network devices interconnected through a Virtual Wire link behave as directly connected
devices with a single physical cable. For example, as shown in Figure 1, if the port of Device
A goes down, the Virtual Wire switch automatically shuts down the port facing Device B.
Pluribus Networks
www.pluribusnetworks.com
87
Figure 1: Virtual Wire Topology
In addition, a Virtual Wire switch can act as an intelligent media converter, enabling Ethernet
communication between devices with different port speed and media type. In the example
shown in Figure 2, you create a Virtual Wire link between an optical cable connecting device
A and a copper cable on device B.
Figure 2: Virtual Wire Topology with Optical and Copper Cables
Prerequisites
Please refer to Adding License Keys to Netvisor in this guide for how to install a license on the
switch.
Virtual Wire functionality uses any supported Pluribus Network transceiver at
1Gbs/10Gbs/40Gbs. For a list of supported transceivers please refer to the product
datasheet.
All commands described in this chapter require a management fabric. Information on how to
create or join a management fabric is available in section Introduction to Netvisor Fabric.
88
Pluribus Networks
www.pluribusnetworks.com
To add the Virtual Wire feature to an existing Pluribus Networks switch in your network, you
must use the switch-config-reset command to erase the current configuration. Then, after
reconfiguring the initial setup, you must upgrade to the latest version of Netvisor that
supports Virtual Wire mode. And then, install the license key for Virtual Wire.
The following command instructs the switch to operate in Virtual Wire mode and it is used to
enable global Virtual Wire functionality on a switch:
You now select the Virtual Wire mode, using the switch-mode-modify command:
switch: pluribus
switch-mode: virtual-wire
Pluribus Networks
www.pluribusnetworks.com
89
CLI network-admin@switch > port-config-modify port 1-8 speed 1g autoneg jumbo
{
"speed": "1g",
"autoneg": "autoneg",
}
To display port configuration information, use the port-config-show command. To see all
output, add the parameters format all layout vertical. Using the vertical layout displays
the information in a more readable format:
switch: vw-switch01
intf: 1
port: 1
speed: 1g
egress-rate-limit: unlimited
autoneg: on
jumbo: on
enable: on
lacp-priority: 32768
lacp-individual: none
stp-port-cost: 2000
stp-port-priority: 128
reflect: off
edge-switch: no
pause: no
description:
loopback: default
mirror-only: off
lport: 1
rem-rswitch-port-mac: 00:00:00:00:00:00
rswitch-default-vlan: 0
port-mac-address: 06:a0:00:02:40:1e
send-port: 0
routing: yes
host-enable: yes
To display the port status, use the port-show command. Your output looks similar to the
following:
90
Pluribus Networks
www.pluribusnetworks.com
CLI network-admin@Leaf1 > port-show format all layout vertical
switch: pubdev02
port: 47
ip: 192.168.42.30
mac: 64:0e:94:28:03:56
hostname: pubdev03
status: up,PN-fabric,LLDP
lport: 47
rport: 47
config: fd,10g
trunk: trunk2
switch: pubdev02
port: 48
ip: 192.168.42.30
mac: 64:0e:94:28:03:56
hostname: pubdev03
status: up,PN-fabric,LLDP
lport: 48
rport: 48
config: fd,10g
trunk: trunk2
switch: pubdev02
port: 25
state: up
autoneg: none
speed: 10000
eth-mode: 10Gbase-cr
max-frame: 1540
link-quality: great (59/41)
learning: off
def-vlan: 1
dfe-mode: continuous
dfe-coarse: complete
dfe-fine: complete
switch: pubdev02
port: 26
state: up
autoneg: none
speed: 10000
eth-mode: 10Gbase-cr
max-frame: 1540
link-quality: good (57/38)
learning: off
def-vlan: 1
dfe-mode: continuous
dfe-coarse: complete
dfe-fine: complete
Pluribus Networks
www.pluribusnetworks.com
91
Informational Note: The columns def-vlan, max-frame, and learning
display default fixed values because Virtual Wires diesables regular
switching on the ports.
To display the transceivers connected to the ports, use the port-xcvr-show command:
Informational Note: Each port has a LED indicator light that displays
status information about the port. If the LED indicates solid green, Netvisor
enables the port is enabled. If the LED indicates green and blinking rapidly
then the port is at 80% of the throughput capacity.
{
“name”: “A-to-B”,
92
Pluribus Networks
www.pluribusnetworks.com
“virtual-wire”:”true”,
“master-ports”: “10”,
“slave-ports”: “20”
}
1. To configure a unidirectional Virtual Wire link from device B to device A, enter the following
command:
port-association-create name B-to-A virtual-wire master-ports 20 slave-ports 10
{
“name”: “B-to-A”,
“virtual-wire”:”true”,
“master-ports”: “20”,
“slave-ports”: “10”
}
1. To configure a bidirectional Virtual Wire link from device A to device B, enter the following
command:
{
“name”: “A-to-B”,
“bidir”,
“virtual-wire”:”true”,
“master-ports”: “20”,
“slave-ports”: “10”
}
To display existing Virtual Wire links, use the port-association-show command:
To delete an existing Virtual Wire link, use the port-association-delete command with
the name string parameter:
Pluribus Networks
www.pluribusnetworks.com
93
CLI network-admin@Leaf1 > port-association-delete name A-to-B
However the packets with a different VLAN now have an incorrect CRC value unless you
update the CRC when egressing the port.
Use the following command:
After this configuration, Netvisor updates any packets egressing from ports 39 and 43 with
the CRC check.
94
Pluribus Networks
www.pluribusnetworks.com
Support for Many to One Port Associations
Currently, when you configure port associations for Virtual Wire mode, you specify a single
port for a master and a single port for a slave. This is a limitation for use cases when the
traffic needs to be spread out across several ports.
Netvisor now provides the ability to specify multiple ports for master and slave parameters
for port-associations in virtual-wire mode.
Add the parameter, monitor-ports, to allow for ports not tracked by the port-association.
These commands create the same set of port-associations except that when ports 1 or 2
goes down, port 3 is not affected.
Pluribus Networks
www.pluribusnetworks.com
95
CLI network-admin@Leaf1 > port-association-show
table-name
-------------------
L1-Virtual-Wire-1-0
L1-Virtual-Wire-1-0
96
Pluribus Networks
www.pluribusnetworks.com
The most efficient design for a Virtual Wire fabric uses the classic leaf-spine architecture, or
Clos, a nonblocking, multistage switching topology, as in Figure 4
Figure 4: Leaf and Spine Topology for Virtual Wire Fabric.
With this approach, select the desired oversubscription ratio and build a modular and scalable
architecture to scale up to thousands of device ports. For example, using E68-M switches as
building blocks, a possible leaf switch configuration uses 44 x 10 Gigabit Ethernet ports to
connect to device ports and 24 x 10 Gigabit Ethernet ports to connect to the spine layer,
resulting in a 1.8:1 oversubscription ratio. Based on the desired maximum number of device
ports, you select from different scale options:
Figure 5: 17 Leafs and 6 Spines
17 leaf 6 spine at 1.8:1 oversubscription ratio for a total of 748 device 10 Gbps/1Gbps
ports
Pluribus Networks
www.pluribusnetworks.com
97
Figure 6: 34 Leafs and 12 Spines
34 leaf 12 spine at 1.8:1 oversubscription ratio for a total of 1496 device 10Gbps/1Gbps
ports
Figure 7: 68 Leafs and 24 Spines
68 leaf 24 spine at 1.8:1 oversubscription ratio for a total of 2992 device 10Gbps/1Gbps
ports
98
Pluribus Networks
www.pluribusnetworks.com
Figure 8: Bidirectional Traffic over a Virtual Wire Connection
To create a bidirectional virtual link from device-A to device-C, use these steps:
1. Configure a port association for device-A to device-C using port 1 and port 45 on Leaf-1.
Pluribus Networks
www.pluribusnetworks.com
99
Figure 5: Unidirectional Traffic over a Virtual Wire Connection
To configure the Virtual Wire switch for unidirectional traffic, use the following steps:
1. Configure a port association on Leaf-1, ports 1 and 45.
This configuration connects device-A to device-C over a unidirectional virtual wire link.
To connect device-C to device-B over a unidirectional virtual link, use the following steps:
1. Configure a port association on Leaf-1 for ports 3 and 46:
100
Pluribus Networks
www.pluribusnetworks.com
3. Configure a port association on Leaf-2 for ports 46 and 1:
Pluribus Networks
www.pluribusnetworks.com
101
Figure 1: Example of Inline Services
You configure the order of the Inline Services using the port-association-service-*
commands.
If you configure an inline service with the parameter, fail-open, Netvisor sends traffic and
skips any Inline Services failing on the network.
For example, if you configure Inline Services with the chain 1->2->3->4->5, and the Inline
Service 3 fails, the new chain is 1->2->4->5.
If you configure an Inline Service with the parameter, fail-close, and any Inline Service
fails, Netvisor blocks network traffic. For example, if you configure the chain
1->2->3->4->5, and any Inline Service such as 2, 3, or 4 fails, no network traffic flows
through the chain, and network traffic flow stops.
Configuring Heartbeat Service
Netvisor generates a packet from the CPU to send to the receive port of an Inline Service and
the Netvisor vFlow configured for snooping is not port-specific, as Netvisor accepts the
response from either the receive port or the transmit port. Configure the heartbeat as an
additional parameter for a specific Inline Service.
102
Pluribus Networks
www.pluribusnetworks.com
For example, to create a heartbeat detection service named FW-Probe, use the following
syntax:
(CLI network-admin@Spine1)>service-heartbeat-create name FW_probe interval 5s
retry 3 vlan-id 10 src-mac 64:6e:11:1c:11:11 dst-mac 01:1b:11:01:01:01 type
normal payload 54 63 82 ff 01 46 12 ce a2 d4 00 00 00 00 00 00 00 00
In this example, you define the frequency of the heartbeats as well as the number of missed
probes before Netvisor detects the service with this heartbeat is down.
To add the Heartbeat Service to Inline Services, FW-1 and FW-2, use the following syntax:
(CLI network-admin@Spine1)>inline-service-create name FW1 tx-port 11 rx-port
11 heartbeat FW_probe
(CLI network-admin@Spine1)>inline-service-create name FW2 tx-port 9 rx-port 10
heartbeat FW_probe
Netvisor counts the missed heartbeats separately for FW-1 and FW-2.
A heartbeat service, HB_4 for this ARP packet has the following syntax:
(CLI network-admin@Spine1)>service-heartbeat-create name HB4_arp interval 1s
retry 10 vlan 1 src-mac 00:11:01:00:00:01 dst-mac ff:ff:ff:ff:ff:ff payload
"0806 0001 0800 0604 0001 0011 0100 0001 0101 0101 0000 0000 0000 0101 0102
0000 0000 0000 0000 0000 0000 0000"
When you create the Heartbeat Service, Netvisor installs a specific vFlow in the vFlow table.
Netvisor verifies the functionality of the Inline Service using two methods: 1) a normal
heartbeat, and 2) a passthrough heartbeat. When you configure the parameter, type, you
specify the type of heartbeat for the service as normal, a request-response heartbeat
indicating the service responds to the heartbeat. If you specify pass-through as the
heartbeat, Netvisor sends the packet and returns it the switch through the service.
Pluribus Networks
www.pluribusnetworks.com
103
2. Define and configure the Heartbeat Service parameters:
(CLI network-admin@Spine1)>service-heartbeat-delete
(CLI network-admin@Spine1)>service-heartbeat-modify
(CLI network-admin@Spine1)>service-heartbeat-show
104
Pluribus Networks
www.pluribusnetworks.com
name name-string Displays the name for the Heartbeat
Service.
interval duration: #d#h#m#s Displays the interval between heartbeat
packets.
retry retry-number Displays the number of times to retry
sending a packet.
vlan vlan-id5 Displays a VLAN ID.
src-mac mac-address Displays the source port MAC address.
dst-mac mac-address Displays the destination MAC address.
type normal|pass-through Displays the type of heartbeat response as
normal or passthrough. A normal
response indicates that the Inline Service
sends the response. A passthrough
response indicates that Netvisor sends the
response and returns it to the Inline
Service.
payload payload-string Displays the payload for the heartbeat
packet.
(CLI network-admin@Spine1)>port-association-service-remove
Pluribus Networks
www.pluribusnetworks.com
105
port-association-name Specify the name of the port association to apply the
name-string service.
switch name-string Specify the switch name where the service is located.
inline-service Specify the name of the Inline Service.
inline-service-name
(CLI network-admin@Spine1)>port-association-service-show
(CLI network-admin@Spine1)>inline-service-create
(CLI network-admin@Spine1)>inline-service-delete
(CLI network-admin@Spine1)>inline-service-show
106
Pluribus Networks
www.pluribusnetworks.com
CLI network-admin@Leaf1 > connection-stats-show
switch: pubdev02
count: 0
mac: 64:0e:94:28:00:8e
vlan: 3
ip: 192.168.42.10
port: 25
iconns: 6
oconns: 0
ibytes: 224K
obytes: 10.5K
total-bytes: 235K
first-seen: 02-26,17:19:52
last-seen: 02-26,17:19:57
last-seen-ago: 17d14h6m5s
switch: pubdev02
count: 0
mac: 64:0e:94:28:03:56
vlan: 3
ip: 192.168.42.30
port: 128
iconns: 0
oconns: 3946878
ibytes: 4.50M
obytes: 13.5M
total-bytes: 18.0M
first-seen: 01-06,09:23:07
last-seen: 08:25:20
last-seen-ago: 42s
From the information displayed in the output, you can see statistics for each switch, VLANs,
client and server IP addresses, as well as the services on each connection. Netvisor also
displays latency and other information.
The latency (us) column displays the running latency measurement for the TCP connection in
microseconds. It indicates end-to-end Round-Trip-Time (RTT) between TCP/IP session client
and server and includes the protocol stack processing for the connected hosts and all
intermediary network hops.
To display connection latency, use the connection-latency-show command:
Pluribus Networks
www.pluribusnetworks.com
107
CLI network-admin@Leaf1 > connection-latency-show
108
Pluribus Networks
www.pluribusnetworks.com
Figure 1: Overview of VCF-IA Topology
Pluribus Networks
www.pluribusnetworks.com
109
Configuring Layer 2 Features
Configuring Tagged and Untagged VLANs
Configuring Rapid Spanning Tree Protocol (RSTP)
Multiple Spanning Tree Protocol (MSTP)
About VXLANs
Configuring VXLANs and Tunnels
VXLAN Routing In and Out of Tunnels
VXLAN Port Termination
Virtual Link Extension with Cluster Configurations
Port Replication for Virtual Link Extensions
Support for Configuring Keep-Alive Time for Virtual Link Extension (VLE)
About Port Hairpinning
Topic Feedback
VLAN 0 is not a standard VLAN in Netvisor OS. VLAN 0 represents all untagged or non-VLAN
traffic. Creating an interface on VLAN 0 does not add VLAN 0 to the VNET. Instead, it is a way
to bridge the VNET to the rest of the untagged network. If there is untagged traffic destined
for the VNET, then add VLAN 0 to the VNET. For example, if the default router for the switch
is untagged at IP address 12.15.1.1/24 and you want VNET, vnet1, to access the default
router, add VLAN 0 to the VNET using the following commands:
110
Pluribus Networks
www.pluribusnetworks.com
Informational Note: For switches with ONVL, the only available VNET
is a global VNET created when a fabric is created for the first time. Use
tab complete in the CLI to display the VNET and continue the
configuration.
The VNET administrator can only add interfaces on VLAN 0 and VLANs assigned to the VNET.
The network administrator can add interfaces on any VLAN. If you want to bridge a VNET to
another VNET, the network administrator must add the interfaces.
Netvisor uses VLAN 1 as the default untagged traffic VLAN. Untagged traffic can be mapped
to any VLAN, but by default, Netvisor maps to VLAN 1.
Warning: If you create a VLAN with scope fabric and untag all ports,
you can cause problems with the fabric communication.
1. To create a VLAN on the current switch, with the identifier 595, use the following
command:
By default, Netvisor trunks all ports on the new VLAN. If you want to specify trunked ports
, use the optional parameter, ports, with a comma separated list of ports, or specify a range
of ports.
In some cases, you may not want the VLAN created on all ports. Specify none to apply the
VLAN to internal ports only.
switch: pubdev01
id: 35
nvid: a000030:23
scope: fabric
name: vlan-35
active: yes
stats: yes
vrg: 0:0
ports: 65-72,255
untagged-ports: none
active-edge-ports: none
switch: pubdev02
Pluribus Networks
www.pluribusnetworks.com
111
To map ports on different switches into the scope fabric VLAN, use the following
command:
To create a VLAN for a VNET, use the vnet-create command and include the VLANs that
map to the VNET.
To modify a VLAN name, use the vlan-modify command to modify VLAN 25 description
from blue to red:
To modify the port list, use the vlan-port-add and the vlan-port-remove commands. If
you want to remove a VLAN with the scope, fabric, you need to specify the switch name.
2. To display the VLANs configured on the switch, use the vlan-show command.
switch: pubdev01
id: 1
nvid: a000030:1
scope: local
name: default-1
active: yes
stats: yes
vrg: 0:0
ports: 1-72,128,255
untagged-ports: 1-72,128,255
active-edge-ports: 31,45-46,66,128
active-edge-ports: 65,128-129
switch: pubdev02
id: 1
nvid: a000024:1
scope: local
name: default-1
active: yes
stats: yes
vrg: 0:0
ports: 1-72,128-129,255
untagged-ports: 1-72,128-129,255
3. To configure ports 17 and 18 to accept untagged packets and map them to VLAN 595, use
the following command:
112
Pluribus Networks
www.pluribusnetworks.com
CLI network-admin@Leaf1 > vlan-stats-show format all layout vertical
switch: pubdev03
time: 10:51:02
vlan: 1
vnet:
ibytes: 36.2T
ipkts: 89.0G
idrops-bytes: 119M
idrops-pkts: 313K
obytes: 0
opkts: 0
odrops-bytes: 0
odrops-pkts: 0
switch: pubdev03
time: 10:51:02
vlan: 35
vnet:
ibytes: 10.8K
ipkts: 154
idrops-bytes: 0
idrops-pkts: 0
obytes: 0
opkts: 0
odrops-bytes: 0
odrops-pkts: 0
switch: pubdev02
time: 10:51:02
vlan: 1
vnet:
ibytes: 34.9T
ipkts: 84.6G
idrops-bytes: 3.03M
idrops-pkts: 5.69K
obytes: 0
opkts: 0
odrops-bytes: 0
odrops-pkts: 0
Pluribus Networks
www.pluribusnetworks.com
113
Configuring Rapid Spanning Tree Protocol (RSTP)
Rapid Spanning Tree Protocol (RSTP), a standard inter-switch protocol, ensures an ad hoc
network topology loop-free at Layer 2, on a per-VLAN basis. If your network connections
form loops and you disable STP, packets re-circulate between the switches, causing a
degradation of network performance. STP does not allow for Layer 2 multipathing and can
result in sub-optimal utilization of available network links. Therefore, a fabric of switches
does not run RSTP within the boundaries of the fabric. Pluribus Networks recommends the
use of RSTP for ad hoc networks that interoperate in a heterogeneous, multi-vendor switch
environment.
To build a loop-free topology, switches (“bridges”) determine the root bridge and compute
the port roles, root, designated, or blocked. To do this, the bridges use special data frames
called Bridge Protocol Data Units (BPDUs) to exchange information about bridge IDs and root
path costs. BPDUs exchange regularly, typically at two second intervals, and enable switches
to keep track of network topology changes and to start and stop forwarding on ports as
required. Hosts should not send BPDUs to the switch ports and to avoid malfunctioning or
malicious hosts from doing so, the switch can filter or block BPDUs. If you enable BPDU
filtering on a port, BPDUs received on that port drop but other network traffic forwards as
usual. If you enable BPDU blocking on a port, BPDUs received on that port drop and the port
shuts down.
nvOS switches support the Per VLAN Spanning Tree (PVST) variation of STP, and if a PVST
BPDU is detected on a port, PVST is used on that port. This enhances third party switch
support.
Rapid Spanning Tree Protocol supports modifying an RSTP port and configuring the port as an
edge port.
Before you begin, view the status of STP on the switch by using the following command:
switch: tac-1
enable: yes
stp-mode: rstp
bpdus-bridge-ports: yes
bridge-id: 3a:7f:b1:43:8a:0f
bridge-priority: 32768
hello-time: 2
forwarding-delay: 15
max-age: 20
cluster-mode: master
114
Pluribus Networks
www.pluribusnetworks.com
2. To display the STP state, use the following command:
switch: Leaf01
vlan: 1
ports: none
instance-id: 1
name: stg-default
bridge-id: 66:0e:94:65:e1:ef
bridge-priority: 8193
root-id: 64:0e:94:c0:06:4b
root-priority: 4097
root-port: 128
hello-time: 2
forwarding-delay: 15
max-age: 20
disabled: none
learning: none
forwarding: 25-28,128-129
discarding: none
edge: 25-28
designated: 25-28,129
alternate: none
backup: none
4. To block BPDUs on port 17 and shut down the port if BPDUs are received on the port, use
the following command:
Pluribus Networks
www.pluribusnetworks.com
115
6. Disable STP on a port or a group of ports. If the host devices connect to the switch ports
and not downstream switches, then disable STP and the enabled port becomes much faster
when the switch restarts.
7. To enable RSTP on port 35, use the following command:
stp-state-show
stp-port-state-show
116
Pluribus Networks
www.pluribusnetworks.com
CLI network-admin@Leaf1 > stp-state-show
switch: Leaf-1
vlan: 1
ports: none
instance-id: 1
name: stg-default
bridge-id: 66:0e:94:d5:b0:cc
bridge-priority: 32769
root-id: 66:0e:94:35:c2:ce
root-priority: 32769
root-port: 128
hello-time: 2
forwarding-delay: 15
max-age: 20
disabled: none
learning: none
forwarding: none
discarding: none
edge: none
designated: none
alternate: none
backup: none
STP parameters such as bridge-priority, port cost values configured before upgrading to
Netvisor OS 2.4.0 are set to default values after upgrade to Netvisor OS 2.4.0. You must
reconfigure STP after upgrading the software.
Pluribus Networks
www.pluribusnetworks.com
117
Configuring Active-Active VLAG Forwarding with Loopback Recirculation
1. 1) For each vrouterto redirect traffic to the loopback - first find the MAC address of the
interface:
vrouter-name UP1
nic: eth11.200
ip: 200.200.200.1/24
assignment: static
mac: 66:0e:94:10:29:e1
vlan: 200
vxlan: 0
if: data
vm-nic-type: data
exclusive: no
nic-config: enable
nic-state: up
Trunk:
CLI network-admin@switch > vflow-create name UP1_vflow scope local in-port 129
dst-mac 66:0e:94:10:29:e1 action set-dmac-to-port action-value 89
action-set-mac-value 66:0e:94:10:29:e1
Trunk:
CLI network-admin@switch > vflow-create name UP1_vflow scope local in-port 129
dst-mac 66:0e:94:10:29:e1 action set-dmac-to-port action-value 130
action-set-mac-value 66:0e:94:10:29:e1
For the action-value 130, this is the trunk-id assigned in Step 2 when the trunk is
created.
For a cluster pair, you must configure each spine using the above configuration steps.
118
Pluribus Networks
www.pluribusnetworks.com
Multiple Spanning Tree Protocol (MSTP)
Multiple Spanning Tree Protocol as defined in IEEE802.1s or IEEE802.1Q-2005 provides the
ability to manage multiple VLANs from a single Multiple Spanning Tree (MST) instance. MST
allows the formation of MST regions that can run multiple MST instances (MSTIs). Multiple
regions and other STP bridges interconnect using one single common spanning tree (CST).
MSTP regions define a collection of switches with the same VLANs on all of the switches. Each
MST region must a root bridge. The root bridge may not reside outside of the region.Netvisor
supports a single MST for a single region. This enables multiple MST instances within a single
region.
The following commands support the configuration of MST instances on a local switch:
mst-config-modify
mst-config-show
Netvisor defines the bridge priority as a value from 0 to 65536, with a default value of 0. The
value increments by 4096 each time. For example, the values can be 0, 4096, 8192, up to
65536.
Pluribus Networks
www.pluribusnetworks.com
119
About Port Hairpinning
Port hairpinning allows Layer 2 bridged traffic to exit out of the same switch-port where the
packet arrived. The feature supports hosting containers with Single Root I/O Virtualization
(SR-IOV) network interfaces and classifies traffic sent to the applications.
This feature also allows the first-hop switch to enforce policies and security rules in
hardware, through vflows, and may be used where a Netvisor OS-enabled switch
micro-segments traffic, such as whitelists
You can use this feature when modifying a port configuration and when creating or modifying
a trunk configuration with link aggregation.
To disable :
Command Options
Configure the port with the following options for the port-config-modify command:
Configure the trunk with the following hairpinning options for the trunk-create,
trunk-modify, and trunk-show commands:
120
Pluribus Networks
www.pluribusnetworks.com
CLI network-admin@Leaf1 > trunk-create
Topic Feedback
Was this topic useful to you? Please provide feedback to improve the content.
Pluribus Networks
www.pluribusnetworks.com
121
Configuring VXLANs
Configuring VXLANs
Configuring VXLANs and Tunnels
Configuring a VXLAN with Netvisor ONE
VXLAN Head End Replication Counters
Creating Tunnels
Egress ECMP Load Distribution for VXLAN Traffic from the VTEP Switch
VXLAN Routing In and Out of Tunnels
VXLAN Port Termination
Virtual Link Extension with Cluster Configurations
Example Topology for Virtual Link Extension and Cluster Configuration
Virtual Link Static Bidirectional Association
PortReplication for Virtual Link Extensions
Support for Configuring Keep-Alive Time for Virtual Link Extension (VLE)
Support for Virtual Link Extension (VLE) Analytics
About VXLANs
Netvisor provides traditional network segmentation using Virtual Local Area Networks
(VLANs) and standardized under the IEEE 802.1Q group. VLANs provide logical segmentation
of the network at Layer 2 or broadcast domains. Due to less than optimal use of available
network links with VLANs, rigid requirements exist for the placement of devices in the
network and the scalability limited to a maximum of 4096 VLANs. Using VLANs becomes a
limiting factor when building large multi-tenant data centers.
Virtual Extensible LANs (VXLAN) design provides the same Ethernet Layer 2 network services
as VLANs but with greater extensibility and flexibility. When compared to VLANs, VXLANs
offer the following benefits:
Flexible placement of multi-tenant segments through the data center, because the
feature provides a solution to extend Layer 2 segments over the underlying shared
network infrastructure and tenant workload load balances across physical pods in the
data center.
Increased scalability to address more Layer 2 segments as VXLANs use a 24-bit
segment ID known as the VXLAN Identifier (VNID) which enables up to 16 million
segments to coexist in the same administrative domain.
Improved utilization of available network paths in the underlying infrastructure since
VXLAN packets transfer through the underlying network based on the Layer3 header.
This takes advantage of Layer 3 routing, equal-cost multipath (ECMP) routing, and
link aggregation protocols to use all available paths.
As a Layer 2 overlay scheme over a Layer 3 network, VXLANs uses MAC Address-in-User
Datagram Protocol (MAC-in-UDP) encapsulation to provide a means to extend Layer 2
segments across the data center network. VXLAN supports a flexible, large-scale
multi-tenant environment over a shared common physical infrastructure. VXLANs use IP plus
UDP as a transport protocol over the physical data center network.
Pluribus Networks
www.pluribusnetworks.com
123
Netvisor supports VXLANs on non-redundant and redundant spine-leaf topology. VXLAN
configuration at high level involves 5 major steps in addition to VLAN, trunk, vLAG, and
vRouter configuration as needed.
Configuring VXLANs
1. Configure underlay vRouter interfaces:
a. Add vRouter and add vRouter interfaces for each VTEP.
3. Configure tunnels:
On non-redundant switches, configure a tunnel with scope local and on redundant switch,
create a tunnel using scope cluster.
4. Configure overlay:
Create mapping between VXLAN VNID and VLANs on respective switches
In order to carry Layer 2 broadcast, unicast, and multicast (BUM) traffic over VXLAN tunnels
on Netvisor OS switches, you must configure one physical port to recirculate the packet and
do head-end replication. Based on the hardware architecture of the switch, configure a front
panel port. Depending on the amount of BUM traffic, you can use either a 10G port or a 40G
port.
For monitoring VXLAN specific states and statistics, use the following commands:
124
Pluribus Networks
www.pluribusnetworks.com
vlan-show — displays the VXLAN ID associated with the VLAN ID.
Pluribus Networks
www.pluribusnetworks.com
125
packets arriving through the tunnel and forwards the inner packet over the L2 network. The
switch also collects statistics and optimizes ARP requests as in the first scenario.
Configuration Example
The following example assumes that one VTEP resides on the generic switch and the other
VTEP resides on a Pluribus Networks switch. Also, the nodes connect on a L3 IP network, and
the tunnel forms between the generic switch and the Pluribus Networks switch.
Figure 5:VTEP Generic Switch-VTEP Pluribus Networks Switch
The example also includes VLAN 10 and port 47 on Host2 as well as the VNET fab-global.
126
Pluribus Networks
www.pluribusnetworks.com
1. Create the vRouter using the vrouter-create command:
Pluribus Networks
www.pluribusnetworks.com
127
...
Creating Tunnels
You create tunnels to encapsulate protocols on the network. You can create tunnels for
IP-in-IP, VXLAN, and NVGRE network traffic. However, Netvisor supports tunnels for the local
scope only and does not use any discovery mechanism.
IP-in-IP protocol encapsulates an IP header with an outer IP header for tunneling. The outer
IP header source and destination identifies the endpoints of a tunnel. The inner IP header
source and destination identify the original sender and recipient of the datagram.
In addition to the IP header and the VXLAN header, the VTEP also inserts a UDP header.
During ECMP, the switch includes this UDP header to perform the hash function. The VTEP
calculates the source port by performing the hash of the inner Ethernet frame's header.
Netvisor supports the Destination UDP port on the VXLAN port .
The outer IP header contains the Source IP address of the VTEP performing the
encapsulation. The remote VTEP IP address or the IP Multicast group address provides the
destination IP address.
Network Virtualization with Generic Routing Encapsulation (NVGRE) uses GRE to tunnel Layer
2 packets over Layer 3 networks. NVGRE seems similar to VXLAN but it doesn’t rely on IP
multicast for address learning.
To create a tunnel for IP-in-IP traffic, local IP address 192.168.100.35, and the router,
tunnel-network, use the following syntax:
CLI network-admin@switch > tunnel-create scope local name ipinip type ip-in-ip
local-ip 192.168.100.35 router-if vrouter-hw-if eth0.0
128
Pluribus Networks
www.pluribusnetworks.com
Logging Changes to Tunnel States
This feature enables you to log tunnel state changes so you view tunnel state historical data
for debugging purposes. The following state changes are logged in tunnel history:
Creating tunnels
Deleting tunnels
Tunnel hardware state changes including:
Egress ECMP Load Distribution for VXLAN Traffic from the VTEP Switch
Equal-cost multi-path routing (ECMP) defies a routing strategy where next-hop packet
forwarding to a single destination can occur over multiple best paths. Tunnel next hops
update based on underlay routes information. RIB/FIB information leverages to program
next hops for a tunnel remote endpoint. If multiple next hops exist for a tunnel remote
endpoint, an ECMP group uses the list of next hops and the tunnel programmed accordingly.
Pluribus Networks
www.pluribusnetworks.com
129
For example, a tunnel leaf1toleaf 2 with a remote IP address 32.4.11.1, Netvisor displays 2
next hops, 192.178.0.6 and 192.178.0.2. Netvisor hashes the traffic going over tunnel
leaf1toleaf 2 using these two next hop links.
CLI (network-admin@lleaf11) > tunnel-show
scope: cluster
name: leaf1toleaf2
type: vxlan
vrouter-name: leafpst1
peer-vrouter-name: leafpst2
local-ip: 22.3.11.1
remote-ip: 32.4.11.1
router-if: eth12.11
next-hop: 192.178.0.6
next-hop-mac: 66:0e:94:8c:d4:0f
nexthop-vlan: 4091
remote-switch: 0
active: yes
state: ok
error:
route-info: 32.4.11.0/24
scope:
name:
type:
vrouter-name:
peer-vrouter-name:
local-ip:
remote-ip:
router-if:
next-hop: 192.178.0.2
next-hop-mac: 66:0e:94:5b:90:2b
nexthop-vlan:
remote-switch: 4092
active: 0
state: ok
error:
route-info: 32.4.11.0/24
scope: cluster
name: leaf1toleaf2-2nd
type: vxlan
vrouter-name: leafpst1
peer-vrouter-name: leafpst2
local-ip: 22.3.12.1
remote-ip: 32.4.12.1
router-if: eth9.12
next-hop: 192.178.0.6
next-hop-mac: 66:0e:94:8c:d4:0f
nexthop-vlan: 4091
remote-switch: 0
active: yes
state: ok
error:
route-info: 32.4.11.0/24
scope:
name:
type:
vrouter-name:
130
Pluribus Networks
www.pluribusnetworks.com
peer-vrouter-name:
local-ip:
remote-ip:
router-if:
next-hop: 192.178.0.2
next-hop-mac: 66:0e:94:5b:90:2b
nexthop-vlan:
remote-switch: 4092
active: 0
state: ok
error:
route-info: 32.4.11.0/24
This feature provides support for centralized routing for VXLAN VLANs. For hosts on different
VXLAN VLANs to communicate with each other, SVIs on VXLAN VLAN configured on one
cluster pair in the fabric. Any VXLAN VLAN packets be routed between two hosts sent to a
centralized overlay vrouter and then VXLAN encapsulated or decapsulated depending on
source or destination host location.
Pluribus Networks
www.pluribusnetworks.com
131
Because the E68-M and E28Q cannot perform VXLAN routing in and out of tunnels in a single
instance, loopback support exists. Netvisor leverages vxlan-loopback-trunk to support
recirculation of the packets. Be sure to add ports to vxlan-loopback-trunk so that VXLAN
routing in and out of tunnels works correctly. After VXLAN decapsulation, if packets route,
the inner DMAC uses either the vRouter MAC address or VRRP MAC address. The packet
needs to recirculate after decapsulation as part of the routing operation. To accomplish this,
Layer 2 entries for route RMAC address or VRRP MAC address on VXLAN VLAN program to
point to vxlan-loopback-trunk ports in hardware. The show output for the command,
l2-table-show, updates with a vxlan-loopback flag to indicate the hardware state.
mac: 00:0e:94:b9:ae:b0
vlan: 200
vxlan 10000
ip: 2.2.2.2
ports: 69
state: active,static,vxlan-loopback,router
hostname: Spine1
peer-intf: host-1
peer-state:
peer-owner-state:
status:
migrate:
mac: 00:0e:94:b9:ae:b0
vlan: 200
vxlan 10000
ip: 2.2.2.2
ports: 69
state: active,static,vxlan-loopback,router
hostname: Spine1
peer-intf: host-1
peer-state: active,vrrp,vxlan-loopback active,vrrp
peer-owner-state:
status:
migrate:
mac: 00:0e:94:b9:ae:b0
vlan: 100
vxlan 20000
ip: 1.1.1.1
ports: 69
state: active,static,vxlan-loopback,router
hostname: Spine1
status:
migrate:
132
Pluribus Networks
www.pluribusnetworks.com
Also for Layer3 entries behind VXLAN tunnels, routing and encapsulation operations requires
two passes . To obtain the Layer 3 entry, the hardware points to vxlan-loopback-trunk. The
show output of the l3-table-show displays the hardware state with a vxlan-loopback flag.
mac: 00:12:c0:88:07:75
ip: 2.2.2.3
vlan: 200
public-vlan: 200
vxlan: 10000
rt-if: eth5.200
state: active,vxlan-loopback
egress-id: 100030
create-time: 16:46:20
last-seen: 17:25:09
hit: 22
tunnel: Spine1_Spine4
Enables tunnel termination of VXLAN encapsulated packets received on the port when VXLAN
tunnel termination criteria is met.
Disable vxlan-termination on a port when VXLAN encapsulated packets are received on port.
This enforces the security to prevent any malicious host from generating VXLAN
encapsulated packets that would otherwise be subject to VXLAN tunnel termination.
Managed ports added to a VNET with vlan-type private, relies on VXLAN functionality and
therefore always carry overlay VLANs only. Therefore when you configure a port as a
managed port, VXLAN termination is disabled by default.
Pluribus Networks
www.pluribusnetworks.com
133
Default Settings
1. VNETs with vlan-type private relies on VXLAN functionality. The vlan-type private
are VXLAN overlay VLANs. Hence when a port is configured to be a managed port with
vlan-type private, vxlan-termination is disabled by default.
2. Shared/underlay ports have vxlan-termination on by default and can use the port-con-
fig-modify command to enable or disable vxlan-termination as is deemed to enforce port
level security.
VXLAN termination is disabled on VXLAN loopback trunk ports.
134
Pluribus Networks
www.pluribusnetworks.com
Figure 3: Example Topology for Virtual Link Extension and Cluster Configuration
In the example topology, Host1 connects to both cluster nodes, PN-SW1 and PN-SW2. No
VLAG on PN-SW1 and PN-SW2 connected to Host1. Host2 has 2 links connected to
PN-SW3, a standalone switch. PN-SW3 does not configure trunking on the ports connected
to Host2. Configure both Host1 and Host2 with LACP on links connecting to switches to
High Availability (HA) functionality.
Create a new VLAN Layer 3 interface on the local vRouter used as a VTEP source IP. Create
the VLAN as local only and dedicated for this usage.
In this example configuration, you must configure one virtual link extension for each point to
point connectivity.
1. Configure VLE VLANs for each virtual link extension and add the ports:
On PN-SW1
On PN-SW2
Pluribus Networks
www.pluribusnetworks.com
135
On PN-SW3
Create VXLAN tunnels using the Primary IP address. Note that 10.10.10.1 and
10.10.10.2 are primary IP addresses on PN-SW1 and PN-SW2 and 20.20.20.3 is
primary IP on PN-SW3.
On PN-SW1
On PN-SW2
On PN-SW3
On PN-SW2
On PN-SW3
VLE1 is created on PN-SW1 with port 11 and VTEP1, 10.10.10.3 to 50.50.50.5, over
VXLAN 400.
VLE1 is created on PN-SW1 with port 11 and VTEP3 tunnel, 50.50.50.5 to
10.10.10.3, over VXLAN 400.
Port 11 and VTEP2, 10.10.10.4 to 51.51.51.5, over VXLAN 401.
136
Pluribus Networks
www.pluribusnetworks.com
VLE2is created on PN-SW2 with pVLE2 is created on PN-SW3 with port 12 and
VTEP4, 51.51.51.5 to 10.10.10.4, over VXLAN 401.
vle-modify
vle-delete
vle-show
To create virtual link extension tracking, use the vle-create command. You can execute this
command from any fabric node to create a virtual link extension between any two switches in
the fabric.
Pluribus Networks
www.pluribusnetworks.com
137
CLI network-admin@switch > vle-create name name-string node1 fabric-node name
node-2 fabric-node name node-1-port node-1-port-number node-2-port
node-2-port-number [tracking|no-tracking]
To enable or disable tracking between existing VLE ports, use the vle-modify command:
Support for Configuring Keep-Alive Time for Virtual Link Extension (VLE)
As part of VLE tracking, each node hosting VLEs sends fabric fast keepalives every one
second to every other node that hosts the endpoint of the local VLEs. A local node times out
a remote node if a keepalive is not received from the remote node in 3 seconds which is the
default VLE tracking timeout.
If a remote node times out, Netvisor brings down the local VLE ports, terminating on the
remote node. In some deployments, Netvisor determines a three second times out.
Note that the periodic fast keepalive send frequency remains one second. Only the timeout
value adjusts to the configured value.
(CLI network-admin@Spine1)>system-settings-modify vle-tracking-timeout seconds
138
Pluribus Networks
www.pluribusnetworks.com
Support for Virtual Link Extension (VLE) Analytics
Currently, Netvisor OS does not copy VLE traffic control frames to the CPU on the switch.
Netvisor does not remove the inner tag, if present. Netvisor achieves this by installing a
system vFlow, Virtual-Link-Extend, with highest priority 15 with no action specified so that
Netvisor does not terminate LLDP or other control frames and send to CPU.
To support VLE analytics, Netvisor installs a few additional system vFlows with the same
priority as the existing Virtual-Link-Extend vFlow to copy TCP-SYN/FIN/RST packets to CPU.
This ensures that any VLE-SYN/FIN/RST packets target System-VLE-x flows and not
Virtual-Link-Extend flow.
(CLI network-admin@Spine1)>vflow-show format
name,scope,type,proto,tcp-flags,precedence,action,enable
(CLI network-admin@Spine1)>connection-show
vnet vlan vxlan src-ip dst-ip dst-port cur-state syn-resends
syn-ack-resends
---- ---- ----- ---------- ---------- -------- --------- -----------
100 100 20.20.20.1 20.20.20.2 http fin 0 0
Pluribus Networks
www.pluribusnetworks.com
139
Configuring Layer 3 Features
IPv6 Neighbor Discovery Process Support and Optimization
Displaying Hardware Routes History
Configuring MTU Parameters for vRouter Interfaces
Support for IPv4 and IPv6 on a vRouter Interface
IPv6 Support for vRouter Loopback Addresses
Configuring Prefix Lists for BGP and OSPF
Configuring Packet Relay for DHCP Servers
Configuring Hardware Routing for a vRouter
Support for Displaying Quagga Routing and Debug Information for vRouters
Configuring BGP on a vRouter
Configuring BGP for Two VLANs
Support for BGP SNMP MIBs
Support for AS and AS Prepending and BGP
Bidirectional Forwarding Detection Support for IPv6 BGP Neighbor and IPv6 Static
Routes
Support for Border Gateway Protocol (BGP) Communities
Configuring Open Shortest Path First (OSPF)
Display Default Timers for OSPF Configurations
BFD Support for OSPF Fault Direction
Support for Route Maps for OSPF Routes
Support for OSPF SNMP MIBs
Adding Default Route Information Settings for OSPF Routing
Adding Metric and Metric Type for Route Maps
Configuring Routing Information Protocol (RIP)
Configuring Static Routes
Support for Bidirectional Forwarding Detection on Static Routes
Adding IPv6 Link-Local Addresses for Static Routing
Configuring Multicast Listener Discovery (MLD)
Configuring an IGMP Querier IP Address
Multicast Listener Discovery (MLD) Snooping per VLAN
Creating MLD Static Sources and Static Groups
Configuring Virtual Router Redundancy Protocol
Using an L3 Network to Establish the Netvisor Fabric
Support for Policy-based Routing
Cluster Active-Active Routing Support for IPv6 Addresses
Support for PIM Source Specific Multicast (PIM-SSM) Forwarding
Virtual Routing and Forwarding (VRF) Support
140
Pluribus Networks
www.pluribusnetworks.com
Configuring vRouter Services
A Virtual Router (vRouter) remains an important part of fabric functionality. For example, for
a VLAN to communicate with other VLANs, or networks external to the fabric, the VLAN may
need a vRouter that spans the internal and the external network. vRouter commands can
only be executed at the fabric level by the fabric administrator.
Informational Note: For switches with ONVL, the only available VNET is a global
VNET created when a fabric is created for the first time. Use tab complete in the
CLI to display the VNET and continue the configuration. However, some white box
switches support multiple VNETs. Please refer to the Release Notes for the
supported platforms.
Routing protocols essentially work the same way on virtual routers as physical routers.
Pluribus Networks
www.pluribusnetworks.com
141
CLI (network-admin@Spine1)>vrouter-interface-add vrouter-name vr0 ip
2211::1/24 vlan 211
CLI (network-admin@Spine1)>vrouter-modify name vr0 bgp-as 200
no-bgp-ipv4-unicast
CLI (network-admin@Spine1)>vrouter-modify name vr0 bgp-redistribute
static,connected
CLI (network-admin@Spine1)>vrouter-bgp-add vrouter-name vr0 neighbor 2211::2
remote-as 222 multi-protocol ipv6-unicast
CLI (network-admin@Spine1)>vrouter-bgp-add vrouter-name vr0 neighbor 2211::3
remote-as 233 multi-protocol ipv6-unicast
CLI (network-admin@Spine1)>vrouter-bgp-network-add vrouter-name vr0 network
2200::/64
CLI (network-admin@Spine1)>vrouter-bgp-network-add vrouter-name vr0 network
2211::/64
142
Pluribus Networks
www.pluribusnetworks.com
After receiving a Neighbor Solicitation message, the destination node replies by sending a
Neighbor Advertisement message (ICPMv6 Type 136) on the local link. The source address in
the Neighbor Advertisement message reflects the IPv6 address of the node sending the
Neighbor Advertisement message. The destination address reflects the IPv6 address of the
node sending the Neighbor Solicitation message. The data portion of the Neighbor
Advertisement message includes the link-layer address of the node sending the Neighbor
Advertisement message.
After the source node receives the Neighbor Advertisement, the source node and destination
node communicate.
Netvisor uses Neighbor Solicitation messages to verify the reachability of a neighbor after
identifying the link-layer address of a neighbor. When a node requires verification of the
reachability of a neighbor, the destination address in a Neighbor Solicitation message
includes the unicast address of the neighbor.
Netvisor sends Neighbor Advertisement messages when a change occurs in the link-layer
address of a node on a local link. When there is such a change, the destination address for
the Neighbor Advertisement includes the all-nodes multicast address.
Netvisor periodically sendsRouter Advertisement messages (ICMPv6 Type 134) to each IPv6
configured interface of security appliance. Netvisor also sends the Router Advertisement
messages to the all-nodes multicast address.
Router Advertisement messages typically include the following information:
One or more IPv6 prefix the nodes use on the local link to automatically configure the
IPv6 addresses.
Lifetime information for each prefix included in the advertisement.
Sets of flags that indicate the type of autoconfiguration (stateless or stateful) that can
be completed.
Default router information (whether the router sending the advertisement should be
used as a default router and, if so, the amount of time (in seconds) the router should
be used as a default router).
Additional information for hosts, such as the hop limit and MTU a host should use in
origination packets.
The amount of time between neighbor solicitation message retransmissions on a given
link.
The amount of time a node considers a neighbor reachable.
Netvisor sends Router Advertisements t in response to Router Solicitation messages (ICMPv6
Type 133). Hosts sends Router Solicitation messages at system startup so that the host can
immediately auto-configure without waiting for the next scheduled router advertisement
message. Router Solicitation messages usually sent by hosts at system startup, and the host
does not have a configured unicast address, the source address in Router Solicitation
messages includes the unspecified IPv6 address (0:0:0:0:0:0:0:0). If the host has a
configured unicast address, the source address in the message uses the unicast address of
the interface sending the Router Solicitation message. The destination address in Router
Solicitation messages uses the all-routers multicast address with a scope of the link. When
sending a Router Advertisement in response to a Router Solicitation message, the destination
address in the Router Advertisement message uses the unicast address of the source of the
Router Solicitation message.
Configure the following settings for router advertisement messages:
Pluribus Networks
www.pluribusnetworks.com
143
The time interval between periodic Router Advertisement messages. Netvisor uses the
default time interval of 200 seconds with a range of 3 to 1800 seconds or 500 to
1800000 milliseconds if you specify milliseconds.
The router lifetime value, which indicates the amount of time IPv6 nodes should
consider the switch to be the default router. Valid values range from 0 to 9000
seconds. Netvisor has a default value of 1800 seconds. Entering 0 indicates that the
switch is not considered a default router on the selected interface.
The IPv6 network prefixes in use on the link. In order for stateless auto-configuration
to work properly, the advertised prefix length in Router Advertisement messages
must always be 64 bits.
Whether or not an interface transmits Router Advertisement messages. By default,
Netvisor automatically sends Router Advertisement messages in response to Router
Solicitation messages. If you suppress the Router Advertisement messages, the
switch appear as a regular IPv6 neighbor on the link and not as an IPv6 router.
Unless otherwise noted, the interface has specific the Router Advertisement message
settings.
To configure NDP, use the vrouter-interface-config-add command:
144
Pluribus Networks
www.pluribusnetworks.com
Displaying Hardware Routes History
You can display the history of hardware routes in the RIB table. This becomes useful when
troubleshooting hardware routing on the network.
CLI (network-admin@spine1)>vrouter-rib-history-show time 15:30
You can also modify the settings for collecting the history:
CLI (network-admin@spine1)>vrouter-rib-history-settings-modify
Pluribus Networks
www.pluribusnetworks.com
145
CLI network-admin@Leaf1 > vrouter-interface-add vrouter-name name-string vlan
vlan-id ip ip-address netmask netmask assigment none|dhcp ip2 ip-address
netmask2 netmask assigment none|dhcp|dchpv6
To migrate the interface from a single stack to a dual stack, use the following commands:
146
Pluribus Networks
www.pluribusnetworks.com
vnet vnet-name Specify the VNET assigned to the vRouter.
l2-net l2-net name Specify the Layer 2 interface.
To add an IPv6 vRouter loopback interface to vRouter, vr1, use the following syntax:
Pluribus Networks
www.pluribusnetworks.com
147
vr1 2121:100::/64 connected eth0.121
vr1 2200:100::/64 ospf6 eth0.121 fe80::640e:94ff:fe4d:d0c8 110
vr1 2888:1000::1/128 ospf6 eth0.121 fe80::640e:94ff:fe4d:d0c8 110
vr1 2999:1000::1/128 connected lo
vr1 fe80::/64 connected eth0.121
metric
------
20
20
10
10
This prefix list rejects any subnets of 172.26.0.0/16 with prefixes 17 bits or longer. For
example, the subnets 172.26.16.9/30 and 172.26.101.0/24 are rejected from route
distribution.
The sequence number allows you to insert or remove new lines in a prefix list as well as at
the beginning or end. Pluribus Networks recommends you increment the sequence numbers
by 10 so you can easily add or subtract lists from the configuration. See also:
Configuring Open Shortest Path First (OSPF)
Configuring BGP on a vRouter
148
Pluribus Networks
www.pluribusnetworks.com
Configuring Packet Relay for DHCP Servers
You configure a vRouter to relay DHCP requests from local clients to a centralized DHCP
server. Because the initial DHCP request arrives from a client that typically does not have an
IP address, the client must find the DHCP server using a Layer 2 broadcast.
The DHCP server needs information before the server can allocate an IP address to the client.
It must know the subnet and the MAC address of the client. The DHCP server needs the
subnet information to ensure that the IP address that the client receives can work on the
client’s subnet. The MAC address is necessary so that the DHCP server can find any
information that is unique to the client.
When you configure the vRouter as a DHCP proxy, the vRouter converts the local broadcast
packet from the client to a unicast packet and forwards it to the server.
Because the DHCP client does not have an IP address when it sends the DHCP request
packet, the client uses the IP address, 0.0.0.0, as the source IP address and the general
broadcast address 255.255.255.255 for the destination.
The vRouter replaces the source address with the IP address assigned to the interface
receiving the the request, and replaces the destination IP address with the address you
specify in the vRouter packet-relay command.
To configure packet-relay for a DHCP server with the IP address 172.16.21.34 and vRouter
interface eth11.100, use the following syntax:
Once you add the configuration, you cannot modify it. If you make a mistake or want to add
a new configuration, you must use the vrouter-packet-relay-remove command.
RIPv1 — IPv4 uses UDP and port 520, and advertise address - broadcasting
RIPv2 — IPv4 uses UDP and port 520, and advertise address - 224.0.0.9
RIPng — IPv6 uses UDP and port 521, and advertise address - FF02::9
PIM — IPv4 uses protocol 103 with multicast address 224.0.0.13
To create a hardware router on a vRouter, hwtest, use the following command:
Use the same commands as software routing to add protocols and interfaces.
Pluribus Networks
www.pluribusnetworks.com
149
Support for Displaying Quagga Routing and Debug Information for vRouters
This feature provides a new vRouter command to display the output of any Quagga routing
and debug information from the Netvisor OS command line interface(CLI).
Current configuration:
!
hostname vr1
log file zebra.log
!
password zebra
enable password zebra
!
interface eth1.100
ipv6 nd suppress-ra
multicast
no link-detect
!
interface lo0
no link-detect
!
ip forwarding
ipv6 forwarding
!
line vty
!
end
For this feature, Netvisor only allows show commands as legal values in the CLI.
150
Pluribus Networks
www.pluribusnetworks.com
Viewing Quagga Logs
Quagga logs files, such as Zebra, OSPF, OSPF6, BGP, BFD and RIP can be viewed directly
from the console using the Netvisor OS CLI. Because Quagga log files accumulate on the
switch, you may want to clear a particular log file so they do not create space issues.
New Commands
Use this command to view Quagga logs files directly from your console:
Use this command to clear Quagga files from a specific protocol log file:
Pluribus Networks
www.pluribusnetworks.com
151
Configuring BGP on a vRouter
Border Gateway Protocol (BGP) is a path-vector protocol and the most commonly used
routing protocol on the Internet. BGP advertises the paths required to reach a certain
destination. BGP resides on top of TCP, and simpler to configure than Open Shortest Path
First (OSPF). In Figure 1 Configuring BGP for Two VLANs, you want network traffic from the
source host to reach the destination host. But when you configure different VLANs, the
source host traffic becomes unaware of the route between the source host and the
destination host. However, a VLAN spans VLAN 33 and VLAN 55. You solve this problem by
configuring BGP in the same Autonomous System (AS) 100 sending traffic over VLAN 35.
This allows the source host to learn the route to the destination host.
Using a loopback address for peering is useful when multiple paths exist between the BGP
peers which would otherwise tear down the BGP session if the physical interface used for
establishing the session goes down. It also allows the vRouters running BGP with multiple
links between them to load balance over the available paths.
Figure 1: Configuring BGP for Two VLANs
This example assumes you have two VLANs, VLAN33 and VLAN55. Also, you have added
ports to the configuration.
Begin by configuring vRouter1, a software vRouter, on VLAN 33 with the BGP information:
152
Pluribus Networks
www.pluribusnetworks.com
bgp-max-paths — maximum number of BGP paths
bgp-bestpath-as-path — allow BGP to use the best path for traffic forwarding
bgp-dampening|no-bgp-dampening — suppress flapping routes so they are not
advertised.
bgp-graceful-restart|no-bgp-graceful-restart — mechanism for BGP that helps
minimize the negative effects on routing caused by BGP restart
bgp-stalepath-time — how long a router waits before deleting stale routes after an
end of record (EOR) message is received from the restarting router.
Add the IP addresses and VLANs:
vrouter-name: vrouter1
nic: eth1.33
ip: 10.9.100.100/16
assignment: static
mac: 66:0e:94:30:c6:92
vlan: 33
vxlan: 0
if: data
alias-on:
exclusive: no
nic-config: enable
nic-state: up
secondary-macs:
vrouter-name: vrouter1
nic: eth2.33
ip: 192.168.42.11/24
assignment: static
mac: 66:0e:94:30:25:5e
vlan: 33
vxlan: 0
if: data
alias-on:
exclusive: no
nic-config: enable
nic-state: up
secondary-macs:
Pluribus Networks
www.pluribusnetworks.com
153
To filter IP hosts, add prefix lists to the BGP configuration. See Configuring Prefix Lists for
BGP and OSPF.
Then, configure vRouter2 on VLAN 55:
Netvisor uses the index value as a number to uniquely identifies the vRouter in the AS.
Display the vRouter BGP configuration:
vrouter-name: vrouter33
ip: 10.16.35.55
neighbor: 10.16.35.55
remote-as: 100
next-hop-self: no
route-reflector-client: no
override-capability: no
soft-reconfig-inbound: no
max-prefix-warn-only: no
vrouter-name: vrouter33
ip: 10.16.33.0
network: 10.16.33.0/24
vrouter-name: vrouter55
ip: 10.16.35.33
neighbor: 10.16.35.33
remote-as: 100
next-hop-self: no
route-reflector-client: no
override-capability: no
soft-reconfig-inbound: no
max-prefix-warn-only: no
vrouter-name: vrouter55
ip: 10.16.55.0
154
Pluribus Networks
www.pluribusnetworks.com
network: 10.16.55.0/24
vrouter-name: vrouter1
neighbor: 10.9.100.201
ver: 4
remote-as: 100
msg_rcvd: 11
msg_sent: 19
tblver: 0
inQ: 0
outQ: 0
up/down: 00:54:04
state/pfxrcd: Connect
vrouter-name: vrouter2
neighbor: 10.9.100.101
ver: 4
remote-as: 100
msg_rcvd: 12
msg_sent: 18
tblver: 0
inQ: 0
outQ: 0
up/down: 00:53:37
state/pfxrcd: Connect
Pluribus Networks
www.pluribusnetworks.com
155
Support for BGP SNMP MIBs
You now enable or disable SNMP MIBs for BGP configurations by using the command,
vrouter-create, or vrouter-modify:
156
Pluribus Networks
www.pluribusnetworks.com
Bidirectional Forwarding Detection Support for IPv6 BGP Neighbor and IPv6
Static Routes
This feature adds bidirectional forwarding detection for IPv6 BGP neighbor and provides
support for IPv6 BGP NBR reachability detection by using BFD protocol. When a BFD session
goes from UP to DOWN, BFD informs BGP to bring the neighbor (NBR) down, until BFD
returns to an UP state.
You create the BFD session by adding the bfd parameter to the vRouter configuration using
the bfd parameter for the command, vrouter-bgp-modify. IPv6 BFD sessions for BGP NBRs
are hosted in Netvisor. The BFD session starts when you add the bfd parameter the BGP
vRouter configuration.
multi-protocol
--------------
ipv6-unicast
Netvisor supports IPv6 static route reachability detection using BFD protocol. Add IPv6 BFD
sessions by specifying two end point IPv6 addresses, a source IPv6 address and a destination
IPv6 address. The source IPv6 address must be a known local IPv 6 address. When a BFD
session is up, Netvisor assesses all the IPv6 static routes configured with a gateway or a BFD
destination IPv6 address matching the destination IPv6 address of the BFD session. When
Netvisor finds a match, this static route installs in Routing Information Database (RIB) and
Forwarding Information Database (FIB).
Pluribus Networks
www.pluribusnetworks.com
157
Standard (well known) — These community attributes are 4 octets long, with well
known values
Internet (0) — advertise these routes to all neighbors.
no-export (0xFFFFFF01) — do not advertise to outside a BGP confederation
boundary.
no-advertise (0xFFFFFF02) — do not advertise to other BGP peers .
local-AS (0xFFFFFF03) — do not advertise to external BGP peers.
Standard - generic (AS:value) — These community attributes are also 4 octet long,
but values can be really generic. The first 16-bit number is normally the AS number of
the network that sets the community or looks for it, and the second number is one
that conveys the intended information, for example: 65001:100.
For example to set the community attribute, no-export, to all route prefixes matching prefix
subnet100, use the following syntax:
To set the community attribute, 65002:200 to all route prefixes matching prefix subnet100,
use the following syntax:
Community Lists
BGP community list consists of a user defined BGP communities attribute list. The BGP
community list can be used for matching or manipulating BGP communities attribute in
updates. Netvisor uses community list on the receive side of the BGP updates to match
existing in the received updates. Community lists can be used in route-map with
match-community keyword to apply any policy on the receive side.
Standard — Standard community list defines attribute which matches standard
communities as defined above (well known or generic).
To set the community list permitting the community value 300 for AS 65002, use the
following syntax:
Expanded — Expanded means the string entered for the community-attribute can be
a regular expression instead of AS:NN format or some well-known attributes.
To set an expanded community list denying updates with community values 1 through 99
in autonomous System 50000, use the following syntax:
158
Pluribus Networks
www.pluribusnetworks.com
The Netvisor commands for vrouter-route-maps-* support additional parameters for BGP
communities:
Pluribus Networks
www.pluribusnetworks.com
159
vrouter-name name-string Displays the vRouter name.
Add the following community list parameters:
style standard|expanded Displays the style of the community list.
name name-string Displays a name for the community list.
action permit|deny Displays the action for the community list.
community-attribute Displays the community attribute.
community-attribute-string
Informational Note: For switches with ONVL, the only available VNET
in Netvisor consists of a global VNET created when you create a fabric for
the first time. Use tab complete in the CLI to display the VNET and
continue the configuration.
In this example, you configure OSPF for two vRouters with an area of 5. The network has the
following configuration:
VLAN 35 with IP addresses 10.16.35.0/24
Figure 2: OSPF
160
Pluribus Networks
www.pluribusnetworks.com
CLI network-admin@switch > vrouter-create name vrouter1 fabricname-global
router-type hardware
3. Add the subnets, 10.0.3.0/24 and 172.37.0.0/16, to VLAN33 with the area 0:
If you specify 0 as the cost value, the vRouter calculates the OSPF cost automatically based
on the bandwidth of the interface.
When you modify the OSPF hello interval, the ospf-dead-interval is automatically reset to
4 times the hello interval.
vrouter-name: vrouter1
network: 10.0.3.0
netmask: 24
ospf-area: 0
vrouter-name: vrouter1
network: 172.37.0.0
netmask: 16
ospf-area: 0
stub-area: 11
stub-type: stub
ospf-hello-interval: 30
metric: 34
The metric value can reflect the cost of routes advertised as OSPF routes. It may also reflect
the cost of routes advertised with other protocols.
Pluribus Networks
www.pluribusnetworks.com
161
Display Default Timers for OSPF Configurations
Netvisor allows you to display default timers for OSPF configurations. To add a timer or
modify an existing timer, use the following commands:
i
vrouter-name name-string Displays the name of the vRouter.
Specify any of the following optional OSPF parameters:
nic vrouter interface nic Displays the name of the vNIC.
nic-state down|up Displays the vNIC state.
l3-port l3-port-number Displays the Layer 3 port numbers.
ip ip-address Displays the IPv4 address of the interface.
netmask netmask Displays the netmask of the IPv6 address.
broadcast ip-address Displays the broadcast IP address.
area ip-address Displays the area ID for the interface in IPv4
format.
mtu mtu-number Displays MTU for the interface.
mtu-mismatch-detection| Displays if MTU mismatch detection is
no-mtu-mismatch-detection configured.
router-id ip-address Displays the router ID as an IP address.
network-type Displays the OSPF network type.
point-to-point|broadcast|loopback
state Displays OSPF interface state.
down|loopback|waiting|point-to-poin
t|dr-other|backup|dr
dr-id ip-address Displays the designated router ID.
dr-ip ip-address Displays the designated router IP address.
162
Pluribus Networks
www.pluribusnetworks.com
bdr-id ip-address Displays the backup designated router ID.
bdr-ip ip-address Displays the designated router IP address.
priority priority-number Displays the priority.
cost cost-number Displays the cost.
hello hello-number(s) Displays the hello-interval in seconds.
dead dead-number(s) Displays the dead time in seconds.
retransmit retransmit-number(s) Displays the retransmit interval time in seconds.
hello-due hello-due-string Displays the hello due in.
neighbor neighbor-number Displays the neighbor count.
adjacent adjacent-number Displays the adjacent number count.
i
vrouter-name name-string Displays the name of the vRouter.
Specify any of the following optional OSPF parameters:
nic vrouter interface nic Displays the name of the vNIC.
nic-state down|up Displays the vNIC state.
l3-port l3-port-number Displays the Layer 3 port numbers.
link-local ip-address Displays the IPv6 link-local IP address.
ip6 ip-address Displays the IPv6 address of the interface.
netmask-ip6 netmask Displays the netmask of the IP address.
area ip-address Displays the area ID for the interface in IPv4
format.
mtu mtu-number Displays MTU for the interface.
mtu-mismatch-detection| Displays if MTU mismatch detection is
no-mtu-mismatch-detection configured.
state Displays OSPF interface state.
down|loopback|waiting|point-to-
point|dr-other|backup|dr
dr-id ip-address Displays the designated router ID.
bdr-id ip-address Displays the backup designated router ID.
priority priority-number Displays the priority.
cost cost-number Displays the cost.
hello hello-number(s) Displays the hello-interval in seconds.
dead dead-number(s) Displays the dead time in seconds.
retransmit retransmit-number(s) Displays the retransmit interval time in seconds.
if-scoped-lsa if-scoped-lsa-number Displays the number of interface LSAs scoped for
the area.
Pluribus Networks
www.pluribusnetworks.com
163
ls-update ls-update-number Displays the number of pending LSAs for
LSUpdate.
ls-ack ls-ack-number Displays the number of pending LSAs for LSAck.
In addition, you can add prefix lists to filter host IP addresses. To add prefix lists to OSPF
areas, see Configuring Prefix Lists for BGP and OSPF.
164
Pluribus Networks
www.pluribusnetworks.com
CLI network-admin@switch > vrouter-modify name vrouter-name
Pluribus Networks
www.pluribusnetworks.com
165
Support for Route Maps for OSPF Routes
Configure route maps to associate a redistribute metric or metric-type for OSPFv3 and
currently, you cannot configure metrics for OSPF. In this release, you can now define a route
map to prevent OSPF routes from getting added to the routing table. This filtering happens at
the moment when OSPF installs the route in the routing table.
Before you configure route maps, configure a list of prefixes using the following command:
Use the following set of commands to configure route maps for OSPF:
166
Pluribus Networks
www.pluribusnetworks.com
community-attribute Displays the community attribute for the route map.
unset|none|no-export|no-advertis
e|
internet|local-AS
local-pref integer Displays the local preference as an integer between
-1 and 4294967295.
metric none Displays the metric as none.
metric-type 1|2 Displays the metric type as 1 or 2.
The OSPF vRouter advertises a default route into the OSPF domain, even if a route to 0.0.0.0
is configured. Another benefit of adding always keyword is that it can add stability to the
internetwork. For example, if the ASBR is learning a default route from another routing
domain such as RIP and this route is flapping, then without specifying always keyword, each
time the route flaps, the ASBR sends a new Type 5 LSA into the OSPF domain causing
instability inside the OSPF domain. With the always keyword, the ASBR always advertises
the default route inside the OSPF domain, and the flapping of the default route from the RIP
domain does not cause any instability inside the OSPF domain.
When you configure the metric type, you can use the parameters described for the vrouter-
commands for configuring a route map.
These parameters control default route generation for IPv4 and IPv6 default routes.
Pluribus Networks
www.pluribusnetworks.com
167
ospf-default-information Specify if you want to use the
none|originate|always default route information for
OSPF.
• none — no default route is
generated.
• originate — the default
route is generated only if a
default route is present in the
routing table.
• always — the default route is
generated even if no default
route is present in the routing
table.
ospf-default-info-originate-metric none Specify the metric for the
default route.
ospf-default-info-originate-metric-type 1|2 Specify the metric type as 1 or
2.
168
Pluribus Networks
www.pluribusnetworks.com
ospf-default-information Displays the default route
none|originate|always information for OSPF.
• none — no default route is
generated.
• originate — the default
route is generated only if a
default route is present in the
routing table.
• always — the default route is
generated even if no default
route is present in the routing
table.
ospf-default-info-originate-metric none Displays the metric for the
default route.
ospf-default-info-originate-metric-type 1|2 Displays the metric type as 1 or
2.
ospf-default-info-originate-route-map Displays the OSPF default
vrouter route-map name information route map.
Pluribus Networks
www.pluribusnetworks.com
169
ospf-redist-static-route-map Specify the route map for OSPF
vrouter route-map name redistribution of static routes.
ospf-redist-connected-route-map Specify the route map for OSPF
vrouter route-map name redistribution of connected routes.
ospf-redist-bgp-route-map Specify the route map for OSPF
vrouter route-map name redistribution of BGP routes.
You can also specify how Netvisor distributes RIP routes using the parameter,
rip-redistribute
static|connected|ospf|bgp.
2. Add network 10.16.33.0/24 to vrouter1:
170
Pluribus Networks
www.pluribusnetworks.com
CLI network-admin@switch > vrouter-rip-add vrouter-name vrouter1 network
10.16.33.0/24 metric 2
4. To view the configuration, use the vrouter-rip-show command. This displays all RIP
routes configured using the vrouter-rip-add command.
To view RIP routes not configured using the vrouter-rip-add command, use the
vrouter-rip-routes-show command.
In this example, you configure a static route on vRouter1 for the network, 172.16.10.10/24
with a gateway IP address, 172.16.20.1:
Pluribus Networks
www.pluribusnetworks.com
171
Support for Bidirectional Forwarding Detection on Static Routes
This version of Netvisor OS provides support for static route reachability detection using
Bidirectional Forwarding Detection (BFD) protocol. Netvisor installs a static route entry in the
Routing Information Database (RIB) only if BFD can communicate with the gateway. After
installation, BFD periodically monitors reachability and removes the route if connectivity is
lost.
When you configure a vRouter as a gateway, Netvisor OS sends out BFD hellos periodically to
specified neighbors. You configure static BFD sessions for this purpose.
Currently when you create a static route, Netvisor installs a route entry in RIB regardless of
the reachability of the gateway. By making static routes conditional over BFD, neighborship
formation alleviates this problem.
Netvisor OS now provides new parameters to configure static BFD sessions between a
Netvisor OS vRouter and any remote routers supporting BFD. The vRouter sends out periodic
BFD packets to these neighbors, so that the routers can determine if the Netvisor vRouter,
acting as a gateway, is alive or not.
If the BFD destination IP address matches with a static route gateway IP address, Netvisor
considers the static route BFD enabled. Netvisor installs the static route in the RIB only for
active BFD sessions. Netvisor creates the BFD sessions on a per gateway basis, in that
different static routes using the same gateway, use the same BFD session to determine
connectivity.
If the BFD session goes down, Netvisor removes all such static routes from the RIB. The
source address for the BFD session consists of the interface address of any vRouter interface
(vnic) or a loopback interface.
BFD timers can be specified for the vRouter interface or the loopback interface.
CLI Commands
vrouter selector:
vrouter-name name-string Specify the name of the vRouter service
configuration to add BFD.
the following static-bfd
arguments:
src-ip ip-address Specify the source IP address for the BFD session.
dst-ip ip-address Specify the destination IP address for the BFD
session.
172
Pluribus Networks
www.pluribusnetworks.com
vrouter-static-bfd-show Displays a static BFD session
vrouter selector:
vrouter-name name-string Displays the name of the vRouter service
configuration to add BFD
the following static-bfd
arguments:
src-ip ip-address Displays the source IP address for the BFD session
dst-ip ip-address Displays the destination IP address for the BFD
session
type single-hop|multi-hop BFD type
Pluribus Networks
www.pluribusnetworks.com
173
netmask netmask Specify the netmask of the IP subnet.
gateway-ip ip-address Specify the IP address of the gateway
that you want to route packets destined
for the network IP address.
bfd-dst-ip ip-address Specify the destination IP address for
BFD monitoring.
distance number Specifies the administrative distance in a
number from 0 to 255.
• 0 — Connected interface
• 1 — Static route
• 110 — OSPF
• 120 — RIP
• 200 — Internal BGP
interface vrouter interface nic Specify the vRouter interface for the
static route.
You remove or display the state using the commands, vrouter-static-route-remove, and
vrouter-static-route-show.
group-ip:
node-ip:
vlan:
port:
source:
node-type:
174
Pluribus Networks
www.pluribusnetworks.com
expires:
The show ouput displays the following information:
Multicast group IP address in IPv6 format
Host node IP address in IPv6 format
HostVLAN ID
Portnumber
Multicast traffic source IP address in IPv6 format
Node type as host or router
Expires as the ageout time
To display MLD group membership on the network, use the mld-show command:
group-ip:
node-ip:
vlan:
port:
source:
node-type:
expires:
To modify the scope from fabric to local, use the following syntax:
Pluribus Networks
www.pluribusnetworks.com
175
With a valid source IP address on IGMP Query packets, Netvisor adds the VLAN receiving the
Query to an IGMP Snoop switch list, and now reflects in the igmp-switches-show output and
the IGMP queries sent to the peer Switch as well. This solicits a report from the hosts
listening on the peer switch.
Use these Netvisor OS commands to configure an IGMP querier IP address.
By default, Netvisor disables MLD snooping. If you enable MLD snooping, snoop-linklocal
and snoop-nd are enabled.
Command Options
Use these command options for the mld-snooping-modify command:
176
Pluribus Networks
www.pluribusnetworks.com
CLI network-admin@switch > mld-snooping-modify
These command options replace these Netvisor OS versions earlier than 2.5.2 command
options:
Show Output
The mld-snooping-modify show format all command displays the following sample output:
Pluribus Networks
www.pluribusnetworks.com
177
Table entries for interfaces that the switch learns about are subject to aging. For example, if
a learned multicast-router interface does not receive MLD queries within a certain interval,
the switch removes the entry for that interface from the multicast forwarding table.
You can create MLD static sources using IPv6 addresses and then create static groups using
the static sources.
To create an MLD static source for IPv6 address, ff02::1:ff11:111 as the group, and IPv6
2001:db8::2:1 as the source on VLAN 25, port 44-45, use the following syntax:
The parameter, ports, is an optional parameter. You can delete an MLD static source, but you
cannot modify the parameters. To display MLD static sources, use the
mld-static-source-show command.
To create an MLD static group for IPv6 address, ff02::1:ff11:1111, on VLAN 25, ports 44-45,
use the mld-static-group-create command:
You can delete an MLD static group, but you cannot modify the parameters. To display MLD
static groups, use the mld-static-group-show command.
switch:
vlan:
v1-queries:
v2-queries:
v1-member-reports:
v1-done-group:
v2-member-reports:
queries-sent:
drops:
ignored:
178
Pluribus Networks
www.pluribusnetworks.com
VRRP provides rapid transition from master to standby and from standby to master. The
master router sends advertisements every second. If the master VRRP advertisements are
not received within a window of time, three (3) seconds, then the standby virtual router
becomes the master virtual router and begins performing routing for the virtual router. If the
master router becomes active again, it can become the master again or allow the standby to
continue as the master router. The role depends on the value assigned to VRRP priority.
vRouter interfaces now support both IPv4 and IPv6 addresses.
Example Configuration
In this example, you have the following configurations on two switches (SW1 and SW2) on
the network:
VLAN 100 with IP address range 192.168.11.0/24
VNET with the name vrrp-router and scope fabric
1. On SW1, configure a vRouter:
vrouter-name: vrrp-rtr1
nic: eth0.100
ip: 192.168.11.3/24
assignment: static
mac: 66:0e:94:dd:18:c4
vlan: 100
vxlan: 0
if: data
alias-on:
exclusive: no
nic-config: enable
nic-state: up
Pluribus Networks
www.pluribusnetworks.com
179
4. Create the VRRP interface:
vrouter-name: vrrp-router2
nic: eth2.100
ip: 192.168.11.3/24
assignment: static
mac: 66:0e:94:21:a9:6c
vlan: 100
vxlan: 0
if: data
alias-on:
exclusive: no
nic-config: enable
nic-state: up
vrouter-name: vrrp-router1
nic: eth0.100
ip: 192.168.11.3/24
assignment: static
mac: 66:0e:94:dd:18:c4
vlan: 100
vxlan: 0
if: data
alias-on:
exclusive: no
nic-config: enable
180
Pluribus Networks
www.pluribusnetworks.com
nic-state: up
vrouter-name: vrrp-router1
nic: eth1.100
ip: 192.168.11.2/24
assignment: static
mac: 00:00:5e:00:01:0a
vlan: 100
vxlan: 0
if: data
alias-on:
exclusive: no
nic-config: enable
nic-state: up
vrrp-id: 10
vrrp-primary: eth1.100
vrrp-priority: 100
vrrp-state: master
vrouter-name: vrrp-router2
nic: eth3.100
ip: 192.168.11.4/24
assignment: static
mac: 66:0e:94:21:54:07
vlan: 100
vxlan: 0
if: data
alias-on:
exclusive: no
nic-config: enable
nic-state: up
vrouter-name: vrrp-router2
nic: eth3.100
ip: 192.168.11.2/24
assignment: static
mac: 00:00:5e:00:01:0a
vlan: 100
vxlan: 0
if: data
alias-on:
exclusive: no
nic-config: enable
nic-state: down
Pluribus Networks Configuration Guide
pluribusnetworks.com 87
vrrp-id: 10
vrrp-primary: eth3.100
vrrp-priority: 50
vrrp-state: slave
When you intentionally disable the VRRP interface, the slave interface becomes the master
interface:
vrouter-name: vrrp-router2
nic: eth3.100
ip: 192.168.11.1/24
assignment: static
mac: 00:00:5e:00:01:0a
vlan: 100
Pluribus Networks
www.pluribusnetworks.com
181
vxlan: 0
if: data
alias-on:
exclusive: no
nic-config: enable
nic-state: up
vrrp-id: 10
vrrp-primary: eth3.100
vrrp-priority: 50
vrrp-state: master
When you re-enable the VRRP interface, it becomes the master again, and the second
interface returns to the slave:
vrouter-name: vrrp-router2
nic: eth3.100
ip: 192.168.11.2/24
assignment: static
mac: 00:00:5e:00:01:0a
vlan: 100
vxlan: 0
if: data
alias-on:
exclusive: no
nic-config: enable
nic-state: down
vrrp-id: 10
vrrp-primary: eth3.100
vrrp-priority: 50
vrrp-state: slave
Nevisor uses two commands to manually check and fix Layer 3 inconsistencies:
182
Pluribus Networks
www.pluribusnetworks.com
CLI network-admin@switch > l3-check-fix
Netvisor supports VLAG egress filtering rules for packets ingressing cluster links that prevent
packets from egressing VLAGs. In addition to the properties of control packets in unicast
routing protocols, such as OSPF, that set TTL=1, make it difficult to support routing protocols
from creatingLayer3 adjacencies over VLAGs. This feature allows unicast routing protocols
such as OSPF to form Layer3 adjacencies over VLAGs, by implementing a dual-forwarder
logic, while at the same time allowing routing control packets to be directed to the right
cluster switch. Netvisor enables by default, but you enable or disable it on a per vRouter
basis. When you enable active-active VLAG, the cluster vRouter implements special logic to
synchronize vRouter gateway MAC addresses as well as vrouter interface IP addresses with
the cluster peer.
When you configure the ports for active-active VLAG, you should use the
port-config-modify command and add the parameter jumbo to support jumbo frames on
the network.
CLI (network-admin@spine1)>vrouter-show
switch...cluster-active-active-routing...
------ ---------------------
spine1 enable
Basic Concepts
In a simple topology with a network of two BGP neighbors, Netvisor specifies the BGP
neighbor information is specified, while using the two in-band networks to establish TCP
sessions between the two switches.
To establish a fabric communication between the two switches over the BGP network, you
must perform the following steps:
Pluribus Networks
www.pluribusnetworks.com
183
Figure 10:Example Network of Two BGP Neighbors Topology
1. Create a vrouter in each switch.
2. Set up BGP peering and redistribute routes so that they can reach each other’s in-band
networks.
3. Setup up global static routes using the local vrouter as the gateway. You need to do this
because the routes reside inside the vrouter and each switch needs to reach the other
switch in-band network.
4. Enable switch-B to join the fabric that was created by switch-A.
184
Pluribus Networks
www.pluribusnetworks.com
interface info to communicate with current switch inband: (optional)
IP address/netmask
fabric network:
network/netmask to reach inband network of the switch that created the fabric
bfd: To use BFD for rapid BGP peer loss detection
allowas-in:
Accept routes with own AS in AS_PATH
This is only required for cluster connections
This CLI performs the majority of the actions in Steps 1 - 4 in the above example using the
information provided in the CLI. However, it does not:
change the inband IP address
create the actual fabric
If the inband network uses a /30 netmask, then it automatically determines the vrouter
inband IP address from the main inband IP address. The switch creating the fabric (the root
switch) does not specify the fabric network, but does need to create a route to the other
switch inband network.
switch-A> fabric-create name myfabric
switch-A> fabric-comm-vrouter-bgp-create name vrouter-a bgp-nic-l3-port 10
bgp-as 65001 bgpnic-
ip 192.169.0.5/30 in-band-nic-ip 12.1.1.10/24 remote-as 65002 neighbor
192.169.0.6 bgpredistribute
connected
switch-A> fabric-in-band-network-create 12.1.2.0/30
switch-B> fabric-comm-vrouter-bgp-create name vrouter-b bgp-nic-l3-port 20
bgp-as 65002 bgpnic-
ip 192.169.0.6/30 in-band-nic-ip 12.1.2.10/24 remote-as 65001 neighbor
192.169.0.5
fabric-network 12.1.1.0/24 bgp-redistribute connected
switch-B> fabric-join switch-ip 12.1.1.1
Joined fabric myfabric. Restarting nvOS...
Pluribus Networks
www.pluribusnetworks.com
185
Multiple Neighbors over a Layer 3 Fabric
With more than two switches, the first BGP peer for each switch can be created using the
fabric-comm-vrouter-bgp-create CLI. You need to create the rest separately. Here is an
example with switch-C added to the previous topology .
186
Pluribus Networks
www.pluribusnetworks.com
Support for Bidirectional Forwarding Detection (BFD) and Static Routes
Currently when you create a static route, Netvisor OS installs a route entry in the routing
information database (RIB) regardless of the reachability of the gateway. When you
configure static routes conditionally over BFD neighbor-ship formation, Netvisor OS alleviates
this issue.
Netvisor OS supports static route reachability detection by using BFD protocol, and a static
route entry is installed in the RIB only if BFD is able to communicate with the gateway. After
installation, BFD periodically monitors reachability and removes the route if connectivity is
interrupted. The Pluribus vRouter acts as a gateway, and sends out BFD hellos periodically to
specified neighbors. You can configure static BFD sessions.
Netvisor OS allows you to configure static BFD sessions between a vRouter and any remote
routers supporting BFD. The vRouter sends out periodic BFD packets to these neighbors, so
that they can determine if PN router, acting as a gateway, is alive or not.
If the BFD destination IP address matches a static route gateway IP address, Netvisor OS
considers the static route as BFD enabled. This means the static route is installed in the RIB
only if the BFD session is up. Note that the BFD sessions are per gateway, and different static
routes with the same gateway IP address use the same BFD session to determine
connectivity. If the BFD session goes down, Netvisor removes all static routes from the RIB.
The source IP address for the BFD session can be the interface address of any vRouter
interface or a loopback interface. BFD timers can be specified for the vRouter interface or the
loopback interface.
Use the following new commands to configure BFD on static routes:
Pluribus Networks
www.pluribusnetworks.com
187
If no match or next-hop is not resolved, then traffic is dropped until the next-hop is
resolved.
You configure PBR using vFlow commands. Internally, policy routing of the packets uses a
vFlow entry. Netvisor creates PBR vFlow entries in a new vFlow table, System-L3-L4-PBR.
To enable PBR, use the following command:
Now you configure a vFlow for the routing policy, using the following syntax:
188
Pluribus Networks
www.pluribusnetworks.com
To alleviate this issue, Netvisor adds a host route in the hardware for the link-local IPv6
vRouter peer.Now, when the first cluster peer sends a unicast packet with a link-local
destination IPv6 address to the second cluster peer, the first cluster peer has this host route
entry which properly routes the packet.
Protocol Independent Multicast (PIM) distributes multicast data using routes gathered by
other protocols.
PIM builds and maintains multicast routing trees using reverse path forwarding (RPF) based
on a unicast routing table. PIM can use routing tables consisting of OSPF, BGP, RIP, and static
routes. Each host (senders and receivers) is associated with a Designated Router (DR) that
acts for all directly connected hosts in PIM-SSM transactions.
Netvisor has the following enhancements:
A PIM-SSM vRouter acts as first hop designated router connected to multicast
receivers.
Netvisor performs multicast forwarding in hardware.
Netvisor scales for multicast routes.
Netvisor ensures PIM protocol operation by mapping PIM protocol messages to proper
CoS queues.
Netvisor OS supports PIM-SSM in a cluster environment by providing active-active multicast
forwarding.
Netvisor OS also has enhanced support for mapping IGMPv1 and IGMPv2 requests to specific
SSM ranges.
New commands support extended SSM IP addresses. The default IP address is 232.0.0.0/8.
Pluribus Networks
www.pluribusnetworks.com
189
CLI network-admin@Leaf1 > er-pim-ssm-range-show
190
Pluribus Networks
www.pluribusnetworks.com
group ip-address Displays a group IP address. The default is
232.0.0.0.
netmask netmask Displays the netmask. The default is 8.
Pluribus Networks
www.pluribusnetworks.com
191
Group membership does not ensure traffic is not black-holed. For a given <S,G,VLAN>,
Netvisor routes traffic to the outgoing set of VLANs without causing a PIM assert on the peer
or local router. Netvisor routes traffic only to local nodes, and the route excludes cluster link
ports on the outgoing interface list.
The following command displays the interfaces of a PIM multicast router:
To display the routing state for router or group, use the following command:
192
Pluribus Networks
www.pluribusnetworks.com
Configuring the Hello Interval for PIM-SSM
You can configure the PIM-SSM Hello Interval using the following command:
Pluribus Networks
www.pluribusnetworks.com
193
Configuring VRF and Distributed Routing with an Anycast Gateway
194
Pluribus Networks
www.pluribusnetworks.com
vnet vnet-name Specify the name of the VNET to assign the VRF.
vlan vlan-id Specify the VLAN ID to assign to the subnet.
vxlan vxlan-id Specify the VXLAN ID to assign to the subnet.
network ip-address Specify the network IP address.
netmask netmask Specify the netmask for the IP address.
vrf name-string Specify the VRF to assign the subnet.
anycast-gw-ip ip-address Specify the anycast gateway IP address.
The following commands allow you to modify and display anycast gateway information on the
fabric:
Pluribus Networks
www.pluribusnetworks.com
195
CLI network-admin@Leaf1 > fabric-anycast-mac-modify
mac mac-address Modify the MAC address for anycast. The default
MAC address is 64:0e:94:40:00:02.
mac: 64:0e:94:40:00:02
Example Configuration
To add VRF to all switches installed on the network, use the following syntax:
196
Pluribus Networks
www.pluribusnetworks.com
Configuring Virtual Networks
Pluribus Networks
www.pluribusnetworks.com
197
Each VNET has a single point of management. As the fabric administrator, you can create
VNETs and assign ownership of each VNET to individuals with responsibility for managing
those resources. You can create separate user names and passwords for each VNET manager.
Using the separate VNET administration credentials, the VNET admin can use Secure Shell
(SSH) to connect to the VNET manager and access a subset of the Netvisor CLI commands to
manage that VNET. This way, multiple tenants can share a fabric with each managing a VNET
with security, traffic, and resource protection from other VNETs.
VNETs can create very flexible and complex network architectures. For example, a Pluribus
Networks switch, or a fabric of switches, can be used to create multiple tenant environments
in an OpenStack deployment. In Figure 1 Using VNETs with Netvisor, the diagram
displays three VNETs, each with a management interface and a data interface.Netvisor
assigns each VNET an IP address pool used for DHCP assignment of IP addresses to each
node, server, or OS component.
Underlying each VNET lies the VNET manager. Each VNET manager runs in a zone. When you
create services for a VNET, the services occupy the same zone on a switch. Netvisor
designates a shared service and created by default when creating services. However, each
zone can only support a single instance of a service. If you need a second service instance for
a VNET, then it needs to occupy a separate zone. Netvisor designates the zone as a dedicated
service. In most cases, you can create services as shared unless you specifically want to
create a dedicated service.
When you create a fabric, Netvisor automatically creates a VNET with the name
fabric-name-global. This VNET owns all resources within the fabric, and as you create new
VNETs, resources move from the default VNET to the new VNETs. Global services remain in
the default VNET unless assigned specifically to a VNET.
198
Pluribus Networks
www.pluribusnetworks.com
Creating a Virtual Network (VNET)
To separate resources, including switch ports, IP addresses, VLANs, and VXLANs, into
separate management spaces, create a VNET and place the resources in the VNET. Then
configure a separate VNET administrator to manage the network.
The switch has no performance impact when you send network traffic through a VNET.
Netvisor switches packets in the hardware with full line-rate bandwidth and the same latency
even if the packets reside on a VNET or not. But, the VNET allows you to provide different
Service Level Agreements (SLAs) to each VNET when multiple VNETs exist on a physical
switch and no resource contention based on traffic loads.
Pluribus Networks
www.pluribusnetworks.com
199
any of the following options:
disable|enable Specify to enable or disable the
service.
location fabric-node name Specify the location of the service.
storage-pool storage-pool name Specify the storage pool assigned to
the service.
200
Pluribus Networks
www.pluribusnetworks.com
vnet-manager-interface-add Adds an interface to a VNET manager.
vnet-manager-name name-string Specify the name of service
configuration.
vrrp-id 0..255 Specify the ID assigned to VRRP.
vrrp-primary vrrp-primary-string Specify the VRRP primary interface.
vrrp-priority 0..254 Specify the VRRP priority for the
interface.
vrrp-adv-int 10..40950 Specify the VRRP Advertisement
Interval in mseconds. The minimum
interval is 10ms and the maximum
interval is 40950ms. The default
interval is 1000ms.
Pluribus Networks
www.pluribusnetworks.com
201
Configuring Network Security
Creating and Implementing Access Control Lists (ACLs)
MAC ACLs
IP ACLs
Support for DHCP Snooping
Support for Router Advertisement (RA) Guard
MAC ACLs
Using MAC ACLs to Deny Network Traffic
Create ACLs based on MAC addresses to deny network traffic from a specific source. MAC
addresses are Layer 2 protocols and most often assigned by the hardware manufacturer.
Figure 1 MAC ACL Blocking Access shows an example of a MAC address and Ethernet type to
block from the network.
202
Pluribus Networks
www.pluribusnetworks.com
Figure 1: MAC ACL Blocking Access
name: deny-mac
id: b000015:12
action: deny
src-mac: 01:80:c2:00:00:0X
dst-mac: 00:00:00:00:00:00
dst-mac-mask: aa:aa:aa:aa:aa:aa
ether-type: ipv4
vlan: 0
scope: fabric
port: 0
Pluribus Networks
www.pluribusnetworks.com
203
Using MAC ACLs to Allow Network Traffic
So now that you have blocked the MAC address, reverse the scenario and allow IPv4 network
traffic from the MAC address to the network.
Figure 2:MAC ACL Allowing Access
See Configuring a MAC ACL to Allow Network Traffic to review the example configuration.
204
Pluribus Networks
www.pluribusnetworks.com
CLI network-admin@switch > acl-mac-show name deny-mac layout vertical
name: deny-mac
id: b000015:12
action: deny
src-mac: 01:80:c2:00:00:0X
dst-mac: 00:00:00:00:00:00
dst-mac-mask: aa:aa:aa:aa:aa:aa
ether-type: ipv4
vlan: 0
scope: fabric
port: 0
name: deny-mac
id: b000015:12
action: deny
src-mac: 01:80:c2:00:00:0X
dst-mac: 00:00:00:00:00:00
dst-mac-mask: aa:aa:aa:aa:aa:aa
ether-type: ipv4
vlan: 0
scope: fabric
port: 0
IP ACLs
Using a Deny IP ACL to Block Network Traffic
This example displays a network with a Finance server on one part of the network, and an
Engineering server on another part. You want to block the Engineering server from the
Finance server in order to protect company sensitive information. See Configuring an
Internal Deny ACL to review the configuration sample.
Pluribus Networks
www.pluribusnetworks.com
205
Figure 1: Network Example - IP ACL for Internal Servers
Or you may discover that an external source is attempting to access your network, and ping
your servers for IP addresses. You can use an ACL to block the specific source using an IP
ACL.
206
Pluribus Networks
www.pluribusnetworks.com
Figure 2:IP ACL Blocking External Access
Configuring IP ACLs
From Figure 1 Network Example - IP ACL for Internal Servers, the following information is
available:
Source IP address
Source netmask
Destination IP address
Destination netmask
Type of protocol to deny - IP
Ports
VLAN
Pluribus Networks
www.pluribusnetworks.com
207
CLI network-admin@switch > acl-ip-create name deny-hr action deny scope local
src-ip 192.168.10.2 src-ip-mask 24 dst-ip 192.168.200.3 dst-ip-netmask 24
proto ip src-port 55 dst-port 33 vlan 1505
name: deny-ip
id: b00011:20
action: deny
proto: ip
src-ip: 192.168.10.2/24
src-port: 55
dst-ip: 192.168.200.3/24
dst-port: 33
vlan: 1505
scope: local
port: 0
Now, when you attempt to access the Finance server from the Engineering server, the
network drops the packets.
name: deny-external
id: b000022:20
action: deny
proto: tcp
src-ip: 209.225.113.24/28
src-port: 0
dst-ip: ::/0
dst-port: 0
vlan: 0
scope: fabric
port: 0
208
Pluribus Networks
www.pluribusnetworks.com
CLI network-admin@switch > acl-ip-create name allow-http permit scope fabric
src-ip 0.0.0.0. src-ip-mask 255.255.255.255 dst-ip 209.225.113.24 dst-ip-mask
255.255.255.240 protocol tcp dst-port 57
name: allow-http
id: b000025:20
action: allow
proto: tcp
src-ip: 0.0.0.0/255.255.255.255
src-port: 0
dst-ip: 209.225.113.24/28
dst-port: 57
vlan: 0
scope: fabric
port: 0
Pluribus Networks
www.pluribusnetworks.com
209
Enable DHCP snooping and specify the list of trusted server ports using the following set of
commands:
(CLI network-admin@Spine1)>dhcp—filter-create name name-string trusted-ports
port-list
name name-string Specify a name for the filter.
trusted-ports port-list Specify a list of trusted ports.
In order to drop the packets from rogue DHCP servers, connected through untrusted ports,
Netvisor has a new system vFlow, DHCP-LOG-DROP.
The vFlow sends the packets to the CPU, to track the untrusted server messages, and then
drop the untrusted DHCP server packets. The vFlow has a higher precedence than the DHCP
trusted ports vFlow. The vFlow includes the untrusted port list for the ingress port.
Untrusted ports typically connect to hosts where DHCP clients can send messages, and
Netvisor ensures the DHCP messages are rate limited using dhcp CPU class. All the DHCP
messages use the dhcp CPU class. Use the existing command for cpu-class-modify:
CLI (network-admin@Spine1)>cpu-class-modify name dhcp rate-limit
rate-limit-number
The show output for the command, dhcp-lease-show, has two new parameters to display
trusted and rogue DHCP servers:
CLI (network-admin@Spine1)>dhcp-lease-show trusted-server|no-trusted-server
CLI (network-admin@Spine1)>dhcp-lease-show
switch ip mac port vnet vlan db-state
server
------------- ------------------- ----------------- ---- ---- ---- ---------
------
Spine1 6053:23a7:0:0:200:: 00:12:c0:80:1f:b8 9 1 unknown
210
Pluribus Networks
www.pluribusnetworks.com
Support for Router Advertisement (RA) Guard
The IPv6 RA Guard feature provides support for allowing the network administrator to block
or reject unwanted or rogue RA guard messages arriving at the network device platform. RAs
are used by devices to announce themselves on the link. The IPv6 RA Guard feature analyzes
these RAs and filters out RAs sent by unauthorized devices. In host mode, all RA and router
redirect messages are not allowed on the port. The RA Guard feature compares configuration
information on the Layer 2 (L2) device with the information found in the received RA frame.
Once the L2 device has validated the content of the RA frame and router redirect frame
against the configuration, it forwards the RA to the unicast or multicast destination. If
Netvisor does not validate the RA frame content, Netvisor drops the RA.
Pluribus Networks
www.pluribusnetworks.com
211
This creates two vFlows for RA Guard:
One vFlow drops RAs sent by devices with the role host as assigned using the
ipv6security-raguard-create command
The second vFlow sends RAs to the CPU on qualified ports or VLANs with the action,
to-cpu, and the device role as router.
Netvisor receives and examines the RAs then takes the necessary action based on the
access and prefix lists or port and VLAN policies. The RA accepts and floods back to all
ports.
New commands support this feature:
(CLI network-admin@Spine1)>access-list-create
name name-string Specify a name for the access list.
scope scope Specify if the scope is local or fabric.
(CLI network-admin@Spine1)>access-list-ip-add
name name-string Specify a name for the access list.
ip ip-address Specify the IP address for the access list.
(CLI network-admin@Spine1)>access-list-ip-show
switch name ip
-------- ---- -------
dorado03 test 1.1.1.4
(CLI network-admin@Spine1)>prefix-list-create
name name-string Specify a name for the prefix list.
scope scope Specify if the scope is local or fabric.
(CLI network-admin@Spine1)>prefix-list-network-add
name name-string Specify the name for the prefix network list.
network ip-address Specify the IP address for the network.
netmask netmask Specify the netmask.
212
Pluribus Networks
www.pluribusnetworks.com
(CLI network-admin@Spine1)>prefix-list-network-show
name name-string Displays the name for the prefix network list.
network ip-address Displays the IP address for the network.
netmask netmask Displays the netmask.
(CLI network-admin@Spine1)>ipv6security-raguard-create
(CLI network-admin@Spine1)>ipv6security-raguard-delete
(CLI network-admin@Spine1)>ipv6security-raguard-modify
name name-string Specify the RA policy name.
device host|router Specify the type of device as host or router.
router-priority Specify the router priority as low, medium, or high.
low|medium|high
access-list name-string Specify the access list name.
prefix-list name-string Specify the prefix list name.
(CLI network-admin@Spine1)>ipv6security-raguard-show
(CLI network-admin@Spine1)>ipv6security-raguard-port-add
name name-string Specify the name of the RA Guard policy to add
ports.
ports port-list Specify the list of ports to add to the policy.
Pluribus Networks
www.pluribusnetworks.com
213
(CLI network-admin@Spine1)>ipv6security-raguard-port-remove
name name-string Specify the name of the RA Guard policy to remove
ports.
ports port-list Specify the list of ports to remove from the policy.
(CLI network-admin@Spine1)>ipv6security-raguard-port-show
name name-string Displays the name of the RA Guard policy.
ports port-list Displays the list of ports.
(CLI network-admin@Spine1)>ipv6security-raguard-vlan-add
name name-string Specify the name of the RA Guard policy to add
VLANs.
vlans vlan-id Specify the VLANs to add to the policy.
(CLI network-admin@Spine1)>ipv6security-raguard-vlan-remove
name name-string Specify the name of the RA Guard policy to remove
VLANs.
vlans vlan-id Specify the VLANs to remove from the policy.
(CLI network-admin@Spine1)>ipv6security-raguard-vlan-show
name name-string Displays the name of the RA Guard policy to add
VLANs.
vlans vlan-id Displays the VLANs to add to the policy.
214
Pluribus Networks
www.pluribusnetworks.com
Administering your Switches and Fabric
Fabric Administration
Displaying Fabric Statistics
More Information About Undo Commands and Transactions
Configuring Logging
Forwarding Log Files to an External Linux Server
Configuring SNMP
Modifying the SNMP Engine ID
Fabric Administration
Using the Fabric Transaction Commands
You can roll back the fabric to a specific fabric transaction number. If a failure occurs on the
fabric, transactions on nodes in the fabric can go out of sync. Once transactions go out of
sync, Netvisor cannot execute further transactions across the scope of local, fabric, or
cluster. Unjoining and rejoining the fabric causes the node to lose the configuration.
As part of a single node transaction recovery, you can roll back the transaction number to a
previous one. If you find multiple nodes out of sync, you must recover each node separately.
If you find that the transaction ID becomes unsynchronized with the rest of the fabric, you
can roll the fabric transaction ID forward on a node.
In the previous example, the switch, CBF-Switch2, became out of sync with the rest of the
fabric. The fabric transaction ID displayed as 327 and the rest of the nodes have a
transaction ID of 328. In this case, you can roll the node, CBF-Switch2, forward to
transaction ID 328. Enter the following command on node CBF-Switch2:
This command produces output when an error occurs during the transaction. If there no
output displays, the transaction has successfully completed.
To display transaction information for CBF-Switch2,use the transaction-show command:
start-time: 03-19,13:46:42
end-time: 03-19,13:46:43
scope: fabric
tid: 33
state: remote-commit
command: --unrecoverable-- vlan-delete id 22
undo-command: --unrecoverable-- vlan-create id 22 nvid a000030:16 scope fabric
name vlan-22 active yes stats vrg 0:0 ports 1-72,128-129,255 untagged-ports
none send-ports 31,41,47-48,51,65-66 active-edge-ports none ports-specified
false flags
----------------------------------------
start-time: 09:36:09
Pluribus Networks
www.pluribusnetworks.com
215
end-time: 09:36:09
scope: fabric
tid: 34
state: remote-commit
command: vlan-create id 35 scope fabric stats ports-specified true
The scope parameter indicates which set of transactions to display as each scope has an
independent set of transactions associated with it. Netvisor uses fabric as the default scope
unless another scope is specified.
You cannot copy and paste commands and undo-commands because they include
information that cannot apply to new commands. Netvisor displays the fields as
informational-only and allow you to see exactly what happens to the configuration when you
roll forward or roll back the transaction ID.
Once you decide which node to modify and the transaction to roll forward or roll back, you
use the transaction-rollforward-to or transaction-rollback-to commands to re-run
the command (roll forward) or undo the command (rollback) on the node. This applies only
to the local node.
Netvisor takes the undo info from the current state on the fabric. So if you enable the port ,
and you try to enable it again, you see the undo-command in the output, since the previous
state also enabled. If you actually disable the port first, and then enable it, you see the
expected undo info in the transaction log.
start-time: 10:05:22
end-time: 10:05:22
scope: local
tid: 20
state: commit
command: port-config-modify port 12 disable
undo-command: port-config-modify port 12 enable
----------------------------------------
start-time: 10:05:48
end-time: 10:05:48
scope: local
tid: 21
state: commit
command: port-config-modify port 12 enable
undo-command: port-config-modify port 12 disable
The transaction undo is not the opposite of the current command, but allows you to go back
to the state before the command was issued. This may be the exact same state as before.
216
Pluribus Networks
www.pluribusnetworks.com
Displaying Fabric Statistics
To display fabric statistics, use the following command:
switch: pleiades23
id: 0
servers: 0
storage: 0
VM: 0
vlan: 0
vxlan: 0
tcp-syn: 229K
tcp-est: 171
tcp-completed: 7.19K
tcp-bytes: 3.53G
udp-bytes: 0
arp: 0
vlan: 0
vxlan: 0
switch: pleiades24
id: 0
servers: 0
storage: 0
VM: 0
vlan: 0
vxlan: 0
tcp-syn: 85.6K
tcp-est: 125
tcp-completed: 11.6K
tcp-bytes: 3.95G
udp-bytes: 0
arp: 0
switch: pleiades25
id: 0
servers: 0
storage: 0
VM: 0
vlan: 0
vxlan: 0
tcp-syn: 179K
tcp-est: 20.9K
tcp-completed: 1.60M
tcp-bytes: 485G
udp-bytes: 0
arp: 0
Pluribus Networks
www.pluribusnetworks.com
217
UDP Destination Port: 23399
This packet is sent from the CPU to the internal port to ensure that the CPU path to the
switch is working and the internal port is up.
Fabric Keepalive
UDP Destination Port: 23394
Point to point UDP fabric keepalive
If these messages don't get through, the fabric node may go to offline state.
Global Discovery
Multicast IP: 239.4.9.3
UDP destination port: 23399
Each node periodically multicasts a message about the fabric. This enables fabric-show
on L2-connected nodes to show available packets and also enables fabric-join name
name. It also enables you to join a fabric over Layer 3 connectivity by specifying an IP
address.
Proxy commands
TCP Destination Port: 23397 SSL
Used for Netvisor OS-to-Netvisor OS communication. Used for internal purposes and also
to implement commands executed on other switches from a local switch.
Status propagation
TCP Destination Port: 23398 SSL
Port changes and vport changes propagated to other nodes in the fabric.
TCP API clients
TCP Destination Port: 23396 SSL
C API clients connect to this port. Disable using admin-service-modify if <mgmt/data>
no-net-api command.
FileSystem replication
TCP Destination Port: 23392 SSL
For ZFS send and ZFS receive messages when replicating file systems across the fabric.
L2 ARP/DMAC miss/Broadcast encapsulation
UDP Destination Port: 23389
These are VXLAN-encapsulated packets sent from CPU to CPU between two L2 connected
switches.
L3 ARP/DMAC miss/Broadcast encapsulation
UDP Destination Port: 23388
These are VXLAN-encapsulated packets sent from CPU to CPU between two L3 connected
switches.
vPORT status
Multicast IP: 239.4.9.4
UDP Destination Port: 23390
vPort updates from hypervisors or hosts in the fabric.
vFlow CPU packets
UDP Destination Port: 23398
218
Pluribus Networks
www.pluribusnetworks.com
These packets are sent point-to-point for vflow-snoop of a fabric-scoped vFlow.
All of these messages must get sent in order to keep an L2 fabric healthy. The multicast
messages do not propagate through routers so Netvisor does not use the messages for L3
fabrics.
fabric-node-show displays information about internal data structures for each node in the
fabric. If Netvisor does not receive no keepalive or other messages from a fabric node for
about 20 seconds, the node is marked as offline.
Anything that prevents keepalive or other kinds of messages from flowing freely between
fabric nodes can cause problems for fabric connectivity.
If the fabric transaction IDs become unsynchronized, use the transaction commands to either
roll forward or back the transaction IDs. See Fabric Administration<TextRegular> on
page 215.
switch: Leaf-
uptime: 1h22m26s
used-mem: 27%
used-swap: 0%
swap-scan: 0
cpu-user: 0%
cpu-sys: 1%
cpu-idle: 98%
The swap-scan output displays the number of scans performed on the swap. A nonzero
number indicates that Netvisor pages memory from the physical memory (RAM) to virtual
memory (disk or swap). A consistently high value indicates that all memory, both physical
and virtual, is exhausted and the system may stop responding.
Configuring Logging
logs all important activities that occur on the switch and fabrics created on them. Netvisor
enables logging by default and viewable using the CLI. You can also configure system logging
to send syslog-formatted messages to other servers configured to receive them as part of
centralized logging and monitoring.
Pluribus Networks
www.pluribusnetworks.com
219
Figure 1: Switch with Syslog Server
220
Pluribus Networks
www.pluribusnetworks.com
Log Type Description
System The system log records error conditions and
conditions of interest. Netvisor has four levels in the
system log:
• critical
• error
• warn
• note
Perror The perror log records messages on standard error
output, describing the last error encountered.
Pluribus Networks
www.pluribusnetworks.com
221
audit 2013-06-04,13:12:18.304740 command 1101 network-admin Command create
vrouter id=b000011:! name=1 scope=fabric vrg=b000011:0 vlans=100
_mgr_id=b00001
Currently, accessing system log information may require assistance from TAC to retrieve the
logs from Netvisor OS. To enable log auditing in Netvisor OS, use the following command
222
Pluribus Networks
www.pluribusnetworks.com
To specify sending the syslog messages in structured format, per RFC5424, add the
message-format option to the configuration.
You can also modify the port that the service listens on to another port. More than one syslog
listening service can be configured and Netvisor sends appropriate syslog messages to each
one.
By default, Netvisor forwards all log messages to syslog servers. To filter the log messages,
use the msg-level option to specify the severity or other options:
You can forward log files to an external Linux server and encrypt them using Transport Layer
Security (TLS) over Transmission Control Protocol (TCP). The command,
admin-syslog-create accepts a new parameter, transport tcp-tls|udp, to add TLS
encryption and you can specify a port number for TCP.
This command creates a Certificate Signing Request (CSR) and places it in the directory
/sftp/export used by Netvisor OS. You must copy and the CSR to the CA server and sign it.
To import the signed certificate to Netvisor OS, you must copy the certificate and the ca.pem
file to /sftp/import directory in Netvisor OS. Then use the following command to import the
files:
Pluribus Networks
www.pluribusnetworks.com
223
CLI network-admin@switch > syslog-tls-cert-import file-ca ca.pem file-cert
my-cert.pem
224
Pluribus Networks
www.pluribusnetworks.com
Displaying Log Counters Information
You can display information about the number of events occurring on the network by using
the log-system-counters-show command:
switch: pleiades24
critical: 0
error: 0
warn: 1061
note: 9
category: event
time: 2014-07-17,07:37:17.466173-07:00
switch: pleiades24
program: nvOSd
pid: 6344
name: mac_ip_changed
code: 11023
event-type: port
: global-default
port: 65
vlan: 200
message: ip address change: mac=50:33:a5:e0:7f:fd ip=172.16.23.7
category: event
time: 2014-07-17,07:37:50.109133-07:00
switch: pleiades24
program: nvOSd
pid: 6344
name: mac_ip_changed
Pluribus Networks
www.pluribusnetworks.com
225
code: 11023
event-type: port
: vlb-web-svr
port: 65
vlan: 200
message: ip address change: mac=50:33:a5:e0:7f:fd ip=172.16.23.1
category: event
time: 2017-05-05,07:42:17.418349-07:00...
category: audit
time: 2017-04-01,14:56:40.763626-07:00
name: user_command
code: 11001
user: network-admin
message: Command "vlan-create id 25
category: audit
time: 2017-04-01,14:56:40.765839-07:00
name: logout
code: 11100
user: network-admin
message: logout
category: audit
time: 2017-04-01,14:56:40.847912-07:00
name: login
code: 11099
user: network-admin
message: login
category: audit
time: 2017-04-01,14:56:40.888363-07:00
name: logout
code: 11100
...
To view system log entries, use the following command:
226
Pluribus Networks
www.pluribusnetworks.com
Displaying Log Counters Information
You can display information about the number of events occurring on the network by using
the log-system-counters-show command:
switch: pleiades24
critical: 0
error: 0
warn: 1061
note: 9
switch: Leaf-
uptime: 1h22m26s
used-mem: 27%
used-swap: 0%
swap-scan: 0
cpu-user: 0%
cpu-sys: 1%
cpu-idle: 98%
The swap-scan output displays the number of scans performed on the swap. A nonzero
number indicates that memory is paged from the physical memory (RAM) to virtual memory
(disk or swap). A consistently high value indicates that all memory, both physical and virtual,
is exhausted and the system may stop responding.
CLI network-admin@Spine1>log-audit-exception-create
CLI network-admin@Spine1>log-audit-exception-delete
Pluribus Networks
www.pluribusnetworks.com
227
pattern pattern-string Specify a regular expression to match
exceptions.
any|read-only|read-write Specify the access type to match exceptions.
CLI network-admin@Spine1>log-audit-exception-show
By default, Netvisor audits every command except for read-only CLI commands and
^/usr/bin/nvmore which is the pager for the Netvisor CLI:
CLI (network-admin@switch) > log-audit-exception-show
switch type pattern access scope
------ ----- ---------------- --------- -----
switch cli read-only local
switch shell ^/usr/bin/nvmore any local
To enable auditing of ALL CLI commands, you can delete the cli/read-only exception:
The new parameters are also available for the role-modify command.
228
Pluribus Networks
www.pluribusnetworks.com
Configuring SNMP
Networks use Simple Network Management Protocol (SNMP) for monitoring the health of
network equipment such as routers, computer equipment and even devices such as UPS.
Netvisor supports SNMP v1, v2, and v3 . The SNMP daemon runs as a service and launches
by using the following command:
This command launches the daemon, sub-agents, and opens the firewall so that remote
queries can reach the daemon.
SNMP Communities
SNMPv1 uses communities as a method of controlling access to information. You can create a
community using the following command:
To create a SNMP community string named, snmp-group, with read-only privileges, use the
following command:
To modify the SNMP community, snmp-group, to read-write, use the following command:
To display information about the SNMP community, snmp-group, use the following command:
Informational Note: Prior to Version 2.6, MD5 was the default authentication protocol. With
Version 2.6, Netvisor OS supports SHA1 and is the default authentication protocol. You must specify MD5
if MD5 authentication is required.
Pluribus Networks
www.pluribusnetworks.com
229
Use the following command to create a user:
To create the user, snmp-admin, with authentication, password m0nk3ys, use the following
command:
priv-password priv
auth password: ********
confirm password: ********
priv password: ******
confirm password: ******
To display information about the SNMP user, use the following command:
To modify the VACM configuration and change no authentication to authentication, use the
following command:
230
Pluribus Networks
www.pluribusnetworks.com
To display information about the VACM configuration, use the snmp-vacm-show command:
switch user-type user-name oid-restrict view auth priv
------ --------- --------- ------------ ---- ---- ----
pleiades24 rouser snmp-user sysContact no no
To delete the VACM user from the SNMP configuration, use the snmp-vacm-delete command:
Supported MIBs
customized MIBs:
IfTable
IfXTable
EntPhySensorTable
EntPhySensorTable
Pluribus Networks
www.pluribusnetworks.com
231
snmp-v3-trap-sink-modify — Used to modify a SNMPv3 trap receiver.
snmp-v3-trap-sink-show — Used to display a SNMPv3 trap receiver.
Topic Feedback
Was this topic useful to you? Please provide feedback to improve the content.
232
Pluribus Networks
www.pluribusnetworks.com
Additional Supported MIBs
MIB Description
Entity-Sensor This module defines Entity MIB extensions for physical
sensors.
The Entity Sensor MIB contains a single group called the
entitySensorValueGroup, which allows objects to
convey the current value and status of a physical sensor.
The entitySensorValueGroup contains a single table,
called the entPhySensorTable, which provides a small
number of read-only objects:
entPhySensorType
This object identifies the type of data units associated with
the sensor value.
entPhySensorScale
This object identifies the (power of 10) scaling factor
associated with the sensor value.
entPhySensorPrecision
This object identifies the number of decimal places of
precision associated with the sensor value.
entPhySensorValue
This object identifies the current value of the sensor.
entPhySensorOperStatus
This object identifies the current operational status of the
sensor (as it's known to the agent).
Pluribus Networks
www.pluribusnetworks.com
233
MIB Description
entPhySensorOperStatus
This object identifies the current operational status of the
sensor (as it's known to the agent).
entPhySensorUnitsDisplay.1 STRING: Temp Outlet. >60
entPhySensorUnitsDisplay.2 STRING: Temp Inlet.
entPhySensorUnitsDisplay.3 STRING: Temp 2
BCM56960.
entPhySensorUnitsDisplay.4 STRING: Temp 3
OptoPHYJ5.
entPhySensorUnitsDisplay.5 STRING: Temp 4
OptoPHYJ9.
entPhySensorUnitsDisplay.6 STRING: Fan1 Inlet.
entPhySensorUnitsDisplay.7 STRING: Fan1 Outlet.
entPhySensorUnitsDisplay.8 STRING: Fan2 Inlet.
entPhySensorUnitsDisplay.9 STRING: Fan2 Outlet.
entPhySensorUnitsDisplay.10 STRING: Fan3 Inlet.
entPhySensorUnitsDisplay.11 STRING: Fan3 Outlet.
entPhySensorUnitsDisplay.12 STRING: Fan4 Inlet.
entPhySensorUnitsDisplay.13 STRING: Fan4 Outlet.
entPhySensorUnitsDisplay.14 STRING: Fan PSUR.
entPhySensorUnitsDisplay.15 STRING: PSUR Temp1.
entPhySensorUnitsDisplay.16 STRING: PSUR Temp2.
entPhySensorUnitsDisplay.17 STRING: AN Temp1.
entPhySensorUnitsDisplay.18 STRING: ROV1 Temp1.
entPhySensorUnitsDisplay.19 STRING: ROV2 Temp1.
entPhySensorUnitsDisplay.20 STRING: OP1 Temp1.
entPhySensorUnitsDisplay.21 STRING: OP2 Temp1.
entPhySensorUnitsDisplay.22 STRING: PS1 Status.
entPhySensorUnitsDisplay.23 STRING: PS2 Status.
entPhySensorUnitsDisplay
This object provides a textual description of the data units
represented by the entPhySensorType and
entPhySensorScale objects.
entPhySensorValueTimeStamp
The object identifies the value of sysUpTime at the time
the agent last updated the information in the entry. This
object is only relevant if the agent uses a polling
implementation strategy, for example, the associated
entPhySensorValueUpdateRate object is greater than
zero.
The RFC and be found here.
234
Pluribus Networks
www.pluribusnetworks.com
MIB Description
Host-Resource Use this MIB in managing host systems. The term `host' is
s construed to mean any computer that communicates with
other similar computers attached to the Internet and that
is directly used by one or more human beings. Although
this MIB does not necessarily apply to devices whose
primary function is communications services, for example,
terminal servers, routers, bridges, monitoring equipment),
such relevance is not explicitly precluded. This MIB
instruments attributes common to all Internet hosts
including, for example, both personal computers and
systems that run variants of Unix. The RFC is found here.
IF The MIB module to describe generic objects for network
interface sub-layers. This MIB is an updated version of the
ifTable for MIB-II, and incorporates the extensions defined
in RFC 1229.
Supported Traps
Pluribus Networks
www.pluribusnetworks.com
235
Trap Name Description Trap Type Trigger
low-disk-space-thresh The threshold Event-based SNMP generates the
old value of trap with
low-disk-space low-disk-space.
in %.
system-usage Monitors Event-based If enabled, SNMP
memory & CPU generates a trap if
usage. system-usage[Total
CPU-sys + user]
space is greater than
threshold. SNMP
checks the output of
the command,
"system-stats-show"
system-usage-thresho system-usage- SNMP generates the
ld threshold system usage trap.
login-failure Monitors login Message-based If enabled, SNMP
failures. generates a trap
when user login with
wrong password.
lacp-status Monitors LACP Message-based If enabled, SNMP
enable or generates a trap
disable. when the LACP state
changes from enable
to disabled or
disabled to enable.
vport-modified Monitors vPort Message-based If enabled, SNMP
modifications. generates a trap
when vPort
modifications occur
on the switch.
stp-port-modified Monitors STP Message-based If enabled, SNMP
port status. generates a trap
when STP port state
is modified using the
command,
switch-local
stp-port-modify
port 1
<block|edge|bpdu|
root-guard>
236
Pluribus Networks
www.pluribusnetworks.com
Trap Name Description Trap Type Trigger
stp-port-state-failed Monitors STP Message-based If enabled, SNMP
port state generates a trap
failures. when STP port state
is modified using the
command,
switch-local
stp-port-modify
port 128 edge
bpdu-guard
mirror-to-cpu Monitors Message-based If enabled, SNMP
mirror-to-cpu generates a trap
configuration. when created a
vlflow using the
command,
vflow-create name
mirror scope local
action copy-to-cpu
and also generates a
trap for perror.log.
link-congestion-detect Monitors Message-based If enabled, SNMP
ed congestion generates a trap
drop at port. indicating a link is
congested.
fabric-node-state-cha Monitors fabric Message-based If enabled, SNMP
nged node states. generates a trap
when the a fabric
node changes state.
stp-new-root Monitors new Event-based If enabled, SNMP
STP root. generates a trap to
monitor a new root
for STP.
stp-topology-changed Monitors STP Event-based If enabled, SNMP
topology generates a trap to
change monitor topology
changes for STP.
interface-up-down Monitors Event-based If enabled, SNMP
vRouter generates a trap for
interfaces. an interface with the
state up or down.
disable-start-stop Monitors Event-based
disable traps
for start and
stop.
fabric-node-state-cha Monitors fabric Event-based If enabled, SNMP
nged node states. generates a trap to
monitor fabric node
state changes.
Pluribus Networks
www.pluribusnetworks.com
237
Trap Name Description Trap Type Trigger
system-usage Monitors Event-based If enabled, SNMP
memory & cpu generates a trap to
usage. monitor memory and
CPU changes.
vrrp-new-master Monitors VRRP Event-based If enabled, SNMP
master generates a trap to
changes. monitor VRRP master
state changes.
Topic Feedback
Was this topic useful to you? Please provide feedback to improve the content.
238
Pluribus Networks
www.pluribusnetworks.com
Using Analytics
Configuring vFlow for Analytics
Redirecting Analytics to a Rear Facing NIC
Using vFlows to Disable Communication
Configuring Mirroring for vFlows and Ports
Port Mirroring to a Remote Host
Managing Traffic Classes with vFlow
Applying CoS Queue Mapping based on Re-Marked DSCP in vFlow
Configuring Burst Size in vFlow for Maximum Bandwidth
Displaying Multiple Objects for Show Commands
Support for Policy-based Routing
Using Application Flows and Statistics
Support for Policy-based Routing
Configuring vFlows in Virtual Wire Mode
Support for TCP Parameters using vFlows
Configuring vFlows with User Defined Fields (UDFs)
Configuring Priority-based Flow Control
Configuring Priority-based Flow Control Port Statistics
About sFlow
Using Wireshark to Analyze Packets in Real Time
Pluribus Networks
www.pluribusnetworks.com
239
Packet capture data is available with switch or fabric scope. The pcap files are stored over
NFS in the following locations:
/net/<ServerSw_Name>/ONVL/global/flow/<Flow_Name>/switch/<Switch_Name>/p
cap
/net/<ServerSw_Name>/ONVL//<_Name>/flow/<Flow_Name>/
switch/<Switch_Name>/pcap
/net/<ServerSw_Name>/ONVL/global/flow/<Flow_Name>/fabric/pcap
/net/<ServerSw_Name>/ONVL//<_Name>/flow/<Flow_Name>/
fabric/pcap
Snooping only works if you use the parameters, copy-to-cpu or to-cpu. The copy-to-cpu
parameter ensures that the data plane forwards the packets and sends a copy to the CPU.
Use this parameter if you want traffic to flow through the switch. The to-cpu parameter
doesn’t forward packets and interrupts traffic on the switch. To snoop all application flow
packets of protocol type TCP, enter the following CLI commands at the prompt:
CLI network-admin@switch > vflow-create name snoop_all scope local proto tcp
action copy-to-cpu
To restrict the flows captured to TCP port 22, SSH traffic, create the following vFlow:
240
Pluribus Networks
www.pluribusnetworks.com
Then use the vflow-snoop command to display the results:
switch: pleiades24, flow: snoop_ssh, port: 41, size: 230, time:
10:56:57.05785917 src-mac: 00:15:17:ea:f8:70, dst-mac: f4:6d:04:0e:77:60,
etype: ip src-ip: 10.9.11.18, dst-ip: 10.9.10.65, proto: tcp src-port: 22,
dst-port: 62356
switch: pleiades24, flow: snoop_ssh, port: 41, size: 118, time:
10:56:57.05922560 src-mac: 00:15:17:ea:f8:70, dst-mac: f4:6d:04:0e:77:60,
etype: ip src-ip: 10.9.11.18, dst-ip: 10.9.10.65, proto: tcp src-port: 22,
dst-port: 62356
If you enable log-packets, the separate pcap files for all switches are available on any switch.
In addition a consolidated pcap file is available that aggregates the packets from all switches
in the entire fabric.
You must reboot the switch in order for the settings to take effect. To ensure that the profile
is available after rebooting, use the vflow-table-show command:
Pluribus Networks
www.pluribusnetworks.com
241
The analytics port is part of all VLANs and is removed from the flood map. When the
connection-stats-setting is enabled to redirect analytics, Netvisor OS receives
information from the switch vPort database. There is no HA (High Availability) impact as this
feature is local to the switch.
The following command specifies the target of analytics traffic on the supported switch:
(CLI network-admin@Spine1)>connection-stats-settings-modify
redirect-analytics-vflow span3
The following command entered through the CLI returns to the default setting of redirecting
the traffic to CPU:
(CLI network-admin@Spine1)>connection-stats-settings-modify
redirect-analytics-vflow none
CLI network-admin@switch > vflow-create name flow3 scope local vlan 99 dst-ip
172.168.24.1 action drop stats enable
Display the statistics for the new flow above as the traffic is dropped:
There are many options available for creating vFlows, and vFlows can be used to shape
traffic, capture statistics, capture flow metadata, capture packets, or manage
communications. The options include:
vlan
in-port
out-port
ether-type
src-mac
src-mac-mask
dst-mac
dst-mac-mask
src-ip
242
Pluribus Networks
www.pluribusnetworks.com
src-ip-mask
dst-ip
dst-ip-mask
src-port
dst-port
dscp
tos
proto
flow-class
uplink-ports
bw-min
bw-max
precedence
action
action-value
no-mirror
mirror
no-process-mirror
process-mirror
no-log-packets
log-packets
packet-log-max
stats
stats-interval
duration
no-transient
transient
vxlan
vxlan-ether-type
vxlan-proto
Pluribus Networks
www.pluribusnetworks.com
243
In a real use case, the command connection-show server-ip 10.9.10.117 was used to
analyze a suspicious connections to server 10.9.10.117:
switch: switch02
vlan: 1
client-ip: 10.9.9.33
server-ip: 10.9.9.107
service: http
dur(s): 0
latency(us): 65
out-bytes: 0
in-bytes: 0
active: yes
switch: switch02
vlan: 1
client-ip: 10.9.9.33
server-ip: 10.9.9.107
service: http
dur(s): 210
latency(us): 7
out-bytes: 48804
in-bytes: 6120
active: yes
switch: switch02
vlan: 1
client-ip: 10.9.9.33
server-ip: 10.9.9.107
service: http
dur(s): 328
latency(us): 30
out-bytes: 48720
in-bytes: 612620
active: yes
View the status of mirroring by entering the following at the CLI command prompt:
244
Pluribus Networks
www.pluribusnetworks.com
CLI network-admin@switch > mirror-show
switch: T6001-ON
direction: bidirection
out-port:
in-port:
mirroring: disable
The parameter out-port is not configured and mirroring is disabled therefore, no data
mirroring can occur.
To modify the mirroring configuration, use the following steps:
1. Use the mirror-modify command to set the output to the span port. However, if there is
more than 10Gb of traffic on ports 1-64, do not execute this command.
mirror-show
switch: T6001-ON
direction: bidirection
out-put: 66
in-port: 1-64
mirroring: enable
To disable the configuration, use the following command:
mirror-show
switch: T6001-ON
direction: bidirection
out-port: 66
in-port: 1-64
mirroring: disable
Pluribus Networks
www.pluribusnetworks.com
245
This feature is related to the existing mirror-create command which mirrors traffic from
any port to a rear facing NIC and uses the parameter option mirror-traffic on the
Netvisor OS-kvm-interface-add command.
The higher the priority number, the higher the priority of the class. To add a vflow class, use
the vflow-class-create command:
This creates a traffic class with a scope of fabric and medium priority.
To add a traffic class to a vFlow, create a vFlow and assign a traffic class. In this case the flow
is for a single IP address:
246
Pluribus Networks
www.pluribusnetworks.com
CLI network-admin@switch > vflow-show name losslessflow layout vertical
switch: aquila12
name: losslessflow
scope: local
type: vflow
vlan: 0
:
in-port:
out-port:
ether-type: 0
src-ip: 10.11.1.10
dst-ip:::
src-port: 0
dst-port: 0
proto: ip
flow-class: lossless
bw-max: 0
pri: 0
action: none
action-value: 0
transient: no
Traffic from IP address 10.11.1.10 now has a very high priority throughout the switch. For a
similar high priority throughout the fabric use scope fabric rather than scope local.
When a TCP session goes through the NPU, and capacity is exceeded, the return traffic with
TCP ACK packets can get dropped from the session. To avoid this, create a flow that matches
the TCP ACK packets and set a higher precedence for it.
Pluribus Networks
www.pluribusnetworks.com
247
dscp-map dscp-map name | none Specify the DSCP map to apply on the flow. Please
reapply if map priorities are updated.
For example, to create a vFlow with a burst size of 12 MB, use the following syntax:
248
Pluribus Networks
www.pluribusnetworks.com
CLI (network-admin@Leaf1)>vflow-show name System-S,System-R
switch name scope type proto tcp-flags precedence action
action-to-ports-value enable
-------- -------- ----- ------ ----- --------- ---------- -----------
--------------------- ------
dorado05 System-S local system tcp syn default copy-to-cpu none
enable
dorado05 System-R local system tcp rst default copy-to-cpu none
enable
Pluribus Networks
www.pluribusnetworks.com
249
Now you configure a vFlow for the routing policy, using the following syntax:
(CLI network-admin@Spine1)>vflow-create name name-string vrouter-name
name-string scope local next-hop-ip gateway-ip-address table-name
System-L3-L4-PBR-1-0
switch: pleiades24
mac: 00:e0:81:e4:02:12
vlan: 200
ip: 100.200.1.3
port: 53
iconns: 80
oconns: 0
ibytes: 0
obytes: 0
total-bytes: 0
last-seen-ago: 4d19h32m23s
switch: pleiades24
mac: 00:12:c0:80:1e:85
vlan: 200
ip: 100.200.1.4
port: 16
iconns: 0
oconns: 70684
ibytes: 578M
obytes: 890M
total-bytes: 1.43G
last-seen-ago: 46s
From the information displayed in the output, you can see statistics for each switch, VLANs,
client and server IP addresses, as well as the services on each connection. Latency and other
information is also displayed.
The latency(us) column displays the running latency measurement for the TCP connection in
microseconds. It indicates end-to-end latency and includes the protocol stack processing for
the connected hosts and all intermediary network hops.
250
Pluribus Networks
www.pluribusnetworks.com
This is not the same latency measurement experience by a packet transiting the switch
port-to-port. The port-to-port latency is platform-dependent and you should refer to the
datasheet for your switch model.
To display specific types of connections, use the additional parameters with the command.
For instance to display VLANs of connections,
To display a summary of traffic statistics for each application service, use the
service-stats-show command.
From the information displayed in the output, you can review each switch, service, and the
number of bytes used by each service.
Pluribus Networks
www.pluribusnetworks.com
251
There, the traffic is managed and then sent back to the switch component.Other actions such
as copy-to-cpu sends the match traffic to the server component where the traffic is managed
and then forwards packets for delivery. In general, the details are managed by Netvisor OS
including fabric scope commands that cause all switches within a fabric to participate in an
operation and then sends the compiled results to the CLI or to log files.
Before you can access the files, you must enable NFS or SFTP access to the log files by using
the admin-service-modify command.
vflow-share-show
switch enable share-path
pleiades24 fab1-global yes pleiades24://fab1-global
pleiades24 fab1-global no pleiades24://fab1-global
pleiades24 fab1-global no pleiades24://fab1-global
pleiades24 fab1-global no pleiades24://fab1-global
pleiades24 fab1-global no pleiades24://fab1-global
You can then access the statistics log files using NFS in the following locations:
For the switch scope, the files are located in
/net/switch-name//-name/flow/flow-name/switch/
switch-name/stats
For the fabric scope, the files are located in
/net/switch-name//-name/flow/flow-name/fabric/
stats
To create a vFLow for example, Host-Agent-Discover, and measure statistics, enter the
following command:
To view all vFlows currently tracked by the switch or fabric, use the vflow-show command:
252
Pluribus Networks
www.pluribusnetworks.com
CLI network-admin@switch > vflow-show
switch: pleiades24
name: Host-Agent-Discover
scope: local
type: system
dst-ip: 224.4.9.6
precedence: 2
action: copy-to-cpu
switch: pleiades24
name: DHCP-client
scope: local
type: system
in-port: 1-68
src-port: 68
proto: udp
precedence: 2
action: copy-to-cpu
switch: pleiades24
name: Host-Agent-Discover
scope: local
type: system
dst-ip: 224.4.9.6
precedence: 2
action: copy-to-cpu
switch: pleiades24
name: DHCP-client
scope: local
type: system
in-port: 1-68
src-port: 68
proto: udp
precedence: 2
action: copy-to-cpu
From the information displayed in the output, you can review the switch, the name of the
vFlow, scope, type of vFlow, destination IP address, precedence, and action for the vFlow.
To display statistics for all vFlows, use the vflow-stats-show command:
To monitor statistics of a vFlow and update every 10 seconds, use the following syntax:
To log persistent records of flow statistics, use the logging parameter and collect statistics
every 10 seconds:
Pluribus Networks
www.pluribusnetworks.com
253
CLI network-admin@switch > vflow-create name monitor-flow scope local
ether-type arp stats log stats-interval 5
You can display the statistics logs for the new flow using the vflow-stats-show command.
To display the statistics for the new vFlow for a switch in the fabric, use the following syntax:
If you omit the switch name, all vFlow statistics for the fabric are displayed.
switch name packets bytes cpu-packets cpu-bytes
------ ---- ------- ----- ----------- ---------
pleiades1 fab_flow1 1.32K 305K 1.29K 291K
pleiades2 fab_flow1 910 256K 884 243K
254
Pluribus Networks
www.pluribusnetworks.com
CLI network-admin@switch > vflow-create name client-flow2 scope fabric bw
flow-class meter bw-max 5g src-ip 192.168.20.1
The error message is generated because the vFlow configurations conflict with each other.
To differentiate between the two flows, assign a different precedence to client-flow2:
You have now created a VRG with the guaranteed bandwidth of 1 Gbps and limited to a
maximum of 2 Gbps. Now, create a vFLow for each IP address:
CLI network-admin@switch > vflow-create name vfl-1 scope fabric vlan 100 src-ip
1.1.1.1
CLI network-admin@switch > vflow-create name vfl-2 scope fabric vlan 100 src-ip
2.2.2.2
CLI network-admin@switch > vflow-create name vfl-3 scope fabric vlan 100 src-ip
3.3.3.3
CLI network-admin@switch > vflow-create name vfl-4 scope fabric vlan 100 src-ip
4.4.4.4
In this example, the specified IP addresses each have a guaranteed bandwidth between 1
Gbps and 2 Gbps.
If you want to specify a subnet, 100.100.100.0/28, and VLAN 53 with maximum bandwidth
of 50 Mbps, use the following syntax:
But later on, you found that sixteen IP addresses were not enough and you needed an
additional 8 with the subnet, 101.101.101.8/29 that require the same bandwidth as the
previous subnet. Use the following syntax:
Pluribus Networks
www.pluribusnetworks.com
255
Then, you discover that 50 Mbps is not sufficient to support the network traffic affected by
the vFlow, and you want to upgrade to 80 Mbps:
256
Pluribus Networks
www.pluribusnetworks.com
You can use the vflow-table-show command to display vFlow tables:
CLI (network-admin@Spine1)> vflow-table-show format all layout vertical
switch: Spine1
name: Egress-Table-1-0
id: a0000d7:1
flow-max: 1024
flow-used: 0
flow-tbl-slices: 1
capability: match-metadata
flow-tbl-bank: Egress
flow-profile: system
switch: Spine1
name: Decap-Table-1-0
id: a0000d7:2
flow-max: 1024
flow-used: 0
flow-tbl-slices: 2
capability: none
flow-tbl-bank: Match-Metadata
flow-profile: vxlan
switch: tac-f64-sw5
name: OpenFlow-L2-L3-1-0
id: a0000d7:3
flow-max: 1024
flow-used: 0
flow-tbl-slices: 7
capability: none
flow-tbl-bank: Match-Metadata
flow-profile: openflow
Pluribus Networks
www.pluribusnetworks.com
257
New Commands for UDF
To create a new UDF, use the following command:
CLI(network-admin@Spine1)>udf-create name u1 scope local offset 10 length 2
header packet-start
CLI(network-admin@Spine1)>udf-delete name u1
CLI(network-admin@Spine1)>udf-show
switch name scope offset length header
------ ---- ----- ------ ------ ------------
k2 u1 local 20 4 packet-start
k2 u2 local 24 4 packet-start
258
Pluribus Networks
www.pluribusnetworks.com
length number-bytes Displays the length in bytes. This is a value
between 1 and 4 bytes.
header Displays the header from where the offset is
packet-start|l3-outer|l3-inner|l4 calculated.
-outer|l4-inner
CLI(network-admin@Spine1)>vflow-show
Pluribus Networks
www.pluribusnetworks.com
259
Assured Forwarding (AF) code points have 4 priority classes, each class has three
code points indicating the drop precedence.
Class1: AF11/12/13 (DSCP 10, 12, 14)
Class2: AF21/22/23 (DSCP 18, 20, 22)
Class3: AF31/32/33 (DSCP 26, 28, 30)
Class4: AF41/42/43 (DSCP 34, 36, 38
260
Pluribus Networks
www.pluribusnetworks.com
The default values are listed in the following dscp-map-pri-map-show output:
CLI (network-admin@Spine1)>dscp-map-pri-map-show name dscp-map1
switch name pri dsmap
------- ---- --- -----------
Spine1 ds2 0 none
Spine1 ds2 1 8,10,12,14
Spine1 ds2 2 16,18,20,22
Spine1 ds2 3 24,26,28,30
Spine1 ds2 4 32,34,36,38
Spine1 ds2 5 40
Spine1 ds2 6 48
Spine1 ds2 7 56
PFC is enabled to both transmit and receive on the selected port. For transmit, Netvisor OS
pauses traffic corresponding to the traffic class indicated in the received PFC frame. For
receive, Netvisor OS generates a PFC frame when a queue corresponding to a traffic class
reaches the pause threshold. Netvisor OS auto-configures parameters such buffer
threshold,and pause timer value. Disabling PFC turns off PFC for receive and transmit,
although the traffic class priority and queue mappings remain.
On switches with a Broadcom Trident II chip, even with ingress admission control enabled (in
lossless mode), by default, only the traffic class or priority group 7 is set up with the memory
management unit (MMU) buffer resources. Packets of all priorities utilize the resources of the
default priority group unless specifically configured. This implies that when enabling a new
priority group for PFC, the buffer configuration is generated and saved in the chip
configuration file, which is read during system initialization for MMU setup. As a result, when
you enable a new priority for PFC, you must restart Netvisor OS. Adding new ports to an
existing priority group setting, for another port or ports, does not require restarting Netvisor
OS.
Up to three priority group buffer settings can be configured on switches in Netvisor OS. If you
attempt to configure more than three, Netvisor OS returns an error message.
Pluribus Networks
www.pluribusnetworks.com
261
To create a new PFC configuration on port 2 with a priority group of 2, use the following
command:
CLI (network-admin@Spine1)>port-pfc-create priority 2 port 1-10
Priority configuration will be effective after restart.
To modify the ports and change them to 11-15, use the following command:
CLI (network-admin@Spine1)>port-pfc-modify priority 2 port 11-15
Priority configuration will be effective after restart.
To delete the configuration, use the following command:
CLI (network-admin@Spine1)>port-pfc-delete priority 2 port 11-15
time date/time: Displays the date and time for statistics collection.
yyyy-mm-ddTHH:mm:ss
start-time date/time: Displays the start date and time for statistics collection.
yyyy-mm-ddTHH:mm:ss
end-time date/time: Displays the end date and time for statistics collection.
yyyy-mm-ddTHH:mm:ss
duration duration: #d#h#m#s Displays the duration for statistics collection.
interval duration: #d#h#m#s Displays the interval between statistics collection.
since-start Displays the statistics since the start time.
262
Pluribus Networks
www.pluribusnetworks.com
older-than duration: #d#h#m#s Displays the statistics older than the specified time.
within-last duration: #d#h#m#s Displays the statistics within a specified time.
port port-list Displays the port list.
About sFlow
Because businesses rely on network services for mission critical applications, small changes
in network usage can impact network performance and reliability. As a result, these changes
can also impact a business’ ability to conduct key business functions and increase the cost of
maintaining network services.
Figure 1: Overview of sFlow
sFlow provides the visibility into network usage and active routes on the network by
providing the data required to effectively control and manage network usage. This ensures
that network services provide a competitive edge to the business.
A few examples of sFlow applications include the following:
Detecting, diagnosing, and fixing network problems
Real-time congestion management
Understanding application mixes such as P2P, Web, DNS
Usage accounting for billing
Pluribus Networks
www.pluribusnetworks.com
263
Audit trail analysis to identify unauthorized network activity and trace sources of
Denial of Service (DoS) attacks
Route profiling and optimizing peers
Trending and capacity planning
sFlow is an open source sampling tool providing constant traffic flow information on all
enabled interfaces simultaneously. sFlow data is sent to a collector that formats the data into
charts and graphs while recording and identifying trends on the network. You can use this
information for troubleshooting a network, perform diagnostics, and analysis of data.
The sFlow agent on the switch samples packets from data flows and forwards headers of the
sample packet to a collector at regular intervals. You can specify the number of packets to
sample from the total packets which is called the sample rate. The packets are stored and
sent to the collector at an interval that you can configure on the switch. This is called the
polling interval. You can sample different types of packets such as frames sent to the CPU or
interfaces of the switch, routed packets, flooded packets, and multicast packets. However,
the following packet types are not sampled by sFlow:
LACP frames
LLDP frames
STP RPDUs
IGMP packets
Ethernet PAUSE frames
Frames with CRC errors
PIM_HELLO packets
Packets dropped by ACLs
Packets dropped as a result of VLAN violations
Routed packets with IP options or MTU violations
264
Pluribus Networks
www.pluribusnetworks.com
CLI network-admin@switch > sflow-create name net-monitor sample-type raw ports
57-59 sample-rate 4096 trunc-length 160 vlan 200
In this example, the IP address of the switch is used as the name of the switch.
Counter Sampling
For counter sampling, also called polling, the sFlow agent periodically polls the hardware
interface statistics registers, counters, in the switch chip for per port statistics, and stores
them in RAM until it is time to send the next message to the sFlow collector. Overall port
statistics such as the number of broadcasts, errors, are collected by the sFlow agent.
The agent then includes the statistics in the sFlow datagrams sent to the sFlow collector
along with the packet sampling information. From these statistics, the sFlow obtains
information about the actual utilization of each port. For instance, information about
broadcast to multicast to unicast rations is captured.
When you configure the agent for counter sampling, it sends an sFlow datagram at intervals
of a second, at most. The datagram contains a snapshot of the counters cached in RAM from
the most recent polling of interface counters.
Packet Sampling
Packet sampling is used to characterize network traffic. If the sFlow agent is configured for
packet sampling, the agent takes copies of random samples of packets forwarded within the
switch CPU and sends them to the switch for processing. The CPU sends a configured portion
of the sampled packet, containing a number of protocol headers and possibly some of the
payload data to the sFlow collector. Random sampling prevents the synchronization of
periodic traffic patterns. On the average, 1 in every N packets is captured and analyzed. The
sampling can apply to ingress and egress frames independently. The rate that the agent
sends datagrams depends on the sampling rate, the traffic rate, and the configured
maximum datagram size. Typically, several samples are included in the datagram.
Pluribus Networks
www.pluribusnetworks.com
265
After gathering packet and counter samples, each sFlow agent creates a packet of the data
and sends it to an sFlow collector in UDP datagrams. The datagrams contain the IP address of
the sFlow collector and the standard UDP destination port number of 6343. Using a
standardized port helps avoid configuration between sFlow agents and collectors. If the sFlow
agent is configured for counter sampling or packet sampling, or both, an sFlow datagram can
contain either interface counters, packet samples, or a mixture of both.
The following table provides information about the contents of sFlow datagrams:
Packet Header Information
Version The sFlow version used on the
network.
IP Address Type An IPv4 or IPv6 address
Source IP Address The IP address of the sFlow agent
Sequence Number The sequence number of the
datagram
System Uptime The length of time that the system
is operational.
Sample Count The number of samples in the
datagram
Ingress Interfaces The ifindex of the switch port
where the packets entered the
agent.
Egress Interfaces The ifindex of the switch port
where the packets exited the
agent.
Sample dataset sFlow-specific parameters:
• Sequence Numbers
• Sampling Rate
• Total Packets available for
sampling
• Number of sampled packets
dropped because there was no
processing resource for them.
Packet Samples Packet sample information and
may contain several samples.
Packet data The sampled data that may
include the packet payload data
and the number on length of
protocol headers. This information
depends on the size of the size, up
to 200 bytes.
Counter Sample Counter statistical information -
fitted in where space permits.
If index The ifindex of the interface related
to the counters.
266
Pluribus Networks
www.pluribusnetworks.com
Packet Header Information
Physical Interface • Speed
Parameters • Duplex mode
• Admin status
• Operational status of the
interface
In Counters • ifInOctets
• ifInUnicastPkts
• ifInMultiPkts
• ifInBroadcastPkts
• ifInDiscards
• ifInErrors
• ifInUnknownProbs
Out Counters • ifOutOctets
• ifOutUcastPkts
• ifOutDiscards
• ifOutErrors
Promiscuous Mode The private VLAN promiscuous
mode of the interface
Ethernet Statistics • Alignment Errors
• FCS Errors
• SQE Errors
• Deferred Transmission
• Internal MAC errors
• Carrier sense errors
• Overlength frame errors
• Symbol errors
Pluribus Networks
www.pluribusnetworks.com
267
To use Wireshark to decode a previously saved packet flow capture file, export the file from
the switch and analyze it with Wireshark.
Informational Note:
The path to a Netvisor switch pcap file has the format:
/net/<ServerSw_Name>/ONVL/global/flow/<Flow_Name>/<Switch_Na
me>/pcap
mkfifo /tmp/pcap
268
Pluribus Networks
www.pluribusnetworks.com
Figure 2:Wireshark Capture Options
Informational Note:
The mkfifo command used in this task is a standard feature of
Linux-like operating systems, including MacOS. For Windows platforms,
you may need to install the GNU CoreUtils package available at
http://gnuwin32.sourceforge.net/packages/coreutils.htm.
Pluribus Networks
www.pluribusnetworks.com
269
Internet Protocol Flow Information Export (IPFIX)
IPFIX (Internet Protocol Flow Information Export) is an IETF protocol created by the need for
a common, universal standard of export for Internet Protocol flow information from routers,
probes and other devices that are used by mediation systems, accounting/billing systems
and network management systems to facilitate services such as measurement, accounting
and billing. The IPFIX standard defines how IP flow information is to be formatted and
transferred from an exporter to a collector.
IPFIX Architecture
A Metering Process collects data packets at an Observation Point, optionally filters them and
then aggregates information about these packets. Using the IPFIX protocol, an Exporter then
sends this information to a Collector. Exporters and Collectors are in a many-to-many
relationship as one Exporter can send data to many Collectors and one Collector can receive
data from many Exporters.
IPFIX Protocol
IPFIX considers a flow to be any number of packets observed in a specific timeslot and
sharing a number of properties such as same source, same destination, or same protocol.
Using IPFIX, devices such as routers can send information to a central monitoring station
about their view of a potentially larger network.
IPFIX is a push protocol, meaning each sender periodically sends IPFIX messages to
configured receivers without any interaction by the receiver.
The actual makeup of data in IPFIX messages is largely up to the sender. IPFIX introduces
the makeup of these messages to the receiver with the help of special Templates. The sender
also accepts user-defined data types in the messages, so the protocol is freely extensible and
can adapt to different scenarios.
IPFIX prefers the Stream Control Transmission Protocol (SCTP) as the transport layer
protocol, but also allows the use of the Transmission Control Protocol (TCP) or User Datagram
Protocol (UDP). SCTP provides some of the same service features of both TCP and UDP. SCTP
is message-oriented like UDP and ensures reliable, in-sequence transport of messages with
congestion control like TCP. It differs from the two protocols when providing multi-homing
and redundant paths to increase resilience and reliability.
IPFIX Collector
Flow collectors are able to dynamically read the templates exported by flow capable
hardware and store the flows being sent. Most IPFIX collectors provide reporting on the data
and some even provide behavior analysis to help detect network threats.
On each Pluribus switch, Netvisor OS embeds a real-time non-sampled IPFIX metering
process, and each switch can be configured as an IPFIX exporter. In addition, Netvisor OS
supports exporting to multiple collectors.
270
Pluribus Networks
www.pluribusnetworks.com
Bidirectional Flow Support
Pluribus Networks supports bidirectional flows for IPFIX in that every flow record contains the
attribute of both endpoints. Many flow analysis tasks benefit from association of the
upstream and downstream flows of a bidirectional communication, for example, separating
answered and unanswered TCP requests, calculating round trip times, and more. Metering
processes that are not part of an asymmetric routing infrastructure, especially those
deployed at a single point through which bidirectional traffic flows, are well positioned to
observe bidirectional flows (Biflows). In such topologies, the total resource requirements for
Biflow assembly are often lower if the Biflows are assembled at the measurement interface
as opposed to the IPFIX Collector. The IPFIX Protocol requires only information model
extensions to be complete as a solution for exporting Biflow data.
Information Elements
Information in messages of the IPFIX protocol is modeled in terms of Information Elements
of the IPFIX information model.
All Information Elements specified for the IPFIX protocol has the following properties defined:
name - a unique and meaningful name for the Information Element
elementId - A numeric identifier of the Information Element. If this identifier is used
without an enterprise identifier, then it is globally unique, and the list of allowed
values is administered by IANA. It is used for compact identification of an Information
Element when encoding Templates in the protocol.
description - The semantics of this Information Element. It describes how the
Information Element is derived from the Flow or other information available to the
observer. Information Elements of dataType string or octetArray that have length
constraints such as fixed length, minimum and/or maximum length, state these
constraints in the descriptions.
dataType - One of the types listed in DataTypes or registered in the IANA "IPFIX
Information Element Data Types" subregistry. The type space for attributes is
constrained to facilitate implementation. The existing type space encompasses most
primitive types used in modern programming languages, as well as some derived
types such as ipv4Address, that are common to this domain.
status - The status of the specification of this Information Element. Allowed values
are current and deprecated. All newly defined Information Elements are in the current
status.
enterpriseId - You can define Information Elements without registering them with
IANA, for example, for enterprise internal purposes. For such Information Elements,
the Information Element identifier is not sufficient when the Information Element is
used outside the enterprise. If specifications of enterprise-specific Information
Elements are made public and if enterprise-specific identifiers are used by the IPFIX
protocol outside the enterprise, then the enterprise-specific identifier is globally
unique by combining it with an enterprise identifier. Valid values for the enterpriseId
are defined by IANA as Structure of Management Information (SMI) network
management private enterprise numbers, defined at [IANA-PEN]
Pluribus Networks
www.pluribusnetworks.com
271
Abstract Data Types Supported by IPFIX
Abstract data types unsigned8, unsigned16, unsigned32, unsigned64, signed8,
signed16, signed32, and signed64 are integral data types. These data type semantics can
be further specified, for example, by totalCounter, deltaCounter, identifier, or flags.
Abstract Data Type Description
unsigned8 Represents a non-negative integer value in the range
of 0 to 255.
unsigned16 Represents a non-negative integer value in the range
of 0 to 65535.
unsigned32 Represents a non-negative integer value in the range
of 0 to 4294967295.
unsigned64 Represents a non-negative integer value in the range
of 0 to 18446744073709551615.
signed8 Represents an integer value in the range of -128 to
127.
signed16 Represents an integer value in the range of -32768 to
32767.
signed32 Represents an integer value in the range of
-2147483648 to 2147483647.
signed64 Represents an integer value in the range of
-9223372036854775808 to 9223372036854775807
float32 Corresponds to an IEEE single-precision 32-bit
floating-point type
float64 Corresponds to an IEEE single-precision 64-bit
floating-point type
boolean Represents a binary value. The only allowed values are
true and false.
macAddress Represents a MAC-48 address
octetArray Represents a finite-length string of octets.
string Represents a finite-length string of valid characters
from the Unicode coded character set. Unicode
incorporates ASCII and the characters of many other
international character sets.
dateTimeSeconds Represents a time value expressed with second-level
precision.
dateTimeMilliseconds Represents a time value expressed with
millisecond-level precision.
dateTimeMicrosecond Represents a time value expressed with
microsecond-level precision
dateTimeNanoseconds Represents a time value expressed with
nanosecond-level precision.
ipv4Address Represents an IPv4 address.
272
Pluribus Networks
www.pluribusnetworks.com
Abstract Data Type Description
ipv6Address Represents an IPv6 address.
basicList Supports structured data export.
subTemplateList Supports structured data export.
subTemplateMultiList supports structured data export.
Pluribus Networks
www.pluribusnetworks.com
273
Abstract Data Type Description
identifier An integral value that serves as an identifier. Specifically,
mathematical operations on two identifiers (aside from
the equality operation) are meaningless. For example,
Autonomous System ID 1 * Autonomous System ID 2 is
meaningless. Identifiers MUST be one of the signed or
unsigned data types.
flags An integral value that represents a set of bit fields. Logical
operations are appropriate on such values, but other
mathematical operations are not. Flags MUST always be
of an unsigned data type.
274
Pluribus Networks
www.pluribusnetworks.com
Data Field Eleme Name Description Data Units Data
nt ID Type Type
Semant
ic
cur-state 6 tcpControlBits TCP control bits unsigne flags
observed for the d16
packets of this
Flow. This
information is
encoded as a bit
field. For each
TCP control bit,
there is a bit in
this set. The bit
is set to 1 if any
observed packet
of this Flow has
the
corresponding
TCP control bit
set to 1. The bit
is cleared to 0
otherwise.
src-port 7 sourceTransport The source port unsigne identifie
Port identifier in the d16 r
transport header.
For the transport
protocols UDP,
TCP, and SCTP,
this is the source
port number in
the respective
header. This field
MAY also be used
for future
transport
protocols with
16-bit source
port identifiers.
src-ip 8 sourceIPv4Addr The IPv4 source ipv4Add default
ess address in the IP ress
packet header.
Pluribus Networks
www.pluribusnetworks.com
275
Data Field Eleme Name Description Data Units Data
nt ID Type Type
Semant
ic
src-switch-po 10 ingressInterfac The index of the unsigne identifie
rt e IP interface d32 r
where packets of
this Flow are
received. The
value matches
the value of
managed object
'ifIndex'. Note
that ifIndex
values are not
assigned
statically to an
interface and
that the
interfaces may
be renumbered
every time the
device's
management
system is
re-initialized,
dst-port 11 destinationTran The destination unsigne identifie
sportPort port identifier in d16 r
the transport
header. For the
transport
protocols UDP,
TCP, and SCTP,
this is the
destination port
number in the
respective
header. This field
MAY also be used
for future
transport
protocols
with 16-bit
destination port
identifiers.
dst-ip 12 destinationIPv4 The IPv4 ipv4Add default
Address destination ress
address in the IP
packet header.
276
Pluribus Networks
www.pluribusnetworks.com
Data Field Eleme Name Description Data Units Data
nt ID Type Type
Semant
ic
dst-switch-po 14 egressInterface The index of the unsigne identifie
rt IP interface d32 r
where packets of
this Flow are
sent. The value
matches the
value of
managed object
'ifIndex' .
Note that ifIndex
values are not
assigned
statically to an
interface and
that the
interfaces may
be renumbered
every time the
device's
management
system is
re-initialized.
Pluribus Networks
www.pluribusnetworks.com
277
Data Field Eleme Name Description Data Units Data
nt ID Type Type
Semant
ic
41 exportedMessa The total number unsigne messag totalCo
geTotalCount of IPFIX d64 es unter
Messages the
Exporting
Process has sent
since the
Exporting
Process
(re-)initialization
to a particular
Collecting
Process. The
reported number
excludes the
IPFIX Message
that carries the
counter value. If
this Information
Element is sent
to a particular
Collecting
Process, then by
default, it
specifies the
number of IPFIX
Messages sent to
the Collecting
Process.
278
Pluribus Networks
www.pluribusnetworks.com
Data Field Eleme Name Description Data Units Data
nt ID Type Type
Semant
ic
The total number
of Flow Records
that the
Exporting
Process has sent
as Data Records
since the
Exporting
Process
(re-)initialization
to a particular
Collecting
Process. The
reported number
excludes Flow
Records in the
IPFIX Message
with the counter
value.
If this
Information
Element is sent
to a particular
Collecting
Process, then by
default, it
specifies the
number of Flow
Records sent to
the process.
src-mac 56 sourceMacAddr The IEEE 802 macAdd default
ess source MAC ress
address field.
vlan 58 vlanId Virtual LAN unsigne identifie
identifier d16 r
associated with
ingress interface.
dst-mac 80 destinationMac The IEEE 802 macAdd default
Address source MAC ress
address field.
started-time 150 flowStartSecon The absolute dateTim second default
ds time stamp of eSecond s
the first packet of s
this Flow.
Pluribus Networks
www.pluribusnetworks.com
279
Data Field Eleme Name Description Data Units Data
nt ID Type Type
Semant
ic
ended-time 151 flowEndSecond The absolute dateTim second default
s time stamp of eSecond s
the last packet of s
this Flow.
216 unsigne identifie
d16 r
217 unsigne identifie
d16 r
218 unsigne packets totalCo
d64 unter
219 unsigne packets totalCo
d64 unter
222 unsigne packets totalCo
d64 unter
obytes 231 InitiatorOctets The total number unsigne octets deltaCo
of Layer 4 d64 unter
payload bytes in
a flow from the
initiator. The
initiator is the
device triggering
the session
creation, and
remains the
same for the life
of the session.
ibytes 232 responderOctet The total number unsigne octets deltaCo
s of Layer 4 d64 unter
payload bytes in
a flow from the
responder. The
responder is the
device that
replies to the
initiator, and
remains the
same for the life
of the session.
0x01 239 unsigne identifie
d8 r
src-switch-po 252 unsigne unsigne
rt d32 d32
280
Pluribus Networks
www.pluribusnetworks.com
Data Field Eleme Name Description Data Units Data
nt ID Type Type
Semant
ic
dst-switch-po 253 egressPhysicalI The index of a unsigne identifie
rt nterface networking d32 r
device's physical
interface for
example, a
switch port,
where the flow
packets are sent.
ether-type 256 ethernetType The Ethernet unsigne identifie
type field of an d16 r
Ethernet frame
identifying the
MAC client
protocol carried
in the payload.
257 unsigne identifie
d8 r
258 dateTim millisec default
eSecond onds
s
259 unsigne identifie
d16 r
260 dateTim second default
eSecond s
s
261 dateTim second default
eSecond s
s
262 octetArr default
ay
349 octetArr default
ay
350 string default
Pluribus Networks
www.pluribusnetworks.com
281
Data Field Eleme Name Description Data Units Data
nt ID Type Type
Semant
ic
351 layer2Segment The identifier of a unsigne identifie
Layer 2 network d64 r
segment in an
overlay network.
The most
significant byte
identifies the
Layer 2 network
overlay network
encapsulation
type:
• 0x00 reserved
• 0x01 VxLAN
• 0x02 NVGRE
The three lowest
significant bytes
hold the value of
the Layer 2
overlay network
segment
identifier.
For example:
• a 24 bit
segment ID
VXLAN Network
Identifier (VNI)
• a 24 bit Tenant
Network
Identifier (TNI)
for NVGRE
368 unsigne identifie
d32 r
369 unsigne identifie
d32 r
401 unsigne octets deltaCo
d64 unter
282
Pluribus Networks
www.pluribusnetworks.com
Configuring IPFIX
To configure IPFIX from the CLI, you must have a host IP address as the destination for the
IPFIX collector. Netvisor OS uses port 9090 by default, and the default transport protocol
type is TCP.
To enable the IPFIX service, use the command, ipfix-service-modify enable. You can
also set the collection interval using this command. To set the collection interval to one hour,
use the following syntax:
Pluribus Networks
www.pluribusnetworks.com
283
Configuring vCenter
vCenter Connection Service
Configuring a vCenter Service
Auto Provisioning for vCenter
Automatic Link Aggregation on EXSi-facing Ports for vCenter
Support for VLAN Alarms in vCenter
284
Pluribus Networks
www.pluribusnetworks.com
Pluribus Networks recommends checking the status of the connection. To check the status of
the connection, use the connection-show command. If the connection status shows an error
message with the state as "enabled”, then you should first disable the connection and then
enable it to restart the connection service.
Pluribus Networks
www.pluribusnetworks.com
285
Configuring a vCenter Service
To create a vCenter service, use the vcenter-connection-create command:
286
Pluribus Networks
www.pluribusnetworks.com
CLI network-admin@switch > vcenter-connection-show
vlans
-----------
20-30,33-40
20-30,33-40
lacp-individual status
--------------- -----------
none up,PN-other
Pluribus Networks
www.pluribusnetworks.com
287
CLI (network-admin@Leaf1) > port-show port 42,44 format all
port bezel-port vnet hostname status
---- ---------- ---- -------- ---------------------------------------
42 42 up,PN-other,LLDP,trunk,LACP-PDUs,vlan-up
44 44 up,PN-other,LLDP,trunk,LACP-PDUs,vlan-up
rswitch rem-ip rem-mac lport config trunk
----------------- ----------------- ------ ------ --------
2987 :: 00:00:00:00:00:00 42 fd,10g auto-129
2987 :: 00:00:00:00:00:00 44 fd,10g auto-129
288
Pluribus Networks
www.pluribusnetworks.com
CLI network-admin@switch > vcenter-connection-show
connected-time vlans
-------------------------------- -----
connected at 2017-03-02 20:14:55 10-15
connected at 2017-03-02 20:14:57 10-15
If you configure a VM with a VLAN that is not in the 10-15 VLAN range, then an alarm is
triggered.
Pluribus Networks
www.pluribusnetworks.com
289
Configuring Open Virtual Switch
Open vSwitch is a virtual switch that enables network automation, while supporting standard
management interfaces and protocols, like NetFlow. Open vSwitch also supports distribution
across multiple physical servers.
In an Open vSwitch implementation, a database server and a switch daemon are used. The
OVSDB protocol is used in a control cluster, along with other managers and controllers, to
supply configuration information to the switch database server. Controllers use OpenFlow to
identify details of the packet flows through the switch. Each switch may receive directions
from multiple managers and controllers, and each manager and controller can direct multiple
switches.
5. Configure OVSDB:
290
Pluribus Networks
www.pluribusnetworks.com
Configuring the interface as data or management depends on the location of the controller,
on the data network or the management network.
If the controller is on a Layer 3 network several hops away, use openvswitch-modify to
configure a gateway IP address. This is required in order for the configuration to work
properly.
6. Add the hardware VTEP manager:
A VXLAN tunnel automatically establishes between the local and remote hardware and
software VTEPs.
If you connects to VMware NSX controllers, you must use SSL or TLS to securely connect
with the hardware VTEP.
Self-signed Certificate
To generate a self-signed certificate use the cert-create command. This command creates
a server certificate and self-signs it.
Pluribus Networks
www.pluribusnetworks.com
291
CLI Commands
These commands allow you to manage TLS certificates.
To create a server certificate that self-signs., use the cert-create command:
292
Pluribus Networks
www.pluribusnetworks.com
CLI network-admin@switch > cert-import name name-string file-server
file-server-string [container zone name][file-ca file-ca-string]file-inter
file-inter-string]
----------------------------------------------------------------
-----BEGIN CERTIFICATE REQUEST-----
MIICnDCCAYQCAQEwVzELMAkGA1UEBhMCdXMxCzAJBgNVBAgMAmNhMQswCQYDVQQH
DAJtcDELMAkGA1UECgwCcGwxDTALBgNVBAsMBGVuZ2cxEjAQBgNVBAMMCXBsdXJp
YnVzMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMrE6Jowg0VKUw2M
NlL8vp1N8dYE/UL5pvu8FKYWgwG7tC2fjHunZCI0XmssFtZysQul/r9nk+edA5tt
0zIWRmqTB60wnWmzl6uGymeAsC9OSm0ZHFc9zZfUxKjRM/n1dOri3Pw/rODbCjM9
qwO5hsvZc/c1o3ajYFrj1yMlKDIiPW1td1VTpc5TL6wCwnDM697Yb9oQ0cbLKTDl
w5AjQSgJK29rLUl8ptAZXIUkeendpE4MCYrl6Hd+ziOJHXncj65MJyfANTZMrtGD
IJD3m+JsKZt882vMw3AZ3C9WEuE0OZrbabGBHqVKARik2qFhu2bGjlbuj/M6TOf5
Jj1WROUCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4IBAQCh1YhXRNwkwmw3FVH4H0Xi
rczy0FkyHkdSbIUIf+6n3qroRpBpcEdrx8fREyiw8hLUks9OcUlT+nSshsWIitI7
R5dcFlyo5HUVjqQQVMlSq3j4fM9XE8y8KRMZ3mfLXRTmuFPxbBuE3ZGjlBSLnBgK
ODqHF1gVa4u7l9mO3TRXczLQiAPaw38/kxEwkh4erJp4jjXf8K0h9JMGvYONYWeI
1PbiZpjIWDLNbg6sKqqrPAxEAjzGNMgNPIMXRepmEmnC/BaLVA04noZran8LRLNp
Id41o3TnlXiAodF/Mc7H5fI1hYf0YzWDSfz3PNufn6Dusu5M2ma7jtWlEdBW8huH
-----END CERTIFICATE REQUEST-----
Pluribus Networks
www.pluribusnetworks.com
293
CLI network-admin@switch > cert-show [cert-type ca|intermediate|server]
[subject subject-string] [issuer issuer-string] [serial-number
serial-number-number] [valid-from valid-from-string] [valid-to
valid-to-string] [country country-string] [state state-string] [city
city-string] [organization organization-string] [organizational-unit
organizational-unit-string] [common-name common-name-string] [ name
name-string] [container/zone name]
294
Pluribus Networks
www.pluribusnetworks.com
Appendix A - Acknowledgments for Open Source Software
The Pluribus Networks Netvisor Command Line Interface (CLI) used the following Open Source Software:
bean.js
(bean.js):
bean.js - copyright Jacob Thornton 2011
https://github.com/fat/bean
MIT License
special thanks to:
dean edwards: http://dean.edwards.name/
dperini: https://github.com/dperini/nwevents
the entire mootools team: github.com/mootools/mootools-core
Bonzo: DOM Utility (c) Dustin Diaz 2011
https://github.com/ded/bonzo
License MIT
d3v2
(d3v2):
Copyright (c) 2012, Michael Bostock
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following
disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided with the distribution.
The name Michael Bostock may not be used to endorse or promote products derived from this software without
specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
d3v2
(d3v2):
TERMS OF USE - EASING EQUATIONS
Pluribus Networks
www.pluribusnetworks.com
295
Open source under the BSD License.
Copyright 2001 Robert Penner
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following
disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
disclaimer in the documentation * and/or other materials provided with the distribution.
Neither the name of the author nor the names of contributors may be used to endorse or promote products derived
from this software without specific * prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"* AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
DataTables
(DataTables):
@summary DataTables
@description Paginate, search and sort HTML tables
@version 1.9.4
@file jquery.dataTables.js
@author Allan Jardine (www.sprymedia.co.uk)
@contact www.sprymedia.co.uk/contact
@copyright Copyright 2008-2012 Allan Jardine, all rights reserved.
This source file is free software, under either the GPL v2 license or a BSD style license, available at:
http://datatables.net/license_gpl2
http://datatables.net/license_bsd
This source file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.
For details please refer to: http://www.datatables.net
(Envision)
Envision.js
(c) 2012 Carl Sutherland, Humble Software
Distributed under the MIT License
Source: http://www.github.com/HumbleSoftware/envisionjs
296
Pluribus Networks
www.pluribusnetworks.com
Homepage: http://www.humblesoftware.com/envision
excanvas
(excanvas.js):
Filament Group modification note:
This version of excanvas is modified to support lazy loading of this file. More info here:
http://pipwerks.com/2009/03/12/lazy-loading-excanvasjs/
Copyright 2006 Google Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and limitations under the License.
FloodLight
Copyright 2012, Big Switch Networks, Inc.
Originally created by David Erickson, Stanford University
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for
the specific language governing permissions and limitations under the License
Flotr2
Flotr2 (c) 2012 Carl Sutherland
MIT License
Special thanks to:
Flotr: http://code.google.com/p/flotr/ (fork)
Flot: https://github.com/flot/flot (original fork)
g.Raphael
g.Raphael 0.5 - Charting library, based on Raphaël
Copyright (c) 2009 Dmitry Baranovskiy (http://g.raphaeljs.com)
Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.
Pluribus Networks
www.pluribusnetworks.com
297
GRUB
GRUB -- GRand Unified Bootloader
Copyright (C) 1999,2000,2001,2002,2004 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
GSON
Copyright (C) 2008 Google Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
"AS IS" BASIS, ITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and limitations under the License.
DNS/DHCP
Copyright (c) 2004-2013 by Internet Systems Consortium, Inc. ("ISC")
Copyright (c) 1995-2003 by Internet Software Consortium
Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted,
provided that the above copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Internet Systems Consortium, Inc.
950 Charter Street
Redwood City, CA 94063
<[email protected]>
https://www.isc.org
JIT
Copyright (c) 2011 Sencha Inc. - Author: Nicolas Garcia Belmonte (http://philogb.github.com/)
298
Pluribus Networks
www.pluribusnetworks.com
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit
persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
jquery.js
jQuery JavaScript Library v1.4.3
http://jquery.com/
Copyright 2010, John Resig
Dual licensed under the MIT or GPL Version 2 licenses.
http://jquery.org/license
Includes Sizzle.js
http://sizzlejs.com/
Copyright 2010, The Dojo Foundation
Released under the MIT, BSD, and GPL Licenses.
Date: Thu Oct 14 23:10:06 2010 -0400
jQuery UI
Pluribus Networks
www.pluribusnetworks.com
299
jquery.cookie.js
jQuery Cookie plugin
Copyright (c) 2010 Klaus Hartl (stilbuero.de)
Dual licensed under the MIT and GPL licenses:
http://www.opensource.org/licenses/mit-license.php
http://www.gnu.org/licenses/gpl.html
jquery.hotkeys.js
jQuery Hotkeys Plugin
Copyright 2010, John Resig
Dual licensed under the MIT or GPL Version 2 licenses.
Based upon the plugin by Tzury Bar Yochay:
http://github.com/tzuryby/hotkeys
Original idea by:
Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/
jquery.validate.min.js
Query Validation Plugin 1.8.1
http://bassistance.de/jquery-plugins/jquery-plugin-validation/
http://docs.jquery.com/Plugins/Validation
Copyright (c) 2006 - 2011 Jörn Zaefferer
Dual licensed under the MIT and GPL licenses:
http://www.opensource.org/licenses/mit-license.php
http://www.gnu.org/licenses/gpl.html
JSTL
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
The contents of this file are subject to the terms of either the GNU General Public License Version 2 only ("GPL") or
the Common Development and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain a copy of the License at
https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html or packager/legal/LICENSE.txt. See the License for the
specific language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each file and include the License file at
packager/legal/LICENSE.txt.
GPL Classpath Exception:
Oracle designates this particular file as subject to the "Classpath" exception as provided by Oracle in the GPL Version
2 section of the License file that accompanied this code.
300
Pluribus Networks
www.pluribusnetworks.com
Modifications:
If applicable, add the following below the License Header, with the fields enclosed by brackets [] replaced by your
own identifying information:
"Portions Copyright [year] [name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or only the GPL Version 2, indicate your decision
by adding "[Contributor] elects to include this software in this distribution under the [CDDL or GPL Version 2]
license." If you don't indicate a single choice of license, a recipient has the option to distribute your version of this
file under either the CDDL, the GPL Version 2 or to extend the choice of license to its licensees as provided above.
However, if you add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright holder.
This file incorporates work covered by the following copyright and permission notice:
Copyright 2004 The Apache Software Foundation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and limitations under the License.
jstree
jsTree 1.0-rc3
http://jstree.com/
Copyright (c) 2010 Ivan Bozhanov (vakata.com)
Licensed same as jquery - under the terms of either the MIT License or the GPL Version 2 License
http://www.opensource.org/licenses/mit-license.php
http://www.gnu.org/licenses/gpl.html
$Date: 2011-02-09 01:17:14 +0200 (ср, 09 февр 2011) $
$Revision: 236 $
Start Copyright text (libedit 3.0)
Copyright (c) 1992, 1993
The Regents of the University of California. All rights reserved.
This code is derived from software contributed to Berkeley by Christos Zoulas of Cornell University.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following
disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided with the distribution.
Pluribus Networks
www.pluribusnetworks.com
301
3. Neither the name of the University nor the names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
(log4j
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the
NOTICE file distributed with this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file
except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and limitations under the License.
(pciutils-3.1.10):
The PCI Utilities -- Declarations
Copyright (c) 1997--2008 Martin Mares <[email protected]>
Can be freely distributed and used under the terms of the GNU GPL.
qtip 2.0
qTip2 - Pretty powerful tooltips - v2.0.0 - 2012-10-03
http://craigsworks.com/projects/qtip2/
Copyright (c) 2012 Craig Michael Thompson; Licensed MIT, GPL
raphael 2.1.0
Raphaël 2.1.0 - JavaScript Vector Library
Copyright © 2008-2012 Dmitry Baranovskiy (http://raphaeljs.com)
Copyright © 2008-2012 Sencha Labs (http://sencha.com)
Licensed under the MIT (http://raphaeljs.com/license.html) license.
Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
the License.
You may obtain a copy of the License at //
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
302
Pluribus Networks
www.pluribusnetworks.com
See the License for the specific language governing permissions and limitations under the License.
Eve 0.4.2 - JavaScript Events Library
Author Dmitry Baranovskiy (http://dmitry.baranovskiy.com/)
Rickshaw v1.1.2
Adapted from https://github.com/Jakobo/PTClass */
Copyright (c) 2005-2010 Sam Stephenson
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit
persons to whom the Software is furnished to do so, subject to the following conditions:
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Based on Alex Arnell's inheritance implementation.
section: Language
class Class
Manages Prototype's class-based OOP system.
Refer to Prototype's web site for a [tutorial on classes and
inheritance](http://prototypejs.org/learn/class-inheritance).
science.js 1.7.0
Copyright (c) 2011, Jason Davies
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following
disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided with the distribution.
The name Jason Davies may not be used to endorse or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JASON DAVIES BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Pluribus Networks
www.pluribusnetworks.com
303
sizzle
Copyright (c) 2009, John Resig
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following
disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of the <organization> nor the names of its contributors may be used to endorse or promote
products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY John Resig ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
tcl 8.5.9
This software is copyrighted by the Regents of the University of California, Sun Microsystems, Inc., Scriptics
Corporation, ActiveState Corporation and other parties. The following terms apply to all files associated with the
software unless explicitly disclaimed in individual files.
The authors hereby grant permission to use, copy, modify, distribute, and license this software and its
documentation for any purpose, provided that existing copyright notices are retained in all copies and that this
notice is included verbatim in any distributions. No written agreement, license, or royalty fee is required for any of
the authorized uses. Modifications to this software may be copyrighted by their authors and need not follow the
licensing terms described here, provided that the new terms are clearly indicated on the first page of each file where
they apply.
IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL,
INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION,
OR ANY DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION
TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
GOVERNMENT USE: If you are acquiring this software on behalf of the U.S. government, the Government shall have
only "Restricted Rights" in the software and related documentation as defined in the Federal Acquisition Regulations
(FARs) in Clause 52.227.19 (c) (2). If you are acquiring the software on behalf of the Department of Defense, the
software shall be classified as "Commercial Computer Software" and the Government shall have only "Restricted
Rights" as defined in Clause 252.227-7013 (b) (3) of DFARs. Notwithstanding the foregoing, the authors grant the
U.S. Government and others acting in its behalf permission to use and distribute the software in accordance with
the terms specified in this license.
304
Pluribus Networks
www.pluribusnetworks.com
tcllib 1.13
This software is copyrighted by Ajuba Solutions and other parties.
The following terms apply to all files associated with the software unless explicitly disclaimed in individual files.
The authors hereby grant permission to use, copy, modify, distribute, and license this software and its
documentation for any purpose, provided that existing copyright notices are retained in all copies and that this
notice is included verbatim in any distributions. No written agreement, license, or royalty fee is required for any of
the authorized uses.
Modifications to this software may be copyrighted by their authors and need not follow the licensing terms
described here, provided that the new terms are clearly indicated on the first page of each file where they apply.
IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL,
INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION,
OR ANY DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION
TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
GOVERNMENT USE: If you are acquiring this software on behalf of the U.S. government, the Government shall have
only "Restricted Rights" in the software and related documentation as defined in the Federal Acquisition Regulations
(FARs) in Clause 52.227.19 (c) (2). If you are acquiring the software on behalf of the Department of Defense, the
software shall be classified as "Commercial Computer Software" and the Government shall have only "Restricted
Rights" as defined in Clause 252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the authors grant the
U.S. Government and others acting in its behalf permission to use and distribute the software in accordance with
the terms specified in this license.
tclreadline 2.1.0
Copyright (c) 1998 - 2000, Johannes Zellner <[email protected]>
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following
disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of Johannes Zellner nor the names of contributors to this software may be used to endorse or
promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Pluribus Networks
www.pluribusnetworks.com
305
UI Widgets
The MIT License
Copyright (c) 2010 Filament Group, Inc
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Underscore.js v1.1.7
Underscore.js 1.1.7
(c) 2011 Jeremy Ashkenas, DocumentCloud Inc.
Underscore is freely distributable under the MIT license.
Portions of Underscore are inspired or borrowed from Prototype,
Oliver Steele's Functional, and John Resig's Micro-Templating.
For all details and documentation:
http://documentcloud.github.com/underscore
Underscore.js v1.1.7
Underscore.js v1.1.7
Marvell version (hxps 2.6 and above):
(c), Copyright 2008-2013, Marvell International Ltd. (Marvell)
This code contains confidential information of Marvell.
No rights are granted herein under any patent, mask work right or copyright of Marvell or any third party. Marvell
reserves the right at its sole discretion to request that this code be immediately returned to Marvell.
306
Pluribus Networks
www.pluribusnetworks.com
This code is provided "as is". Marvell makes no warranties, expressed, implied or otherwise, regarding its accuracy,
completeness or performance.
Pluribus Networks
www.pluribusnetworks.com
307