Szerencsére minden beállítható, de kizárólag SNMP-n keresztül, a konfiguráláshoz szükség lesz SNMP írási jogra az eszközünkhöz. Ez már önmagában is elég érdekes koncepció, tulajdonképpen olyan, mintha valaki valamit elfelejtett volna az OS fejlesztése alatt, de a dologba sikerült még egy csavart is tenniük a fejlesztőknek: ha bekonfiguráltuk a megfelelő SNMP OID-eken keresztül az sFlow-t, az akkor sem fog örökké futni, van ugyanis az sFlow destination értékek között egy folyamatosan csökkenő "Timeout" paraméter is, ami azt mutatja, hogy hány másodpercig fog még az OS adatokat küldeni az adott sFlow collector számára. A Timeout maximális értéke "10000000" szekundum, vagyis legkésőbb 115 naponként újra be kell állítani a switchet, különben befejezi a collectorral a kommunikációt. Azon pedig igazán nem érdemes csodálkozni, hogy a beállításokat a switch elfelejti újrainduláskor: lehet hozzá barkácsolni mindenféle szkripteket, nyilván célszerű ezt a feladatot ízlés szerint egy napi/heti/havi cronjobbal megoldani, és rendszeres időközönként megnövelni a "Timeout" értéket is.
Ennyi bevezető után pedig következzen egy egyszerű shellszkript, ami egy I.10.101-es OS verziót futtató HP 2824-es 20-as portján beállítja az sFlow-t a 10.10.10.10:9996-os collectorhoz:
#!/bin/sh
# collector: IP hexában
snmpset -v1 -cpublic 10.3.2.2 1.3.6.1.4.1.14706.1.1.4.1.6.1 x 0a0a0a0a
sleep 1
# collector: port decimálisan
snmpset -v1 -cpublic 10.3.2.2 1.3.6.1.4.1.14706.1.1.4.1.7.1 i 9996
sleep 1
# collector owner info
snmpset -v1 -cpublic 10.3.2.2 1.3.6.1.4.1.14706.1.1.4.1.2.1 s sFlow_collector
sleep 1
# hány mp-ig fusson az sflow agent a switchen (ez a max ~115 nap)
snmpset -v1 -cpublic 10.3.2.2 1.3.6.1.4.1.14706.1.1.4.1.3.1 i 10000000
sleep 1
# sampling: minden 4096. packet a 20-as porton (a .1 előtt az OID legvégén)
snmpset -v1 -cpublic 10.3.2.2 1.3.6.1.4.1.14706.1.1.5.1.4.11.1.3.6.1.2.1.2.2.1.1.20.1 i 4096
sleep 1
# polling: 20 mp a 20-as porton (a .1 előtt az OID legvégén)
snmpset -v1 -cpublic 10.3.2.2 1.3.6.1.4.1.14706.1.1.6.1.4.11.1.3.6.1.2.1.2.2.1.1.20.1 i 20
sleep 1
# port sflow enable a 20-as porton
snmpset -v1 -cpublic 10.3.2.2 1.3.6.1.4.1.14706.1.1.5.1.3.11.1.3.6.1.2.1.2.2.1.1.20.1 i 1
exit
Ha minden klappol, akkor valami ilyesmi lesz a "show sflow all" kimenete:
HP2824# sh sflow all
sflow agent
Version : 1.3;HP;I.10.101
Agent Address : 10.11.12.13
sflow destination
sflow : Enabled
Datagrams Sent : 4935
Destination Address : 10.10.10.10
Receiver Port : 9996
Owner : sFlow_collector
Timeout (seconds) : 9996908
Max Datagram Size : 1400
Datagram Version Support : 5
sflow sampling-polling
sflow destination Enabled
Port | Sampling Dropped | Polling
| Enabled Rate Header Samples | Enabled Interval
----- + ------- -------- ------ ---------- + ------- --------
1 No 0 128 0 Yes 20
2 No 0 128 0 Yes 20
3 No 0 128 0 Yes 20
4 No 0 128 0 Yes 20
5 No 0 128 0 Yes 20
6 No 0 128 0 Yes 20
7 No 0 128 0 Yes 20
8 No 0 128 0 Yes 20
9 No 0 128 0 Yes 20
10 No 0 128 0 Yes 20
11 No 0 128 0 Yes 20
12 No 0 128 0 Yes 20
13 No 0 128 0 Yes 20
14 No 0 128 0 Yes 20
15 No 0 128 0 Yes 20
16 No 0 128 0 Yes 20
17 No 0 128 0 Yes 20
18 No 0 128 0 Yes 20
19 No 0 128 0 Yes 20
20 Yes 4096 128 0 Yes 20
21 No 0 128 0 Yes 20
22 No 0 128 0 Yes 20
23 No 0 128 0 Yes 20
24 No 0 128 0 Yes 20