2-) Netflow Version 5
******************


Kavramları ve Detayları bir topology çizerek anlatacağım.


Topology-Netflow.jpg



Burda PC miz internette gezen kişimiz olacak.
R2 ise Router umuz ve Exporter diyebiliriz.
Ve FLOW oluşturup Netflow Collector a gönderecek.
Netflow Collector ise üzerinde PRTG yüklü bir bilgisayar.

Şimdi tekrar hatırlayalım.

BİR FLOW u oluşturan FIELD ler nelerdi ?
  1. Source IP
  2. Destination IP
  3. Source Port
  4. Destination Port
  5. Protocol Type
  6. ToS
  7. Input Ifindex ( Hangi interface den girdiği bilgisi
Şimdi burda bir uyarı yapmam gerekecek.
Normalde aklımıza şu gelir : Demekki bizim Router bu 7 bilgiyi kullanıp FLOW oluşturacak ve COLLECTOR a gönderecek.

HAYIR.
Bunlardan başka bilgilerde gönderebilir.

Yani PACKET COUNT diye bir bilgi gönderebilir.
Yani FLOW daki PACKET sayısı.
Ya da BYTE COUNT diye bilgi gönderebilir.
Yani bu FLOW ne kadar BYTE dan oluşmuş.

Yanlız bunlar FLOW u oluşturan ASIL FIELD lar değildirler.
FLOW un yanında bedavadan gönderilen EK BİLGİLER dir.
FLOW u FLOW yapan yine yukardaki 7 FIELD dır.

Bu 7 FIELD den biri değişirse, artık İKİNCİ BİR FLOW oluşturulur.

FLOW u FLOW yapan ASIL FIELD larda KEY FIELD denir.
Yanından extra gönderilen EK FIELD lara ise NON-KEY FIELD denir.



Ayrıca Input Ifindex dan bahsetmek istiyorum.
SNMP interface ler için bir sayı verir.
Snmp Makalesi detaylı olarak daha önce anlatıldı.

Bu sayıları kullanarak onlarla iletişime geçer.


Örneğin ben evde kullandığım Cisco cihazıma şu komutu girdim :

Kod:
MCyagli#show snmp mib ifmib ifindex
Sep  6 16:30:31: %SYS-5-CONFIG_I: Configured from console by console
ATM0: Ifindex = 1
Ethernet0: Ifindex = 2
Dialer1: Ifindex = 15
gibi bilgiler verdi.
FLOW u oluşturan 7 değerden biriside
Input Ifindex idi.
İşte bu numaraları alır.


Konfigurasyon yapmaya kodlarımızı görelim,
böylece kavramları da tartışmaya devam edelim.



Kod:
R2#

CONF T
SNMP-SERVER IFINDEX PERSIST
Bu komutu girmemin sebebi şudur,
Router arada bir reboot falan olursa
bu interfacelere verdigi sayılar değişebilir,
onun için ne veriyorsa sabit kalsın diye girdik.


Kod:
CONF T
IP FLOW-EXPORT VERSION 5 ( Komutun ne olduğu açık )
IP FLOW-EXPORT DESTINATION 23.0.0.3 9996 ( Komutun ne olduğu açık )
KOntrol edelim :


Kod:
R2#sh ip flow  export
Flow export v5 is enabled for main cache
    Destination(1)  23.0.0.3 (9996)
TAMAMDIR.

Devam edelim.

Kod:
IP FLOW-CACHE TIMEOUT ACTIVE 1 ( Bir Dakika )
IP FLOW-CACHE TIMEOUT INACTIVE 10  ( 10 Saniye )
IP FLOW-CACHE ENTRIES 4096

Kod:
INT FA0/0
IP FLOW INGRESS

Bunları açıklamamız lazım.
Çünkü bunların anlamını bilmeden,
Netflow ayarı yapıp ben neden PRTG de bişi göremiyorum diyen bir sürü kişi var.

Öncelikle

Kod:
R2#sh ip cache flow
IP Flow Switching Cache, 278544 bytes
  0 active, 4096 inactive, 0 added
  0 ager polls, 0 flow alloc failures
  Active flows timeout in 1 minutes
  Inactive flows timeout in 10 seconds
FLOW ların geldiği bir CACHE vardır.
YUkarda girdiğimiz 4096 ile kaç tane FLOW alabileceğini belirledik. Burası açık.

Bir FLOW un ACTIVE yada INACTIVE olması durumu vardır.
Yani X den Y ye sürekli PING atıyorsanız bu FLOW ACTIVE dir
Artık PING atma işlemi durmuşsa INACTIVE dir .


Normalde ( default olarak ) bir FLOW eger ACTIVe ise tam 30 dakika boyunca CACHE de tutulur!!!
SONRA COLLECTOR a gönderilir !
Onun için ben bu degeri 1 Dakika yaptım.

Ve eger bir FLOW INACTIVE ise yani şuan durmuş ise default olarak 15 saniye tutulur CACHE de sonra COLLECTOR a gönderilir.
Ben bu degeri 10 yaptım.

Onun için hemen gidip COLLECTOR a bakınca FLOW göreceğini düşünmek yanlış olur.

Ve AKLINIZDA olsun HER FLOW un kendi ACTIVE ve INACTIVE timeout u vardır doğal olarak.


INTERFACE altında girdiğimiz komut ise

IP FLOW INGRESS -> bu interface den içeri giren demektir.
birde IP FLOW EGRESS komutu var. Ancak Version 5 de çalışmaz.
Version 5 sadece Cisco Cihazımıza GİREN Flow larla ilgilenir.

Önceden IP ROUTE-CACHE FLOW diye bir komut varmış.
Hala kullanılır. Etkisi ise IP FLOW INGRESS ile aynıdır.
Artı olarak hem MAIN interface de hemde SUB INTERFACE lerde
NETFLOW u aktif eder. Ancak ben yeni komut " IP FLOW INGRESS"
i kullanıcam.

Kontrol edelim hangi interface de NETFLOW çalışıyor.

Kod:
R2#show ip flow interface
FastEthernet0/0
  ip flow ingress

tamamdır...

Şimdi PC mizden mesela bir PING atalım R2 ye, böylece bir paket girsin.
acaba R2 miz NETFLOW COLLECTOR a nasıl bir paket göndeerecek.

Bu arada WIRESHARK kullanıcam.


Kod:
PC#ping 12.0.0.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 12.0.0.2, timeout is 2 seconds:
!!!!!

yaptım.

Ve R2 ile Netflow Collector arasını Wireshark ile inceledim.

Ping gönderince bir FLOW oluştu.

Ve bu FLOW 10 saniye ( inactive oldugu için )
CACHe de durdu ve COLLECTOR
a gitti.

Ayrıca ACtive olsaydı 1 dakika sonra giderdi.

Bu arada şunuda ekleyeyim eğer CACHE dolmuş ise bu TIMEOUT ları takmaz, direk gönderir.

Ayrıca eger FLOW mesela TCP bir FLOW ise FIN veya RST mesajları iletişimin bittiğini belirleyeceğinden bunlarda hemencecik COLLECTOR a gonderilir.

Önce ROUTER a bakayım CACHE de mi ?

Kod:
R2#sh ip cac flo | b SrcIf
SrcIf         SrcIPaddress    DstIf         DstIPaddress    Pr SrcP DstP  Pkts
Fa0/0         12.0.0.1        Local         12.0.0.2        01 0000 0800     5
10 saniye bekleyelim.

Şimdi bakalım neler var Wiresharkda :

V5-Wireshark.jpg

Burda KEY ve NON-KEY FIELD ler görülebilir.


İşte bu şekilde COLLECTOR a FLOW ları gönderir.
Ve bu bilgiler COLLECTOR a gidince bize grafiklerle istatistik bilgilerini gösterir.
Bu arada NON-KEY FIELD lerde işimize yarayabilir tabiki...

Ayrıca her ne kadar CACHE den bu bilgi gitmiş olsada, CACHE de küçük bir istatistik tutulur...

Mesela bir kaç kez PING attım sonra...

Kod:
R2#sh ip cac flo | b Protocol
Protocol         Total    Flows   Packets Bytes  Packets Active(Sec) Idle(Sec)
--------         Flows     /Sec     /Flow  /Pkt     /Sec     /Flow     /Flow
ICMP                 4      0.0         5   100      0.0       0.3      10.4
Total:               4      0.0         5   100      0.0       0.3      10.4
4 Tane FLOW geçmiş bu CACHE den


bunları sileribiliriz..

Kod:
R2#cle ip flow stats
komutu ile ...


Aklımıza şu gelebilir :

Dünya kadar paket giriyor Router a , yazık mı değil.
Bu baya bir YÜK demektir diye düşünebiliriz.

Onun için INTERFACE den giren her paketi inceleyip CACHE e atması problem olabilir.

Onun için biz bunu biraz FILTRELEYELİM !

FILTERING
_________



Öncelikle INTERFACE altıdaki IP FLOW INGRESS komutunu silicem.
Çünkü TÜM PACKET leri incele ve FLOW yapıp CACHE e at demektir.

Kod:
CONF T
INT FA0/0
NO IP FLOW INGRESS

Şimdi şöyle bir konfigurassyon yapıcam :

Kod:
CONF T
FLOW-SAMPLER-MAP CISCOTR
MODE RANDOM ONE-OUT-OF 10

INT FA0/0
FLOW-SAMPLE CISCOTR

Kısaca CISCOTR diye bir Sampler oluşturdum.
SAMPLE zaten ÖRNEK demek İngilizce.
Ve Randomize olarak 10 packet den 1 ni İNCELE dedim.
Bunu da Interface e uyguladım.

KOntrol edelim :

Kod:
R2#show flow-sampler

 Sampler : ciscotr, id : 1, packets matched : 0, mode : random sampling mode
  sampling interval is : 10

Hemen PC den 100 tane PING gonderdim...


Kod:
PC#ping 12.0.0.2 repeat 100
Type escape sequence to abort.
Sending 100, 100-byte ICMP Echos to 12.0.0.2, timeout is 2 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Wireshark a gidip baktım ve BİR FLOW gördüm,
içinde 10 PACKET var

MQC ile Daha detaylı FILTRELEME YAPABİLİRİZ.
Onuda Version 9 da göreceğiz.

Sona sakladığım bir şey var.
Cisco cihazımız aslında EXPORTER idi ya.
Ve FLOW ları COLLECTOR a gönderirdi.

Aslında Cisco cihazın içinde küçük bir COLLECTOR var !!!

Yani istersek biz tüm FLOW ları o küçük COLLECTOR a gönderebiliriz.
Onun için SANAL OLARAK ANLIK CACHE oluşturulur Cihazımızda.

Adıda TOP-TALKERS !
__________________

Yani Cisco cihazımız içindende istatistiksel verileri görebileceğiz.

Hemen açıklayarak konfigurasyon yapalım :


Kod:
R1#

CONF T
IP FLOW-TOP-TALKERS
TOP 5
SORT-BY PACKETS
CACHE-TIMEOUT 5000
bitti bu kadar.

5 , PACKETS ve 5000 kelimelerini kullanarak cümle kurucam.

Packets sayısını baz alarak, CACHE deki en çok PACKET i olan ilk 5 FLOW u al, ( burda TIMEOUT falan beklenmez )
Onlar için GEÇİCİ bir CACHE oluştur,
Ve bu CACHE in için 5000 ( 5 saniye ) tut !

Demektir.


SHOW IP FLOW TOP-TALKERS

komutu ile görebiliriz...

PC den Ping gönderdim ve

Kod:
R2#sh ip flow top-talkers

*Sep  6 17:44:31.259: %SYS-5-CONFIG_I: Configured from console by console

SrcIf         SrcIPaddress    DstIf         DstIPaddress    Pr SrcP DstP  Pkts
Fa0/0         12.0.0.1        Local         12.0.0.2        01 0000 0800     1
1 of 5 top talkers shown. 1 flows processed.
5 Saniye sonra kayboldu !


BUndan sonraki konumuz 3-) Netflow Version 9 Nedir ?