FreeBSD’de Paket Kayıplarının Ölçümü

pl

FreeBSD üzerinde bpf kullanan bir uygulamanız varsa(Trafik izleme, Sniffer, Saldırı Tespit/Engelleme Sistemleri vs) bu uygulamanın sistem üzerinden gidip-gelen tüm paketleri yakalayabildiğini görmek önemli bir şeydir.

FreeBSD 7 ile birlikte netstat’a -B parametresi eklenerek bu özellik sağlanmış gözüküyor( Eskiden port ağacından bpfstat kurularak yapılabiliyordu). Böylece kullandığınız yazılımın ne kadar sağlıklı çalıştığını görebilirsiniz.

Aynı anda Hem Firewall loglaması(Packet filter loglaması bpf kullanıyor) hem de Snort çalışan bir FreeBSD sistemde ekteki gibi bir çıktı alıyorum.

# netstat -B
  Pid  Netif   Flags                Recv                     Drop     Match S           blen            Hblen Command
  562 pflog0 p–s–l            2 03181642         0          203181642 1137024     0          pflogd
 4951  lagg0 p–s—           80564996            0          80564996 5405484       0           snort

Görüleceği gibi her iki uygulamada paket kaçırmadan çalışıyor. Yine bpf kullanan ve paket kaçırdığını düşündüğümüz  başka bir uygulamayı inceleyelim.

# netstat -B
  Pid       Netif    Flags      Recv                      Drop     Match Sblen Hblen Command
 
14109  lagg0 p–s—      716609791      1175963 315031330 9547396     0 Uygulama1
14111  lagg0 p–s—        716609841         0  40677365 2608139     0 Uygulama1
14108  lagg0 p–s—       716609840    2975378 611795979 9262176     0 Uygulama1
14110  lagg0 p–s—       716609803         0   7578723 214966     0 Uygulama1

Çıktıdan görüleceği gibi Uygulama1 isimli programımız ciddi sayılabilecek oranlarda paket kaçırıyor.

netstat -B ile alınan çıktı sabitdir. Yani netstat -w(ekranı belirli aralıklarda yenile) benzeri bir özelliği yoktur. Bunun için aşağıdaki tek satırlık script kullanılabilir.

# while [ 1 ];do netstat -B;sleep 2;done
  Pid  Netif   Flags      Recv      Drop     Match Sblen Hblen Command
  562 pflog0 p–s–l 208976932         0 208976932 1750144     0 pflogd
 4951  lagg0 p–s— 101664407         0 101664407 734372     0 snort
  Pid  Netif   Flags      Recv      Drop     Match Sblen Hblen Command
  562 pflog0 p–s–l 209035050         0 209035050 1700096     0 pflogd
 4951  lagg0 p–s— 101870233         0 101870233 9502240     0 snort
  Pid  Netif   Flags      Recv      Drop     Match Sblen Hblen Command
  562 pflog0 p–s–l 209090568         0 209090568 1451264     0 pflogd
 4951  lagg0 p–s— 102070052         0 102070052 3575342     0 snort
  Pid  Netif   Flags      Recv      Drop     Match Sblen Hblen Command
  562 pflog0 p–s–l 209147854         0 209147854 1330048     0 pflogd
 4951  lagg0 p–s— 102278007         0 102278007 2218950     0 snort
  ….

çıktıdaki Flags değerindeki alanlar aşağıdaki anlamlara geliyor.

The bpf(4) flags displayed when netstat is invoked with the -B option      represent the underlying parameters of the bpf peer.  Each flag is repre-
     sented as a single lower case letter.  The mapping between the letters      and flags in order of appearance are:

     p    Set if listening promiscuously
     i    BIOCIMMEDIATE has been set on the device
     f    BIOCGHDRCMPLT status: source link addresses are being filled auto-
          matically
     s    BIOCGSEESENT status: see packets originating locally and remotely on
          the interface.
     a    Packet reception generates a signal
     l    BIOCLOCK status: descriptor has been locked

This entry was posted in FreeBSD. Bookmark the permalink.

1 Response to FreeBSD’de Paket Kayıplarının Ölçümü

  1. Ali Kapucu says:

    bunu yazdığınız iyi oldu hocam elinize sağlık..

Leave a Reply

Your email address will not be published. Required fields are marked *

thirteen + seventeen =