Juniper EX Switchler üzerinde Layer2, Layer3 ve Layer4 seviyesinde filter yazılabilmektedir. Hatta bunlar schedule a koyularak istenen zaman diliminde çalışması sağlanabilir. (Yalnızca öğlen saatinde filan portlar açılsın, filan protokoller izinli olsun, filan vlanlar arası iletişim şu sürede açılsın vs. vs.)
Öncelikle Juniper EX switchin MAC tablosunu aşağıdaki gibi inceleyebiliriz.
Komut satırından: show ethernet-switching table
Konu ile ilgisi yok ama yukarıda Type kısmı önemli. Switch aldığı bir frame i ileteceği zaman şu sırayı izleyerek gönderiyor.
- Learning
- Forwarding
- Flooding
- Filtering
- Aging
Frame i aldığında, aldığı interface ve Source-MAC bilgisini kaydediyor. Eğer Destination-MAC ın hangi interface inde olduğunu biliyorsa paketi forward ediyor. Bilmiyorsa ilgili Vlan a ait tüm portlardan flood ederek nihayetinde Destination-MAC ın hangi interface inde olduğunu öğrenip bunu MAC tablosuna yazıyor. Tabii Source-MAC ile Destination-MAC aynı interface inde görünüyorsa bunun bir problem olduğunu anlayıp filtering yapıyor ve paketi drop ediyor. En nihayetinde (default olarak) 300 sn boyunca o MAC adresinden ses seda gelmezse aging durumu hasıl oluyor ve tablodan ilgili MAC adresini temizliyor.
Juniper EX Switch Üzerinde MAC Adress veya IP Adress Filtering İşlemleri:
Juniper EX Switch imin ge-0/0/4.0 portuna bağlı olan cihazın MAC adresi 5c:45:27:0e:45:40/48 olsun. Bu MAC adresi üzerinden switch imin ge-0/0/4.0 portuna gelen trafiği discard edip loglamak istiyorum.
GUI üzerinden de işlem yapabiliriz ancak loglamayı aktif etmek istiyorsak konsol erişimi yapmak daha doğru.
Önce Firewall Filter sonra da bu filtera bağlı çalışacak Term i oluşturuyorum. Junos u güçlü kılan hususlardan birisi de Filterlar içerisinde çalışan term mekanızması aslında. Bir filter içerisinde “şu kriter karşılandıktan sonra bunu yap, ondan sonra da şunu yap” şeklinde birden fazla term ler tanımlayabilirim. Filter ile paketi yakalıyorum, term ile de şekilden şekile sokuyorum 🙂
set firewall family ethernet-switching filter MAC-Filter term Term1 from source-mac-address 5c:45:27:0e:55:40/48
set firewall family ethernet-switching filter MAC-Filter term Term1 then discard
set firewall family ethernet-switching filter MAC-Filter term Term1 then syslog
Filter ı tek başına oluşturmak aktif etmek için yeterli değil. Filter ı bir interface e atamam lazım.
set interfaces ge-0/0/4 unit 0 family ethernet-switching filter input MAC-Filter
MAC-Filter isminde bir log dosyası oluşturuyorum.
set system syslog file MAC-Filter-Log firewall any
show | compare dediğimde çıktım aşağıdaki gibi
root@Kabin_Switch# show | compare
[edit interfaces ge-0/0/4 unit 0 family ethernet-switching]
+ filter {
+ input MAC-Filter;
+ }
[edit]
+ firewall {
+ family ethernet-switching {
+ filter MAC-Filter {
+ term Term1 {
+ from {
+ source-mac-address {
+ 5c:45:27:0e:55:40/48;
+ }
+ }
+ then {
+ discard;
+ log;
+ }
+ }
+ }
+ }
+ }
commit ettikten sonra paketlerin discard (D) olduğunu görebiliriz.
emre@Switch> show log MAC-Filter-Log
Dec 5 05:49:09 Kabin_Switch fpc0 PFE_FW_SYSLOG_IP: FW: ge-0/0/4.0 D udp 10.10.20.3 10.10.20.112 514 514 (1 packets)
Dec 5 05:49:09 Kabin_Switch fpc0 PFE_FW_SYSLOG_IP: FW: ge-0/0/4.0 D icmp 10.10.21.10 192.168.0.183 0 0 (1 packets)
İşlemleri GUI üzerinden aşağıdaki gibi gerçekleştirebiliriz ancak dediğim gibi logging için gui de şansınızı zorlamayın 🙂