fatih@oktay

Cisco Catalyst 2960-X IOS Güncelleme (15.2(7)E14) ve NTP ile Saat Ayarı

02.11.2026 #Cisco #Catalyst #2960-X #IOS #TFTP #NTP #Güncelleme

Bu yazıda Catalyst 2960-X serisi bir switch’i 15.2(2)E6 sürümünden 15.2(7)E14 sürümüne TFTP ile nasıl güncellediğimi anlatıyorum. Ayrıca güncelleme sonrası fark ettiğim saat sorununu (dosyaların 2001 tarihli görünmesi) ve NTP ile çözümünü ekledim.

Önemli: software install komutu yok

9200/9300 gibi Install Mode kullanan platformlarda software install komutu bulunur. 2960-X bu platformlardan değildir, klasik bundle mode çalışır. Yani software install yazınca Unrecognized command hatası alırsınız. 2960-X’te güncelleme şu mantıkla yapılır:

  1. .bin dosyasını flash’a kopyala
  2. boot system değişkenini yeni dosyaya çevir
  3. Kaydet ve reload et

Ortam

BilgiDeğer
ModelWS-C2960X-48TD-L
Eski sürüm15.2(2)E6
Yeni sürüm15.2(7)E14
İmaj dosyasıc2960x-universalk9-mz.152-7.E14.bin
YöntemTFTP (switch’in yönetim VLAN’ı üzerinden)

Dosyayı Cisco Software Download sayfasından indirirken universalk9-mz…bin dosyasını seçin. tar uzantılı olan, Device Manager (web arayüzü) içindir ve normal CLI kullanımında gerekmez.

1. Mevcut durumu kontrol et

show version | include Version|image
show flash:

Flash’ta yeni imaj için yeterli boş alan olduğundan emin olun. Bu örnekte yaklaşık 68 MB boş alan vardı, imaj ise yaklaşık 26 MB.

2. İmajı TFTP ile kopyala

TFTP sunucusunda (bilgisayarınızda) .bin dosyasının bulunduğu klasörü TFTP kök dizini yapın ve switch’ten kopyalayın:

copy tftp: flash:
Address or name of remote host []? 192.168.10.50
Source filename []? c2960x-universalk9-mz.152-7.E14.bin
Destination filename [c2960x-universalk9-mz.152-7.E14.bin]?

Kopyalama bittiğinde şuna benzer bir çıktı görürsünüz:

[OK - 26798080 bytes]
26798080 bytes copied in 450.887 secs (59434 bytes/sec)

TFTP yavaş bir protokoldür, yaklaşık 7-8 dakika sürmesi normaldir. Transfer sırasında uzak sunucuya ping atabiliyor olmanız (Vlan arayüzü üzerinden erişim) yeterlidir.

Kontrol:

show flash:

Yeni .bin dosyası kök dizinde görünmelidir. Eski sürüm ise ayrı bir klasör (drwx) olarak durur.

3. MD5 ile bütünlüğü doğrula

Bozuk bir imajla reload etmek switch’i boot döngüsüne sokabilir. Bu yüzden hash kontrolü şarttır:

verify /md5 flash:c2960x-universalk9-mz.152-7.E14.bin

Çıkan değeri Cisco Software Download sayfasında dosya adının üstüne gelince görünen MD5 değeriyle karşılaştırın. İkisi birebir aynı olmalıdır.

4. Boot değişkenini ayarla

configure terminal
no boot system
boot system flash:c2960x-universalk9-mz.152-7.E14.bin
end

Kontrol:

show boot

BOOT path-list satırında yeni dosyanın adı görünmelidir:

BOOT path-list      : flash:c2960x-universalk9-mz.152-7.E14.bin

5. Kaydet ve reload et

write memory
reload

Proceed with reload? [confirm] sorusuna Enter basın. Switch yaklaşık 3-5 dakikada açılır. Açılışta imaj ilk kez açıldığı (unpack edildiği) için biraz uzun sürebilir, bu sırada enerjiyi kesmeyin. Switch’e uzaktan bağlıysanız oturum kopacaktır.

6. Güncellemeyi doğrula

show version | include Version|image

Beklenen çıktı:

Cisco IOS Software, C2960X Software (C2960X-UNIVERSALK9-M), Version 15.2(7)E14, RELEASE SOFTWARE
System image file is "flash:c2960x-universalk9-mz.152-7.E14.bin"

Ayrıca show version çıktısının sonundaki tabloda da SW Version olarak 15.2(7)E14 görünür.

Not: Çıktıda BOOTLDR: ... Version 15.2(7r)E satırı görürseniz bu normaldir. Boot loader sürümü ayrı gösterilir ve ek bir işlem gerektirmez.

Port ve arayüzlerin durumunu da kontrol edin:

show ip interface brief | exclude unassigned
show interfaces status | include notconnect|err

Hangi sürüm daha yeni, nasıl anlarım?

Dosya adındaki sürüm numarası soldan sağa karşılaştırılır:

  • 152-7.E14 = 15.2(7)E14, yeni
  • 152-2.E6 = 15.2(2)E6, eski

Önce 7 ile 2 karşılaştırılır (7 büyük), sonra E14 ile E6. En güncel sürümü doğrulamak için Cisco Software Download sayfasında modelinizi seçip en yüksek 15.2(7)E numarasına ve varsa Suggested Release işaretine bakın. Yazıyı yazdığım tarihte listedeki en yüksek numara E14 idi (yayın tarihi 20 Mart 2026).

Güncelleme sonrası fark ettiğim şey: dosyalar 2001 tarihli

Güncellemeden sonra show flash: çıktısında yeni kopyaladığım imajın tarihi Jan 29 2001 görünüyordu. Eski dosyalar ise 2000 ve 2017 tarihliydi.

Bunun sebebi switch’in saatinin hiçbir kaynaktan ayarlanmamış olmasıdır. 2960-X’te pille çalışan donanım saati (calendar) yoktur, saat kaynağı yoksa switch kendi iç varsayılan tarihinden başlar ve dosyaları o tarihle damgalar. Bu sadece bir zaman damgası sorunudur, imajın bozuk olduğu anlamına gelmez. Dosya boyutu ve MD5 doğrulaması bunu teyit eder.

show clock

Çıktı büyük ihtimalle 2000 ya da 2001 yılını gösterir. Bu aynı zamanda logların da yanlış tarihle düştüğü anlamına gelir, ki bu güvenlik ve sorun giderme açısından istenmeyen bir durumdur.

Kalıcı çözüm: NTP

2960-X’te saat reload sonrası sıfırlandığı için elle clock set kalıcı değildir. Kalıcı çözüm NTP’dir.

Türkiye’de kullanabileceğiniz kaynaklar:

  • time.ume.tubitak.gov.tr : TÜBİTAK UME, Stratum 1, ulusal zaman
  • 0.tr.pool.ntp.org, 1.tr.pool.ntp.org : NTP Pool Türkiye bölgesi

Switch’in hostname çözebilmesi için DNS tanımlı olması gerekir:

configure terminal
ip domain-lookup
ip name-server 192.168.10.10
ntp server time.ume.tubitak.gov.tr prefer
ntp server 0.tr.pool.ntp.org
ntp server 1.tr.pool.ntp.org
clock timezone TRT 3
service timestamps log datetime msec localtime
service timestamps debug datetime msec localtime
end
write memory

DNS vermek istemezseniz doğrudan IP de yazabilirsiniz (ntp server 203.0.113.15), ancak pool IP’leri sık değiştiği için hostname daha sağlamdır.

Senkronizasyon birkaç dakika sürer. Kontrol:

show ntp associations
show ntp status
show clock

show ntp status çıktısında Clock is synchronized görmelisiniz. show ntp associations çıktısında sunucunun başında * işareti çıkarsa senkron olmuş demektir.

Saat dilimi: clock timezone tanımlamazsanız saat UTC gösterir. Türkiye için UTC+3 olduğundan clock timezone TRT 3 yazılır.

Firewall notu

NTP UDP 123 kullanır. Ping’in cevap vermesi NTP’nin çalışacağı anlamına gelmez. Switch’in yönetim IP’si internete çıkıyorsa firewall’da UDP 123 çıkışına izin verilmelidir. Test için Windows’tan:

w32tm /stripchart /computer:0.tr.pool.ntp.org /samples:3 /dataonly

Offset değerleri geliyorsa UDP 123 açıktır.

Güvenlik: E6’dan E14’e geçmek neden önemli?

15.2(7)Ex release notes’una göre E12, E13 ve E14 sürümlerinde çok sayıda güvenlik açığı kapatılmıştır. Öne çıkanlar:

  • SNMP Denial of Service ve Remote Code Execution açıkları (E12, E13)
  • TACACS+ Authentication Bypass açığı (E13)
  • IKEv2 Denial of Service açıkları (E12, E13, E14)
  • CLI Argument Injection açığı (E13)
  • SCP sunucusu Denial of Service (E14)
  • HTTP sunucusu Denial of Service (E14)

Eski sürümlerde çalışan 2960-X switch’ler bu açıklara açıktır. Güncelleme yalnızca “yeni özellik” için değil, açık kapatmak için de yapılmalıdır. Ayrıca 2960-X artık yeni özellik geliştirilen bir ürün değildir, bu hatta sadece güvenlik düzeltmeleri gelir.

Ek sertleştirme önerileri

Web arayüzünü (HTTP/HTTPS) kullanmıyorsanız kapatın:

no ip http server
no ip http secure-server

SNMP kullanıyorsanız:

  • Tahmin edilmesi kolay community string kullanmayın
  • Community’yi ACL ile yalnızca izleme sunucusuna kısıtlayın
  • Mümkünse SNMPv3 kullanın

Yönetim erişimini SSH ile sınırlayın (15.2(7)E3 ve sonrasında SSH varsayılan açık, Telnet kapalı gelir):

line vty 0 15
 login local
 transport input ssh

7. Eski sürümü temizle (isteğe bağlı)

Yeni sürümün birkaç gün sorunsuz çalıştığından emin olduktan sonra eski sürüm klasörünü silip yer açabilirsiniz:

delete /force /recursive flash:c2960x-universalk9-mz.152-2.E6

Geri dönüş seçeneği olarak bırakmak isterseniz silmeyin, flash’ta yer sorunu yoktur. Geri dönmek gerekirse boot değişkenini eski imaja çevirip reload edersiniz. Eski sürüm klasörün içinde durduğu için yol şöyle olur:

boot system flash:c2960x-universalk9-mz.152-2.E6/c2960x-universalk9-mz.152-2.E6.bin

Stack kullanıyorsanız

Switch’ler stack halindeyse .bin dosyasının her üyenin flash’ında bulunması gerekir. show switch ile üyeleri kontrol edin. Bu yazıdaki switch tek üyeliydi (Switch 1), bu yüzden ek bir işlem gerekmedi.

Özet

AdımKomut
İmajı kopyalacopy tftp: flash:
Bütünlüğü doğrulaverify /md5 flash:<dosya>.bin
Boot ayarlaboot system flash:<dosya>.bin
Doğrulashow boot
Kaydet ve reloadwrite memory + reload
Sürümü kontrol etshow version
Saati düzeltntp server ... + clock timezone TRT 3

Güncelleme tamamlandı. Yazıdaki IP ve sunucu adresleri örnek amaçlıdır, kendi ortamınıza göre değiştirin.