Skip to content

Commit

Permalink
Merge branch '511-content' into stage
Browse files Browse the repository at this point in the history
  • Loading branch information
cumulusAnia committed Sep 6, 2024
2 parents 5f3244e + 14ac919 commit 48a7517
Show file tree
Hide file tree
Showing 2 changed files with 224 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ If you intend to run this service within a {{<link url="Virtual-Routing-and-Forw
{{< tabs "TabID15 ">}}
{{< tab "NVUE Commands ">}}

To enable sFlow:

```
cumulus@switch:~$ nv set system sflow state enabled
cumulus@switch:~$ nv config apply
Expand Down Expand Up @@ -51,29 +53,30 @@ To configure sFlow:
- Set the sFlow sampling rate.
- Set the polling interval.
- Provide the IP address and interface of the sFlow agent.
- Configure the sFlow policer rate and policer burst.

Cumulus Linux provides different sampling rate configurations. The value represents the sampling ratio; for example, if you specify a value of 400, SFlow samples one in every 400 packets.

| Sampling Rate | Default Value | Description |
| Sampling Rate | Default Value | Description |
| ------------- | ------------- | ----------- |
| `default` | 400 | The Default sampling rate for ports with no speed or application with no sampling setting. |
| `speed-100m` | 100 | The sampling rate on a 100Mbps port. |
| `speed-1g` | 1000 | The sampling rate on a 1Gbps port. |
| `speed-10g` | 10000 | The sampling rate on a 10Gbps port. |
| `speed-40g` | 40000 | The sampling rate on a 40Gbps port. |
| speed-50g | 50000 | The sampling rate on a 50Gbps port. |
| speed-100g | 100000 | The sampling rate on a 100Gbps port. |
| speed-200g | 200000 | The sampling rate on a 200Gbps port. |
| speed-400g | 400000 | The sampling rate on a 400Gbps port. |
| speed-800g | 800000 | The sampling rate on a 800Gbps port. |
| `speed-50g` | 50000 | The sampling rate on a 50Gbps port. |
| `speed-100g` | 100000 | The sampling rate on a 100Gbps port. |
| `speed-200g` | 200000 | The sampling rate on a 200Gbps port. |
| `speed-400g` | 400000 | The sampling rate on a 400Gbps port. |
| `speed-800g` | 800000 | The sampling rate on a 800Gbps port. |

{{%notice note%}}
Some collectors require each source to transmit on a different port, others listen on only one port. Refer to the documentation for your collector for more information.
{{%/notice%}}

### Configure Designated Collectors

{{< tabs "TabID28 ">}}
{{< tabs "TabID79 ">}}
{{< tab "NVUE Commands ">}}

Specify the IP address, UDP port number, and interface for the designated collectors. The port number and interface are optional; If you do not specify a port number, Cumulus Linux uses the default port 6343.
Expand All @@ -86,7 +89,7 @@ cumulus@switch:~$ nv set system sflow collector 192.0.2.200 interface eth0
cumulus@switch:~$ nv config apply
```

Configure the sflow sampling rate in number of packets if you do not want to use the default rate, and the polling interval in seconds.
Configure the sFlow sampling rate in number of packets if you do not want to use the default rate, and the polling interval in seconds.

The following example polls the counters every 20 seconds and samples one in every 40000 packets for 40G interfaces:

Expand All @@ -99,7 +102,7 @@ cumulus@switch:~$ nv config apply
{{< /tab >}}
{{< tab "Linux Commands ">}}

Edit the `/etc/hsflowd.conf` file to set up the collectors, sampling rates, and polling interval in seconds, then restart the `hsflowd` service with the `sudo systemctl start hsflowd` c                                             ommand.
Edit the `/etc/hsflowd.conf` file to set up the collectors, sampling rates, and polling interval in seconds, then restart the `hsflowd` service with the `sudo systemctl start hsflowd` command.

The following example polls the counters every 20 seconds, samples 1 of every 40000 packets for 40G interfaces, and sends this information to a collector at 192.0.2.100 on port 6343 and to another collector at 192.0.2.200 on interface eth0.

Expand Down Expand Up @@ -140,7 +143,7 @@ cumulus@switch:~$ sudo systemctl start hsflowd

Provide the IP address or prefix, or the interface for the sFlow agent.

{{< tabs "TabID138 ">}}
{{< tabs "TabID146 ">}}
{{< tab "NVUE Commands ">}}

The following example configures the sFlow agent prefix to 10.0.0.0/8:
Expand All @@ -159,24 +162,135 @@ cumulus@switch:~$ nv config apply
{{< /tab >}}
{{< tab "Linux Commands ">}}

To configure the IP address for the sFlow agent, configure one of the following in the `/etc/hsflowd.conf` file (following the recommendations in the {{<exlink url="https://sflow.net/host-sflow-linux-config.php" text="sFlow documentation">}}):
To provide the IP address or prefix for the sFlow agent, edit the `/etc/hsflowd.conf` file to set the `agent.CIDR` parameter, then restart the `hsflowd` service with the `sudo systemctl start hsflowd` command.

```
cumulus@switch:~$ sudo nano /etc/hsflowd.conf
...
sflow {
agent.CIDR = 10.0.0.0/8
}
```

```
cumulus@switch:~$ sudo systemctl start hsflowd
```

To provide an interface for the sFlow agent, edit the `/etc/hsflowd.conf` file to set the `agent` parameter, then restart the `hsflowd` service with the `sudo systemctl start hsflowd` command.:

```
cumulus@switch:~$ sudo nano /etc/hsflowd.conf
...
sflow {
agent = eth0
}
```

```
cumulus@switch:~$ sudo systemctl start hsflowd
```

{{< /tab >}}
{{< /tabs >}}

### Configure sFlow Policer Rate and Burst Size

You can limit the number of sFlow samples per second and the sample burst size per second that the switch sends.

The default number of sFlow samples and default sample size is 16384. You can specify a value between 0 and 16384.

The following example sets the number of sFlow samples to 800 and the sample size to 900:

{{< tabs "TabID183 ">}}
{{< tab "NVUE Commands ">}}

```
cumulus@switch:~$ nv set system sflow policer rate 8000
cumulus@switch:~$ nv set system sflow policer burst 9000
cumulus@switch:~$ nv config apply
```

{{< /tab >}}
{{< tab "Linux Commands ">}}

Edit the `/etc/cumulus/datapath/traffic.conf` file to change the `sflow.rate` and `sflow.burst` parameters, then reload `switchd` with the `sudo systemctl reload switchd.service` command.

```
cumulus@switch:~$ sudo nano /etc/cumulus/datapath/traffic.conf
# Set sflow/sample ingress cpu packet rate and burst in packets/sec
# Values: {0..16384}
sflow.rate = 8000
sflow.burst = 9000
```

```
cumulus@switch:~$ sudo systemctl reload switchd.service
```

{{< /tab >}}
{{< /tabs >}}

## Interface Configuration

By default, sFlow is enabled on interfaces that are operationally UP. To disable sFlow on an interface:

{{< tabs "TabID216 ">}}
{{< tab "NVUE Commands ">}}

```
cumulus@switch:~$ nv set interface swp1 sflow state disabled
cumulus@switch:~$ nv config apply
```

To enable sFlow on an interface, run the `nv set interface <interface> sflow state enabled` command.

{{< /tab >}}
{{< tab "Linux Commands ">}}

By default, sFlow is enabled on interfaces that are operationally UP. To disable sFlow on a specific interface, edit the `/etc/cumulus/switchd.conf` file and set the `interface.<interface>.sflow.enable` parameter to `FALSE`:

- The agent CIDR. For example, `agent.cidr = 10.0.0.0/8`. The IP address must fall within this range.
- The agent interface. For example, if the agent is using eth0, select the IP address for this interface.
```
cumulus@switch:~$ sudo nano /etc/cumulus/switchd.conf
interface.swp1.sflow.enable = FALSE
```

To check the agent IP, run the `grep agentIP /etc/hsflowd.auto` command.
To enable sFlow on an interface, set the `interface.<interface>.sflow.enable` parameter to `TRUE`.

{{< /tab >}}
{{< /tabs >}}

## Configure sFlow to Collect Dropped Packets
To configure the sFlow sample rate on an interface.

{{< tabs "TabID243 ">}}
{{< tab "NVUE Commands ">}}

```
cumulus@switch:~$ nv set interface swp1 sflow sample-rate 100000
cumulus@switch:~$ nv config apply
```

{{< /tab >}}
{{< tab "Linux Commands ">}}

Edit the `/etc/cumulus/switchd.conf` file and set the `interface.<interface-id>.sflow.sample_rate.ingress` parameter:

```
cumulus@switch:~$ sudo nano /etc/cumulus/switchd.conf
interface.swp1.sflow.sample_rate.ingress = 100000
```

{{< /tab >}}
{{< /tabs >}}

## Monitor Dropped Packets

You can configure sFlow to monitor dropped packets in software or hardware.

{{< tabs "TabID171 ">}}
{{< tabs "TabID268 ">}}
{{< tab "NVUE Commands ">}}

The following example configures sFlow to monitor dropped packets in software:

```
cumulus@switch:~$ nv set system sflow dropmon sw
cumulus@switch:~$ nv config apply
Expand Down Expand Up @@ -207,11 +321,103 @@ Restart the `hsflowd` service with the `sudo systemctl start hsflowd` command.

For information on configuring various sFlow visualization tools, read this [knowledge base article]({{<ref "/knowledge-base/Configuration-and-Usage/Monitoring/Configure-and-Use-sFlow-Visualization-Tools" >}}).

## Show sFlow Configuration

To show all sFlow configuration on the switch:

```
cumulus@switch:~$ nv show system sflow
operational applied
----------------- ----------- ----------
State enabled
poll-interval 30
[collector] 10.10.10.1
sampling-rate
default 400
speed-100m 100
speed-1g 1000
speed-10g 10000
speed-25g 25000
speed-40g 40000
speed-50g 50000
speed-100g 100000
speed-200g 200000
speed-400g 400000
Speed-800g 800000
agent
ip 10.0.2.15
interface eth0 eth0
policer
rate 1638
burst 1638
```

To show sFlow collector configuration:

```
cumulus@switch:~$ nv show system sflow collector
Ip Port
---------------------------------
192.0.2.100 6343
192.0.2.200 6344
```

To show the sFlow sampling rate configuration:

```
cumulus@switch:~$ nv show system sflow sampling-rate
default 400
speed-100m 100
speed-1g 1000
speed-10g 10000
Speed-25g 25000
speed-40g 40000
speed-50g 50000
speed-100g 100000
speed-200g 200000
speed-400g 400000
Speed-800g 800000
```

To show the current sFlow polling interval:

```
cumulus@switch:~$ nv show system sflow poll-interval
poll-interval 30
```

To show sFlow agent configuration:

```
cumulus@switch:~$ nv show system sflow agent:
10.0.0.5
```

To show the number of samples per second and the sample burst size per second that the switch sends out:

```
cumulus@switch:~$ nv show system sflow policer
----------------------
Rate 16384
Burst 16384
```

To show sFlow configuration on a specific interface:

```
cumulus@switch:~$ nv show interface swp1 sflow
----------------------
sample-rate 100000
state enabled
```

## Considerations

Cumulus Linux does not support sFlow egress sampling.

## Related Information

- {{<exlink url="https://sflow.net/host-sflow-linux-config.php" text="sFlow documentation">}}):
- {{<exlink url="http://www.sflow.org/products/collectors.php" text="sFlow Collectors">}}
- {{<exlink url="http://en.wikipedia.org/wiki/SFlow" text="sFlow Wikipedia page">}}
4 changes: 2 additions & 2 deletions content/cumulus-linux-511/Whats-New/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ This document supports the Cumulus Linux 5.11 release, and lists new platforms,
- SN5400 - syncE
- SN5400 - ITU-T
- NVUE
- {{<link url="DHCP-Snooping" text="DHCP snooping">}}
- {{<link url="DHCP-Snooping" text="DHCP snooping commands">}}
- {{<link url="Link-Layer-Discovery-Protocol" text="Commands to disable LLDP">}}
- {{<link url="Resource-Diagnostics/#disable-lldp" text="Command to show ASIC resources">}} (`cl-resource-query` equivalent)
- SFlow
- {{<link url="Monitoring-System-Statistics-and-Network-Traffic-with-sFlow" text="sFlow commands">}}
- `nv show interface <interface> link stats` command includes operational state change date and time
- net show interface swX details for dom and optical info for the pluggables
- L1-show equivalent
Expand Down

0 comments on commit 48a7517

Please sign in to comment.