NetFlow i interface ID
 

W danych eksportowanych o przepływach zawarta jest informacja na temat interfejsu wejściowego i wyjściowego. W poprzednich artykułach widać było, iż wartość ta jest pewną liczbą. Jest to tak zwany ifIndex (Interface Index), którym identyfikowany jest każdy interfejs w systemie (fizyczny i logiczny). ifIndex jest obiektem drzewa MIB-II (ang. Management Information Base) protokołu SNMP (ang. Simple Network Management Protocol).


Zainteresowanych zbieraniem danych o ruchu oraz jego analizą zachęcamy do zapoznania się z Cisco Stealthwatch.


Wartość ta została początkowo zdefiniowana w RFC 1213. Zgodnie z nim, każdemu interfejsowi jest przyznawana unikalna wartość z przedziału od 1 do ifNumber, gdzie ifNumber określał aktualną ilość interfejsów w systemie. Wartość ta pozostaje bez zmian do czasu kolejnej reinicjalizacji systemu.

O ile interfejsy fizyczne są wbudowane lub nieczęsto zmieniane, to pojawia się coraz więcej zastosowań interfejsów logicznych. Sprawia to, iż ilość ich nie tylko rośnie, ale także dynamicznie się zmienia. Przydział numerów ifIndex zgodnie z RFC 1213 stał się zatem problematyczny, gdyż nowy interfejs mógł odziedziczyć numer poprzedniego, co prowadziło do złej interpretacji danych przez interfejsy zarządzające i monitorujące sieć. Aby wyjść temu problemowi na przeciw, powstał dokument RFC 2863, który porzucił wymóg zamkniętego przedziału od 1 do ifNumber.

Popatrzmy na interfejsy, jakie posiada typowy router mniejszej sieci. Poza dwoma interfejsami GigabitEthernet, mamy kilka podinterfejsów do obsługi różnych podsiecipołączeń IPsec VPN Remote Access oraz interfejs tunel na potrzeby IPsec VPN LAN-to-LAN do zdalnej lokalizacji i interfejs wydzwaniany na potrzeby PPPoE, którym nawiązywane jest połączenie do sieci Internet. Nie można zapomnieć o ew. interfejsach Loopback, tych które powstają po konfiguracji dodatkowych usług, jak NAT, czy innych związanych z architekturą danej platformy i jej dodatkowych modułów/interfejsów.

Router# show snmp mib ifmib ifindex 
GigabitEthernet0/1.41: Ifindex = 9
Virtual-Access2: Ifindex = 16
GigabitEthernet0/1: Ifindex = 3
Tunnel0: Ifindex = 6
Virtual-Access4: Ifindex = 18
Virtual-Template2: Ifindex = 14
Dialer1: Ifindex = 8
GigabitEthernet0/1.701: Ifindex = 11
GigabitEthernet0/1.816: Ifindex = 13
Loopback0: Ifindex = 5
Embedded-Service-Engine0/0: Ifindex = 1
Null0: Ifindex = 4
Virtual-Access1: Ifindex = 15
GigabitEthernet0/0: Ifindex = 2
Virtual-Access3: Ifindex = 17
NVI0: Ifindex = 7
GigabitEthernet0/1.800: Ifindex = 12
GigabitEthernet0/1.700: Ifindex = 10
Router#

W zależności od platformy, numery ifIndex niektórych interfejsów mogą być zawsze stałe, a na niektórych po reinicjalizacji systemu mogą ulegać zmianie. Stąd wcześniej warto się upewnić co do tego zachowania na wykorzystywanych przez nas platormach. Aby wymusić zachowywanie stałych numerów dla posiadanych przez urządzenie interfejsów, należy skorzystać z poniższego polecenia.

Router(config)# snmp-server ifindex persist

W wyniku tego polecenia numery interfejsów będą zapisywane w pliku nvram:/ifIndex-table, dzięki czemu będą zawsze takie same.


Zapraszamy do kontaktu drogą mailową This email address is being protected from spambots. You need JavaScript enabled to view it. lub telefonicznie +48 797 004 932.