Segítséget kérnék PfSense (freeBSD) hálókártyadriver telepítés ügyben [Megoldva]

Fórumok

Sziasztok

PfSense (freeBSD) ügyben szeretnék segitséget kérni. Feltelepitettem a friss 2.4.4 pfSense-et (freeBSD 11.2) egy gépre, amiben van két Mellanox hálókártya. Egy 10 Gbps-es ethernet (MCX311-A fcbt) és egy 40 Gbps-es infiniband (MCX353-A fcbt) kártya. Alapból nem működtek, de a kisebbiket sikerült életre kelteni a netről letöltött és leforditott driverrel. A nagyobbikkal viszont sajnos nem boldogulok. Nem találtam a neten kész bemásolható infinibandos drivert, a gyártóét pedig forditani kell. Mivel én Windowson szocializálódtam, sajnos itt elbuktam. A pfSense a "make" vagy a "make install" parancsok kiadásakor hisztizik, hogy valami CC forditó nincs paraméterezve (vagy mi?), ha ugyanezt a freeBSD-n próbálom, 4db errort dob fel és az is elakad. Két hete küzdök, már nagyon a végemet járom.

Tud nekem ebben segiteni valaki?

Köszönettel

Viktor

Hozzászólások

szia Viktor,

első körben kérünk szépen egy pastebin (https://pastebin.com) linket, milyen kimenetet kaptál a fordítótól. az első tippem, hogy nincs telepítve, vagy nem megfelelő verziójú a GCC. az ideális az lenne, ha azon a gépen fordítanád, ahol futni fog a driver, vagyis amiben a kártya van.

ezen a linken: https://forum.netgate.com/topic/121874/pfsense-2-4-0-incompatibility-wi…
egy Netgear (pfSense) fejlesztő azt javasolja (3. komment), állj vissza 2.3-as verziójú pfSense-re, az alatt menni fog, efölött nem támogatja már a FreeBSD a kártyádat.

szerintem ezt találtad meg te is: https://forum.opnsense.org/index.php?topic=12140.0

nem vagyok sajnos én sem annyira profi ebben, de mintha hiányozna a leírásból az összerakott script futtatása. miután letöltötted a kernel forrást (fetch..., tar...), én a sok echo sor helyett létrehoznám kézzel az ofed_install.sh file-t: nano ofed_install.sh (ha nincs telepítve nano editor, akkor ami van, vagy "sudo pkg install nano"), ennek kéne szerepelnie a file-ban:

#!/bin/sh -e

cd /usr/src/sys/modules
for module in mlx4 ibcore mlx4ib ipoib; do 
    cd $module
    make
    make install
    sync
    kldload $module || true
    printf "${module}_load=\"YES\"\n" >> /boot/loader.conf.local
    cd ..
done
kldstat

ha nano, akkor CTRL+O, ENTER, CTRL+X. utána "sudo sh ofed_install.sh" vagy "sudo ./ofed_install.sh". ennek a kimenetét lenne jó látni, ha rövid, másold be ide, ha hosszú, pastebin.com.

Azt gondoltam mindegy, hogy én adom ki egymás után a parancsokat vagy egy program teszi ugyanezt.

Bementem egyesével az mlx4, ibcore, mlx4ib, majd az ipoib mappákba, ott minegyikben nyitottam egy-egy terminál ablakot és egymás után kiadtam a "make" parancsot. PfSense-nél azonnal visszadobott (mert mint utólag olvastam ebből a rendszerből kivették a fordító programokat), freebsd-nél végigment, de a végén kiírt mindegyik mappánál 4 error üzenetet és stoppolta a folyamatot. 

Szerkesztve: 2019. 11. 13., sze – 13:55

Köszönöm a hozzászólást

Abban a gépben fordítottam volna, a két rendszer között SSD cserével váltogatok.

Ez már nekem is megfordult a fejemben, délután meg is lépem szerintem.

Feltettem a 2.3.5-ös verziót. Alapból nem használja ez sem a kártyákat. Most próbálom belevarázsolni a modulokat amiket a neten találtam. Nekem ez sem egyszerű.

A 2.4.4 verziónál, az mlx4en modul vitte a kisebbik kártyát, az infiniband-est nem, ahhoz elméletileg az mlx4ib modul kellene, de eddig nem találtam belőle forditottat.

Szerintem neked kicsit sok lesz a BSD. Megkérdezhetem miért akarsz pfsense-t használni? Már ha publikus.

Csak akkor szólok hozzá egy témához, ha értelmét látom.

Ebben tökéletesen igazad van, mint irtam is, Windowson szocializálódtam. Amikor megszületett az igény, erre esett a választás, azóta ezt már úgy-ahogy kiismertem, tetszik is, és nem is volt gond eddig vele. Most, fejleszteni szeretnénk és optikára cserélnénk a gerinchálózatot, itt valóban megsiklottam a projekttel. Eddig feltelepitettem és a webes felületen keresztül konfiguráltam mint bármilyen másik routert. Ezzel szemben, most turkálnom kell a bsd bugyraiban, hogy a két SFP+ kártyát életre keltsem. Mentségemre legyen mondva, könnyen tanulok, kitartó vagyok, és nem szégyellek segitséget kérni olyan dolgokban amihez nem vagy kevéssé értek. Ezért vagyok itt.

Hát.... rendre lettem utasítva az biztos. Remélem megtanulom egy életre.

(amúgy te most konkrétan az aláírásomba kötöttél bele?)

- A pfsense egy gui. Nem cli-s rendszer. Nem is szabadna elvileg gui-n kívül mókolni rajta, mert nem lesz szinkronban a két felület. De tisztelem őt, hogy winfos-ról jövet egyből a legnehezebb rendszerben túrkál könyékig. És ahogy látom, végig is csinálja. Drukkolok neki.

Másegyebet?

Csak akkor szólok hozzá egy témához, ha értelmét látom.

Annyi "fejlődés" van azóta, hogy felraktam a 2.5-ös PfSense-et. Ami csodák-csodája alapból felismeri a kisebbik kártyát nem kell vele bajlódni. A nagyobbikkal még mindig bajban vagyok. Felraktam (ugyanebben a gépben) egy másik SSD-re a 12.0 freeBSD-t. A szükséges driverek elméletileg rajta vannak. Meg is találtam a /usr/src/sys/modules/stb mappában őket, a "make" parancs végig is fut, de a "make install" megint hibába ütközik. Délután dokumentálom az üzeneteket, hátha tudtok segíteni.

A Mellanox oldaláról letölthető freeBSD driver már a "make"-nél kiakad.

Szerkesztve: 2019. 11. 15., p – 17:41

Ezt amúgy olvastad?

https://wiki.freebsd.org/InfiniBand

Mert fenti doksi szerint nem kell semmilyen netes drivert tölteni, hisz egy ideje benn van a rendszerben a driver, maximum be kell tölteni a korábbi hozzászólásban emlegetett mlx5 drivert.

Most direkt megnéztem, a /usr/src/sys/ofed könyvtár helyből létezik.

Azt próbáltad már, hogy egy színtiszta FreeBSD-n csak simán betöltöd a két Mellanox drivert?

kldload mlx4

kldload mlx5

Meg esetleg a mlx5en / mlx4en -t. Én mind a 4-t be tudtam tölteni, de persze hardver híjján nem sokra mgyek vele. Az mlx5en hatására kaptam egy ilyet:

mlx5en: Mellanox Ethernet driver 3.5.2 (September 2019)

A freeBSD-t csak azért telepitem, mert azt irták a neten, hogy a drivereket abban kell lefordittatni és onnan átmásolni a PfSense-be.

(A 2.5-ös PfSense a 12.0 freeBSD-re iródott ezért raktam fel azt de, már a 12.1-ből is készitettem telepitő USB-t, ha a 12.0 nem működne.)

OK, akkor ne akarj 12.1-et, mert az új kernel modul nem fog menni a 12.0-val. De ha véletlenül megy FBSD-n, akkor nem kell fordítani, elvben elég csak átmásolni. Bár nekem ez eléggé zűrös, mert ha nincs infiniband támogatás belefordítva a pfSense kernelbe, akkor hiába viszed oda a modult. (Érdemes megnézni hogy a FreeBSD mit ír a man mlx5en-ben arról, hogy mi kell a kernel fordításkor. Ha abból bármit kihagytak pfSense-ék, akkor eléggé esélytelen. Illetve érdemes arra is figyelni, hogy itt is van kernel modul függőség, tehát azokat is vidd magaddal, amik függőségként töltődtek be.)

Ha megpróbálom betölteni a modult ez a kimenet:

 

root@Proba: /usr/src/sys/modules/ibcore # kldload ibcore.ko 
link_elf_obj: symbol if _index undefined
linker_load_file: /boot/modules/ibcore.ko - unsupported file type
kldload: an error occured while loading module ibcore.ko. Please check dmesg(8) for more details.

Honnan van az ibcore.ko? (12.1-en nincs is ilyen modulom) Mi van a dmesg végén? Egyáltalán ez melyik OS-ben történt? Ki mondta, hogy az ibcore-t töltsd be? mlx5en-t emlegettem én is, más is.

 

Szerk: ja, azt látom, hogy az általam is emlegetett Infiniband wiki emleget ilyesmit. Akkor lépjünk eggyel hátrébb:

- hogy történt a fordítás? src.conf módosítás, majd make buildkernel, (anyám, vagy 8 éve nem forgattam kjernelt) Vagy kézzel lépegettél be a modulkönyvtárba?

A Handbook szerint, ha csak pár modul kell, akkor elég az /etc/make.conf -ban a MODULES_OVERRIDE használata, és aztán (mondjuk akár kézzel), a helyére ( /boot/modules ) másolni az elkészült modulokat.

MODULES_OVERRIDE = ipoib mlx4ib mlxen mthca

Én személy szerint az mlx4en-t nem tenném oda, mert olyan már van (ja, lehet, h pfsense-en nincs, akkor maradjon), ellenben az mlx5ib -t igen. És aztán az így kapott modulokkal próbálkoznék.

- az ibcore.ko a /usr/src/sys/modules/ibcore mappában van egy Makefile. Ott kiadom a "make" parancsot, majd ha lefutott a "make install" parancsot. Ha jól olvastam a leirásokat, telepitéskor be kellene tennie a /boot/kernel mappába, e helyett a /boot/modules mappába rakja.

- a dmesg végén az a két sor van, mint ami az előző hsz középső két sora.

- a freeBSD 12.0-ban csináltam

-MCX353-A tipusú, ConnectX-3 sorozatú kártyát kellene működésre birni, ami infiniband csatolós. Azt olvastam ezekhez a kártyákhoz az ibcore, mlx4ib és az ipoib modulok kellenek. Az mlx5en az újabb ConnctX-4 ill -5 kártyákhoz kell úgy tudom. Annál is inkább mert a 12.0.ban az mlx5en is alapból benne van, igy a kártyámnak működnie kellene.

Játszottam kicsit a gépemen. Elolvastam egy halom oldalt, meg ezeket a mindenféle leírásokat, de semmi. Ami kérdeztél ( /boot/kernel vs /boot/modules) azzal semmi gond nincs, ott is jó helyen van. De akárhogyan játszottam a különféle opciókkal, nekem is csak ennyit tudott produkálni a gép, mint neked.

Zahy, nagyon köszönöm, hogy egyáltalán foglalkozol a problémámmal. Holnap egész nap oktatáson leszek, legközelebb hétfőn tudok visszakerülni az ominózus gép elé. (Talán, vasárnap, ha nem szerveznek itthon programot nekem, felpattintom itthon egy virtuális gépre a FBSD-t aztán masszírozom tovább.)

Üdv

Povi

Előrelépés = 0

Nagyon sokat olvastam a témában a következő eredménnyel: -többen is írták, hogy náluk milyen jól működik a ConnectX-3 kártya 2.3 és 2.4 PfSense alatt, de mindig kiderült, hogy a kisebbik ethernetes kártyáról van szó, infiniband-esről sehol nem találtam infót. Előbbivel nem is lesz gond úgy tűnik, a driver-ét visszarakták a következő 2.5-ös PfSense-be. Sajnos utóbbinál a "fogd és vidd" módszer, hogy telepítő DVD-ről vagy freeBSD-ről egyszerűen átmásolom a modulokat, ennél a kártyánál nem működik. Ahogy nézem az egyetlen -talán- működő módszer, amit már fenntebb Zahy kolléga is emlegetett, FreeBSD-be driverek bemásol és teljes kernelfordítás. Erre sajnos még nem volt időm.

Ami eddig működött: virtuális gépre telepített 2.2.6-os PfSense hibaüzenet nélkül veszi az innen letöltött drivereket. Este ki is próbálom, felteszem a gépre, hogy valóban működnek e a kártyák. Bár nem szívesen használnék egy évekkel ezelőtti verziót.

 

Szerkesztve: 2019. 11. 25., h – 20:55

Szia!

Ez melyik "brand" kártya? ( Mellanox, HPE , DELL, IBM)

HP-ből van több fajta, ami "FlexibleROM - FLR" típusú, az nem fog működni - csak HPE szerverben.

 

HPE-ből a "649281-B21" típusú a "standard" kártya, ami működik bármelyik pci-e foglalatban.

A firmware-t akkor is le kell cserélni a gyári "Mellanox"-ra:

http://www.mellanox.com/page/firmware_table_ConnectX3ProIB

 

Viszont ehhez a firmware-hez nincs FreeBSD driver (legalábbis itt nincs a listába):

http://www.mellanox.com/page/mlnx_ofed_matrix

 

Itt van egy részletesebb TOPIC erről a kártyáról:

https://forums.servethehome.com/index.php?threads/flashing-stock-mellan…

Az mlx4ib, ipoib, ibcore modulokat sikerült belefordítanom egy 11.3 freeBSD-be. (Itthon virtuálgépen) Legalábbis úgy tűnik, mert a fordítás, telepítés lement hibaüzenet nélkül és reboot után kldload-dal nem sikerült betölteni őket, mert azt írta: már benne van a kernelben. Most kimásolom a modulokat és viszem melóba kipróbálni megeszi e a PfSense?

Természetesen nem működött, mert természetesen megint balfék voltam. PfSense-ből a 2.3.5 verzió van feltelepítve, azon próbálgattam, eltelt egy kis idő mire leesett, hogy ez a verzió nem a 11.3-as, hanem a 10.3-as freeBSD-re épül. Eshetek neki újabb kernelfordításnak. Pedig már reménykedtem. Korai volt.

Úgy döntöttem nem pazarlom az időt régebbi rendszerekre, előbb-utóbb úgyis frissíteni kellene. Ezért itthon, virtuálban FreeBSD 12.0-n, munkahelyen a real gépen Pfsens 2.5-ön folytatom. Ők, így egy pár.

A FreeBSD-n szépen, hiba nélkül végigment a kernelfordítás. Kimentettem az összes releváns modult USB-re és benn felraktam a Pfsense-re. Minden modult elfogadott, kivéve egyet: az ipoib-t. Ezzel valami gondja akadt. Ma, ha bemegyek, megpróbálom megfejteni, mi lehet? Feltételezésem szerint, a kártya kijárata IB-re van állítva, és talán ezért nyafoghat. De, ez persze csak okoskodás a távolból. Mindenesetre, ha valaki csípőből tudja, hogyan, milyen paranccsal lehet ethernetre állítani a portot, az ne tartsa magában? Hátha kevesebbet kell gugliznom.

 

Idézet innen: https://wiki.freebsd.org/InfiniBand

"Set the "sys.device.mlx4_coreX.mlx4_portY" sysctl to either "eth" or "ib" depending on how you want the device ports to be configured."

Ez persze nem 3-s kártya, de ez alapján már hátha el lehet indulni.

Félsiker!

Az általatok javasolt paranccsal (köszönet érte) próbálkoztam, de a beállitást nem jegyezte meg, reboot után újra auto (IB) a kijárat. Ezért beleirtam az rc.conf fájlba: " sysctl sys.device.mlx4_core0.mlx4_port1=eth" és igy már újraindulás után is ethernet a port.

De, ettől még továbbra sem volt használható. A megoldást egy másik wiki oldalon ( https://wiki.sebeka.k12.mn.us/freebsd:iband_mlx4 ) találtam hozzá: manuálisan kell beállitani az IP cimet. ( ifconfig mlxen0 inet 55.55.1.128 netmask 255.255.255.128 mtu 9000 ) és láss csodát megjelent a kártya a felhasználható interfészek listájában:  https://ibb.co/5MNpx43   https://ibb.co/b6B1TRD

Hip-hip-hu... azaz majdnem.  

Mivel az ipoib modul továbbra sem hajlandó működni, valószinűleg ezért, a kártya nem kommunikál. 

Nem is tudom hirtelen sirjak vagy nevessek?

Ezért beleirtam az rc.conf fájlba: " sysctl sys.device.mlx4_core0.mlx4_port1=eth"

The configuration file for sysctl(8), /etc/sysctl.conf, looks much like /etc/rc.conf. Values are set in a variable=value form. The specified values are set after the system goes into multi-user mode.

Innen.

Most kicsit elvesztem. *Ha* Ethernet-módban használod, akkor minek küzdesz az ipoib modullal? (Remélem jól tudom, hogy az az IP-Over-InfiniBand lenne.) A használathoz neked nem elég az Ethernet mód? Van ennek az ipoib-nek valami pozitívuma?

Azt mondjuk amúgy nem értem, hogy mitől kapott volna IP címet, ha nem mondod meg neki. (Vagy lehet, hogy értem? Amíg nincs IP-je, addig nem látszik a kliketi-klikk felületen? Ha igen, mindig mondtam, hogy a parancssor a nyerő mindenhez. ;-) )

Szia Zahy

Azért küzdök vele, mert minden IB-s leirásban szerepel. Egyébként fogalmam sincs mire való. Azt tudom, ez a modul nem megy, és a kártya sem kommunikál. Azt gondolom van összefüggés, de lehet, hogy tévedek. 

A GUI felületen akkor is látszódnia kellene, ha nincs kiosztva neki IP cim. De, mégsem látszódott. Beirtam a fenti egy sort és megjelent a listában. Öröm és boldogság.

A google://FreeBSD+Infiniband találatok eléggé egysíkúak, de azért néha mégis el kell olvasni. Itt ( https://serverfault.com/questions/946591/file-sharing-over-infiniband-o… ) olvasom a következőt:

==

And now, a few other hints that you didn't ask for, but might help. First, make sure you're running opensm on one of the systems. Think of it like a dhcp server; without it the two systems will physically link, but not pass any data.

==

Nálad nem épp ez a helyzet? Mondjuk nekem ez az opensm semmit nem mond, gőzöm nincs, honnan kéne legyen. Továbbolvasva, valszeg ez is jön a rendszerrel. A FreeBSD alatt jól eldugott manualjában ezt olvasni:

opensm provides an implementation of an InfiniBand Subnet Manager and Administration. Such a software entity is required to run for in order to initialize the InfiniBand hardware (at least one per each InfiniBand subnet).

Szóval szerintem már csak ennek kéne valahogy előállnia, és elindulnia.

Amiket olvasgatok, azok szerint opensm bináris (meg az egyéb ib* eszközök) attól lesz a gépeden, hogy nem csak a Mellanox modulokat gyártod le, hanem a /usr/src/contrib/ofad könyvtárban található egyéb eszközöket is.

Azt elmondod nekem, hogyan csináljam? A driver-modulokat értettem, beírtam a kernel config fáljába őket, aztán a kész .ko fájlokat vihettem át a PfSense kernel könyvtárába. Ezeket az eszközöket hogyan kell? Ezeket is ugyanoda kell beírnom? És melyik fájlokat kell majd átmásolnom?

Lassan feladom. Nincs már hozzá idegem. Ott van az orrom előtt, a Pfsense is látja már, mégsem kommunikál. Elkeserítő.

Hm.  A /usr/src/contrib/ofed alatt levő dolgokat kellene legenerálni, ezzel egyetlen bajom van, összesen egy CMakeLists.txt van az egyik alkönyvtárban, semmi egyéb make-hez való anyagot se látok.

Szóval én azt tippelem, hogy vedd fel az OFED-et a /etc/src.conf-ba, és generálj egy teljes rendszert a Handbook alapján. (make buildworld) Ha jól rémlik, hogy mit olvastam, ettől talán a /usr/obj alatt meglesznek a megfelelő binárisok.

(Feladni nem kéne, pl. az lehet egy járható út a *teszteléshez*, hogy veszel egy linuxos gépet, és azzal próbálod összelőni a FreeBSD-vel. Nyilván ott is kell ez az opensm, de ha minden igaz, Linux alatt sok terjesztésben ott van binárisan. Ha a gyárilag FreeBSD alatt működő kártyát rakod a linuxos gépbe, a másikat a FreeBSD-be, majd a Linuxon futtatod a doksik szerinti módon az opensm-et, és ettől megindul a forgalom, akkor annyit már lehet tudni, hogy ez kellene a tisztán FreeBSD-s működéshez is. És ha véletlenül nem sikerül legenerálni a FreeBSD-s verziót, akkor még mindig meg lehet próbálni a Linux-compat réteg segítségével mondjuk egy CentOS7-ből áthozott verziójú linuxos binárist futtatni.)

(Meg még az jutott eszembe, hogy mi lenne, ha a freebsd-infiniband levlistán is kérdeznél közben? Pl. célirányosan azt, hogy *pontosan*  mik azok a lépések, amik egy opensm futtatásához kellenek egy 12.0-s FreeBSD-n. Hogy generáljuk le a binárist, ilyesmi.)

Bocs, csak úgy óvatosan megkérdezem: ott, amikor kézzel IP-címet rendeltél hozzá, akkor UP-ban volt/lett az a nyomoronc mlxen0 (asszem a kép alapján, hogy azzal szívsz). Tehát egy *parancssori* "ifconfig -a" kimenetében látszik az interfész flags= mezőjében az UP szócska? Mert ugyebár a nélkül sem kommunikál. Ha véletlenül nem, akkor "ifconfig mlxen0 UP" esetleg?

Köszi, hogy próbálsz segiteni. Nagyon boldog lettem volna ha csak ennyi a hiba, de sajnos flags=8843<UP.

De, nektek hozzáértőknek valószinűleg többet mond ez a sok ákombákom, ezért megosztok 4 képernyőfotót, hátha észtevesztek rajta valamit.

https://ibb.co/WPdpBVy , https://ibb.co/T0qvs2W , https://ibb.co/F0dCGMR , https://ibb.co/Ry3zdSC

mlxen0 és mlx4_0 néven fut a listákban az ominózus kártya.

Én sajnos még mindig arra gyanakszom: kell az a nemműködő ipoib modul.

Sajnos passz. Az első kép alapján (status: no carrier) azt mondtam volna, hogy nincs bedugva vagy nem jó a kábel, de a második képen szerintem az aktív állapot és a Linkup is arra utal, hogy de.

Én itt elvesztem, és újra azt mondom, hogy a két FreeBSD közül az egyiket ideiglenesen váltsd ki egy Linuxszal, amin futtatod az az opensm-et - azzal a teszttel szerintem előrébb lehetne lépni.

Jav: az az A osztályú IP a C osztályú netmaskkal az biztosan jó? A túloldalon is ilyen?

Okosodtam újra egy kicsit.

Az ajánlott levlistán írták, hogy az ipoib működéséhez elengedhetetlen egy futó subnet manager. Tehát ezt mindenképpen indítani kell.

A másik, hogy az ipoib másnál is hibát generál, fordításnál ezt: Try adding: DEBUG_FLAGS="-DVIMAGE=1" to your out of tree build  kellene használni. (Hogy hová kell beírni azt még nem tudom :-) )

Opensm-ről ezt találtam: ahhoz, hogy az OpenSM működjön a gépen, futtassa a make buildworld szoftvert a WITH_OFED ="YES" kifejezéssel az /etc/src.conf fájlban. Ezzel csak az a gond, hogy a PfSense-en nem lehet futtatni a make parancsot mert:  sh: cc: not found make: "/usr/src/share/mk/bsd.compiler.mk" line 157: Unable to determine compiler type for CC=cc. Consider setting COMPILER_TYPE. " hibaüzenet jön vissza.

Ez így van, köszönöm is neked. Annyi csak a gondom, hogy windowsban nincs buildworld meg kernelfordítás, nekem minden lépést először ki kell gugliznom, meg kell tanulnom. Vagy, ha minden jól sikerül és az általad leírt /usr/obj alatt meglesznek a megfelelő binárisok, azokkal mit kezdek? Csak egyszerűen átmásolom a megfelelő mappába? Vagy azokat még telepítgetni kell?

szerintem az futtatható bináris lesz, tehát normál parancsként futtattható (ha benne van a path-ban az elérése, vagy a mappájából futtatod, vagy teljes path megadásával). ha pedig automatikusan indítanád bootoláskor (feltételezem igen):

To start OpenSM automatically when the system boots, add opensm_enable="YES" to /etc/rc.conf, e.g.
# sysrc opensm_enable="YES"

első körben /usr/bin-be tenném.

A következő történt: beleraktam a gépbe egy másik SSD-t, feltoltam rá újra egy FreeBSD 12-t és, hogy nekem könnyebb legyen egy KDE ablakkezelőt (kliketi-klikk) is. Az eddigi tapasztalatok alapján újra csináltam a kernelforditást. Lement hiba nálkül. Reboot. Minden modul betöltődött, szintén hiba nélkül. A kártya szépen megjelenik ifconfig, mlxfwmanager, ibstat alatt, de hiába van összedugva, a status: no carrier! Ez egy pillanatra elgondolkoztatott, mi van ha hardver hiba? Széthúzgáltam a kábelezést. A kártya eddig, egy Brocade 4x10Ge QSFP kábellel csatlakozott, egy Mellanox IS5022 nem-menedzselhető, 40Gbs switch-hez. Mellanox a Mellanoxhoz. Gondolnád, hogy ezek csak szeretik egymást. Hát nem. Egy adapter segitségével, optikai kábellel rádugtam egy SFP+ bemenetes egyszerű switch-re és azonnal működni kezdett. ??? (Kissé bajban is vagyok, mert ez a switch lett volna a hálózat lelke, de ez egy másik fórumra tartozik majd.)

Vissza a PfSense-hez, abban is megjön a kártya. Nagyon jó. Viszont nem kommunikál. Se a kicsi, se a nagy. Még IP cimet sem osztanak. Azt vettem észre, hogy -a tegnap megosztott képen is látható) a media sor végén azt irja <full-duplex, rxpause, txpause>. Ez biztosan nem jó igy, gondolom. Valakinek ötlet esetleg, hogy ez mitől lehet?

Csak józan paraszti eszemmel gondolom így. Rx a vétel, Tx az adás. Ha mind a kettő pause, azaz szünet módban van akkor nem kommunikál az eszköz. Csak azt kellene kitalálni ez mitől van? Biztosan valamilyen beállítási hiba, mert amikor először összeraktam ezt a rendszert és egy régebbi PfSense verzióval kipróbáltuk, amikor már felismerte a kisebbik kártyát az működött rendesen.

Szia!

Írhattad volna mivel vannak összekötve.
AZ "IS5022" egy buta "unmanaged" IB switch - ezen nem megy át az ethernet.

Ami neked kell az:
-MSX6012
-MSX6018
-MSX6036
Ezek IB és Ethernet(VPI) "managed" switch is, valamint van rajta subnet-manager.
Mivel ezeken QSFP+ foglalat van - breakout kábel (1xQSFP+ ---> 4xSFP+) - tudtommal nem támogatott.

Ami támogatott az a "konverter modul" ami (1xQSFP+ ---> 1xSFP+):
-MAM1Q00A-QSA

Köszönöm szépen a felvilágositást. Igy már érthető, miért nem ment a cucc?

Amit szeretnék, az igazából az, hogy az ethernet módban működő, MCX353-A fcbt kártya QSFP 40Gbs kijáratát, 3 felé tudjam osztani. Azt hittem ez a kis "buta" switch jó lesz hozzá, 3db konverter modullal használtam volna az elmenő oldalon, 3db Quanta LB4M switch-re kötve. Úgy tűnik tévedtem!

Akkor annyit kérdeznék, ti jobban képben vagytok nálam, ha veszek 1xQSFP -> 4xSFP+ kábelkorbácsot az jó lesz a céljaimnak?

Szia!

Ebben nem voltam biztos, utánanéztem:
https://community.mellanox.com/s/article/mellanox-breakout-cables-40g--…

A ConnectX kártya a 4x10GB módot nem támogatja, viszont a fent említett switch-ek támogatják.

 

Te esetedben három megoldás van:
1., -Veszel 2db "MAM1Q00A-QSA" konverter modult, ezt belerakod ConnectX kártyába, így lesz 2db 10G SFP+ portod (switcheket felfűződ egymás után így az "1.-be és a 3.-ba lesz 1x10G üresen" így marad 2x10GB port) - 2x 10G a pfsense

2A, -Veszel 1db MSX6012/6018/6036 IB+VPI switchet és "3db konverter modult: MAM1Q00A-QSA" és "3db SFP+ vagy DAC kábelt a 3db switchnek" és  "1db QSFP+ - QSFP+ kábelt" - 1x 40G a pfsense

2B, -Veszel 1db MSX6012/6018/6036 IB+VPI switchet és "1db 40G->10G breakout kábelt a 3db switchnek" + "1db QSFP+ - QSFP+ kábelt" - 1x 40G a pfsense

3., Nem használod a 40G kártyát, csak a másik 1x10G kártyát.

 

A 2A/2B megoldáshoz "gateway" licenszet ír a fenti link - de tudtommal valamelyik firmware-től verziótól felfelé már nem kell külön megvenni, mert benne van alapból.
A HPE "brand"-es Mellanox switchek-nél szerintem benne van a firmware-ban a gateway licensz.

Az még azt hiszem nem hangzott el, hogy a kisebbik kártyát csak a hálózat szerverének dedikálnánk, így az 1-es megoldás nem tud létrejönni.

A 2-es megoldást kellene megvalósitani. (Nem lesznek boldogok a cégnél a plusz kiadás miatt) Ehhez jelenleg az alábbi eszközeim vannak:

3db (Mellanox) HPE QSFP/SFP+ Adapter Kit 40GbE QSFP+ ---> 10GbE SFP+ 655874-B21 655902-001

10db Cisco SFP-10G-SR SFP+ V03 10-2415-03 modul

1db Brocade 40G-QSFP-QSFP-C-0101 1.0m QSFP-QSFP kábel

Jók lesznek ezek?

Szia!

A 3db switch-et azt Optikán akarod összekötni vagy DAC kábellel?
(Nem tudom, hogy a Cisco SFP+ működik-e a Mellanox/Quanta eszközökbe - elméletileg igen, de gyakorlatilag nem biztos)

A 40G kártyát csak 40G portba (QSFP+) tudod bekötni, más módot nem támogat, ehhez kellene egy olyan "switch" amiból tovább tudod adni a linkeket.
(Vagy az adapterrel lebutítod 40G --> 10G-re, erre azt mondtad nem megfelelő).

Szerintem nem biztos, hogy érdemes lenne beruházni sokportos 40G switch-be (Mellanox).

Jelenleg a Cisco SFP-k megvannak, szerintem inkább a Quanta switch-eket cserélném + 1db "core" eszközt tennék, amire felfűződ a többit:
-3db Cisco N3K-3048T ( 48G RJ45 ; 4x SFP+ )
-1db Cisco N3K-C3064PQ-10GX ( 48x SFP+ ; 4xQSFP+ )
(Énis használók Quanta switcheket, de nincs hozzá rendes szoftveres támogatás, pedig a hardver jó benne)

Vagyha szűkös a keret, akkor csak "core"-t kellene, megmaradnak a Quanta switch-ek:
-1db Cisco N3K-C3064PQ-10GX ( 48x SFP+ ; 4xQSFP+ )

Erre fel tudod fűzni a switchek-et rendesen, és a 40G kártyát is tudod használni.

Szia Tamás

Ez lett volna az eredeti terv: https://ibb.co/rmW2nwX amihez minden eszközt beszereztem már, annyi változással, hogy a router alatti gép változik egy Lenovo C30-ra, mert a hálókártyáknak PCIe 3.0 kell, viszont az eredeti MSI lapon csak 2.0-ás csatolók vannak.

- "A 3db switch-et azt Optikán akarod összekötni vagy DAC kábellel?"

     A helyszín egy nagyobb objektum, a rack-ek -amikbe a switch-ek be lettek szerelve- más-más helyiségekben vannak . A három rack-et, az építkezéskor installált optikai hálózat köti össze.

- "Nem tudom, hogy a Cisco SFP+ működik-e a Mellanox/Quanta eszközökbe"

     Igen. Ezt már kipróbáltam.( Router-> 40G kártya -> HPE QSFP/SFP extender+Cisco FET-10G transceiver -> LC-LC kábel -> Cisco FET-10G transceiver -> Quanta LB4M -> kliens gép )

- "A 40G kártyát csak 40G portba (QSFP+) tudod bekötni, más módot nem támogat, ehhez kellene egy olyan "switch" amiból tovább tudod adni a linkeket"

     Értem. (Ez lett volna a tervemben a Brocade 40G DAC kábel + MIS5022Q kombó, de azt mondod az csak infiniband módban működik, ethernetet nem visz át.)

Azt hiszem, átgondolva a lehetőségeket, az a legegyszerűbb, ha az általad ajánlott Mellanox 40G-s switch-ek közül keresek a neten egy baráti árút. A legkisebbet, amin átmegy az ethernet is. 

Újabb fejlemény. Nulláról akartam kezdeni. A PfSense-nek annyit turkáltam a belsejében gondoltam ideje újra rakni azt is. Letöltöttem egy friss snapshot-ot, feltoltam, és majd hanyatt estem. Az újabb kiadás csípőből felismerte mind a két kártyát. Jöhetett volna kicsit előbb is. Az elmúlt hetek szívása ezzel értelmét vesztette.

Viszont sajnos még mindig nem kommunikálnak, rxpause-txpause van. Nem értem miért? Az sem segített, hogy az IP címet is C-osztályúra írtam át. 

nem volt értelmetlen a sok szívás, egy csomó hasznos tudást szedtél össze, ami még jól jöhet. és úgy tűik, most már tényleg közel vagy hozzá, hogy működjön is.

ha ezt elhisszük: https://forums.freebsd.org/threads/what-means-rxpause-and-txpause-in-if…
akkor nem az rxpause/txpause a gond. az csak egy csomagtípus, amire képes a kártya.

egy teljes ifconfig kimenetet bemásolsz kérlek?

Délután megteszem persze.

(Arra kíváncsi lennék ezt a bemásolást hogyan lehet frappánsan, elegánsan megoldani PfSense alól? Mert vagy elkezdem kézzel kimásolni, vagy mint a múltkor lefotózom a képernyőt.)

Itt az ifconfig kimenete:

nfe1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
	options=c209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,VLAN_HWTSO,LINKSTATE>
	ether 00:24:21:12:02:a1
	inet6 fe80::224:21ff:fe12:2a1%nfe1 prefixlen 64 scopeid 0x2
	inet 55.55.2.1 netmask 0xfffffffc broadcast 55.55.2.3
	media: Ethernet autoselect (1000baseT <full-duplex,master>)
	status: active
	nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
enc0: flags=0<> metric 0 mtu 1536
	groups: enc
	nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
	options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
	inet6 ::1 prefixlen 128
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
	inet 127.0.0.1 netmask 0xff000000
	groups: lo
	nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
pflog0: flags=100<PROMISC> metric 0 mtu 33160
	groups: pflog
pfsync0: flags=0<> metric 0 mtu 1500
	syncpeer: 224.0.0.240 maxupd: 128 defer: on
	syncok: 1
	groups: pfsync
mlxen0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
	options=ed00bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWFILTER,VLAN_HWTSO,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
	ether 00:02:c9:15:d2:d0
	inet6 fe80::202:c9ff:fe15:d2d0%mlxen0 prefixlen 64 scopeid 0x7
	inet 192.168.1.129 netmask 0xffffff80 broadcast 192.168.1.255
	media: Ethernet autoselect
	status: no carrier
	nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
mlxen2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
	options=ed00bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWFILTER,VLAN_HWTSO,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
	ether 00:02:c9:a2:4e:20
	inet6 fe80::202:c9ff:fea2:4e20%mlxen2 prefixlen 64 scopeid 0x8
	inet 192.168.1.1 netmask 0xffffff80 broadcast 192.168.1.127
	media: Ethernet autoselect (10Gbase-CX4 <full-duplex,rxpause,txpause>)
	status: active
	nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

Az mlxen0 most nincs bedugva sehova azért "no carrier", de mlxen2 igen, és mégsem kommunikál.

Csak, hogy most nincs benne az infiniband switch.  A kisebbik, eredetileg is ethernet hálókártya a Quanta LB4M switch bemenetére van csatlakoztatva. Ez a felállás már régebben, egy 2.2-es builddel működött. Szépen jött rajta az IP osztás és az internet is. Most nemhogy hálózat még IP cím sem jön rajta. (Ha a tűzfalszabályokon rontottam el valamit (DNS, HTTP, HTTPS engedélyezve erre a kártyára) attól még legalább IP címet küldenie kellene a ráaggatott hálózatra nem?)

Szerintem jók a mostani szabályok, de biztos ami 100% holnap keresek egy egyszerű hálókártyát beleteszem a gépbe és azzal kipróbálom.

Győzelem!!!

Úgy tűnik sikerült rátalálni a megoldásra, mindkét kártyán megjött a hálózat.

A PfSense-ben a System / Advanced / System Tunables fül alatt van egy csomó állitható paraméter, ezek között van kettő, a "net.inet.tcp.recvspace" és a "net.inet.tcp.sendspace". (send-receive buffer méretek) Alapértelmezetten 65288 az értéke, ezt kellett visszavenni. Nálam a felére, 32644-en már működnek az eszközeim, de olvastam a neten olyan kommentjét, aki a negyedére 16322-re vette vissza, hogy ne dobálja el a csomagjait.