Fortinet 25G DAC aynı FortiSwitch birimleri arasında link veriyor, FS2048 ile FS648 arasında vermiyor
İki aggregation sırasını FortiSwitch üzerinde birleştiriyoruz, son parça da bitişik raflardaki bir FS2048 ile FS648 arasındaki 25G interconnect. Tasarımdaki her şey ilk denemede geldi, bu link bir türlü gelmiyor.
- FortiSwitch 2048, 25G ön panel portu
- FortiSwitch 648, 25G ön panel portu
- Fortinet FN-CABLE-SFP28-5 pasif DAC, üretici kablosu, third party değil
- İki port da VLAN config dışında dokunulmamış
Gördüğüm:
FS2048 port: down, no rx/tx counters moving
FS648 port: down, no rx/tx counters moving
same FN-CABLE-SFP28-5 between two FS648 units: up at 25G, stable
Denediklerim:
- aynı kutudan ikinci bir FN-CABLE-SFP28-5 taktım, değişiklik yok
- her şasideki iki ucu da farklı 25G portlarına taşıdım, değişiklik yok
- kabloyu iki aynı FS648 arasına takarak sağlam olduğunu kanıtladım, orada hemen link geliyor
Yani kablo sorunsuz, portlar da sorunsuz, ama kombinasyon sorunlu. Link train olmadan önce 25G portlarda iki model arasında eşleşmesi gereken bir şey mi var?
Comments 6
Tam olarak bu. İki şasi de farklı ASIC ve PHY nesilleri üzerine kurulu, her biri 25G'de kendi başına karar verdiği hata düzeltmesi de iki tarafta aynı değil, bu yüzden link training'i hiç bitirmiyor. Elinde tertemiz bir down/down kalıyor, loglarda inceleyecek hiçbir şey yok.
Aynı FEC modunu iki portta da elle sabitle:
Bunu hem FS2048'de hem FS648'de yap, her tarafın kendi port ismini kullanarak. CL91 Reed-Solomon varyantı ve CL74 firecode seçeneğine göre çok daha fazlasını temizliyor, ama ikisinden hangisini seçtiğin, aynısını iki kere seçmekten çok daha az önemli: iki PHY de aynı şemayla encode ve decode etmek zorunda, yoksa training hiç tamamlanmıyor, iki farklı PHY ailesinde "auto" da aynı şema değil.
İkinci taraf commit edilir edilmez port gelmeli. Sonra buna üçüncü bir model karışırsa, default'un taşındığını varsaymak yerine orada da elle ayarla.
Aynı modeller arasında linklenip farklı modeller arasında ölen bir kablo, fiziksel katmanın bir konuda anlaşamadığının işareti, 25G bakırda da bu neredeyse her zaman FEC'tir.
Önce şunu paylaş: iki portta şu an fec-state ne olarak ayarlı. Default FortiSwitch nesilleri arasında aynı değil, birleştirdiğin iki model de aynı ASIC/PHY ailesinden değil, yani "iki uçta da fabrika ayarları" demek "iki uçta da aynı ayar" demek değil.
İki port da farklı değerlerle dönerse, başka bir şeye dokunmadan cevabını almış olursun.
İki tarafta da hiçbir şeye dokunulmadı, yani iki port da image'ın default olarak verdiği ne ise onunla çalışıyor. FS2048 tarafı boş:
FS648'de de aynı. Speed ve auto-negotiation da dokunulmamış, sadece portları doğru VLAN'a soktum. Default'lar modele göre farklıysa, aynı kablonun iki aynı cihaz arasında neden bu kadar sorunsuz çalıştığını açıklar.
Değmeye değer, Fortinet dışında da aynı sınıf sorun var. Bir UniFi USW-Pro-Aggregation ile Intel SFP28 kartlı bir sunucu arasında sorunsuz linklenen 25G SFP28 pasif bir DAC'ım vardı, aynı kablo bir MikroTik CCR2004-1G-12S+2XS'in sfp28-2 portunda hiçbir şey vermedi - iki tarafta da hata yok, sadece link yok. Bir Ubiquiti UACC-DAC-SFP28-3M ve bir Lenovo 7Z57A03558 denedim, sonuç aynı. Bir noktada port geldi ve yaklaşık iki saniye sonra tekrar düştü, bu da kablonun ölü olmadığını, bir şeyin train olamadığını gösteren ipucuydu.
Yine FEC: Ubiquiti tarafı FEC'i açık tutuyor, değiştirmenin desteklenen bir yolu yok, RouterOS da 6.49'da default'u fec91'den FEC yok'a taşıdı. Burada işe yarayan, FEC seçeneklerinin açıldığı RouterOS 7.4'e geçmek oldu, şunu çalıştırarak
sonra portu fec74'e ayarlayıp auto-negotiation'ı iki yönde de kapatmak, flow control'ü iki yönde de kapatmak, 25 Gbps full duplex ayarlamak, üstüne UniFi tarafında 25G FDX'i sabitleyen bir port profile override eklemek. Bu benim donanımım ve firmware'im, yani tarifi olduğu gibi almayıp kendi tarafında doğrula.
Eklemek gerek: aynı ayarın adı hangi CLI'nin içinde olduğuna göre değişiyor, bir rafta birden fazla vendor olunca da bu işi acı verici hale getiren şey bu. Cisco'da bir Catalyst 9300 stack ile bir Catalyst 9500 çifti arasındaki 25G linklerde iki ucu da fec cl108 yapmak işi gördü; o 9500 çiftiyle bir Nexus 9000 arasındaki 100G'de ise iki tarafta da fec off işe yaradı. Karar aynı, kelimeler farklı.
Ve FEC her zaman açılan bir şey değil. SFP-H25GB-SR takılı bir Nexus 93180YC-EX'ten bir Cavium 25G adaptörüne giden bağlantıda switch portu FEC auto'da duruyordu ve optik yüzünden FEC bekliyordu, NIC ise hiç FEC capability'si olmadığını bildiriyordu, yani iki uç hiç anlaşamadı ve modüller tanınmış haldeyken interface'ler down kaldı. Orada çözüm switch interface'inde fec off yapmaktı, show interface da modun Auto'dan Off'a geçtiğini doğruluyor.
Yani kural "cl91 kullan" değil, "modu belirle, sonra iki ucta da elle ayarla".
Doğrulandı. FS2048 portunda set fec-state cl91 tek başına hiçbir şeyi değiştirmedi, sonra aynısını FS648 portunda yaptım ve link birkaç saniye içinde geldi. Counter'lar iki tarafta da hareket ediyor, her iki şasinin reboot'undan da sağ çıktı.
Bundan sonra bu ayar, default'a güvenmek yerine, bu çiftteki her 25G portta elle belirtilecek. Gayet sağlam kabloları değiştirmekle geçen iki akşama karşı bir satır config.