pfSense com NICs Mellanox ConnectX-2 de 10GBit

1

Eu recentemente peguei dois NICs Mellanox ConnectX-2 de 10GBit para comprar barato. Estou tentando fazer com que eles sejam reconhecidos por uma caixa pfSense. O BIOS reconhece os NICs, sem problema algum. No entanto, pfSense definitivamente não faz. Não está aparecendo de todo.

Eu ouvi dizer que eu posso instalar o driver sozinho ou pelo menos jogar algum tipo de manteiga de amendoim mágica em algum lugar para dar certo. Infelizmente, a única evidência disso é de um este post sobre o FreeNAS . Isso não era aplicável à minha instalação embora. Eu também consegui encontrar um post no NAS4Free , mas não consegui encontrar o ISO mencionado no post, nem qual versão do BSD foi baseada. Talvez eu tenha perdido alguma coisa no site da NAS4Free, mas não está lá.

Eu tentei alguns instantâneos e o release oficial atual 2.2.6. Sem sorte.

Alguém pode me apontar a direção certa com isso?

    
por Mythical Juggernaut 26.03.2016 / 18:12

2 respostas

1

Tudo bem. Passei um tempinho descobrindo isso.

Acontece que o Mellanox basicamente retirou todo o suporte para este NIC. No entanto, nem tudo está perdido. Você ainda pode usar as versões herdadas do ConnectX-3 para realmente utilizar o NIC (ou assim diz as notas de versão do driver que baixei). Você pode encontrar a página do driver aqui e o download real do driver aqui . Está abaixo de ConnectX-3 -> Archive Versions -> 2.1 -> FreeBSD -> All -> All no site real do driver.

Felizmente, ele vem com instruções sobre como instalar o driver. Como o pfSense não vem com ambiente adequado para compilação, você terá que configurar uma máquina separada para compilar. Eu instalei o FreeBSD 10.3 ( com código-fonte; é uma opção no instalador ) em uma máquina virtual, que é a mesma versão que minha versão do pfSense está usando. Certifique-se de usar a mesma versão do FreeBSD que a usada na sua caixa pfSense. Pode causar problemas de outra forma.

Eu instalei o gcc usando pkg install gcc . Infelizmente, a essa altura, não consegui usar os drivers que baixei do site da Mellanox. No entanto, o FreeBSD ainda tem suporte para os drivers, eles não estão habilitados por padrão. Se você encontrar um erro ao criar os drivers , poderá encontrar os dois módulos que precisa compilar em /usr/src/sys/modules . Haverá dois diretórios de interesse, mlxen e mlx4 . Haverá um Makefile em ambos os diretórios. Faça o procedimento usual de make && make install que você faria com qualquer outro driver. Ele soltará os módulos necessários em /boot/kernel . Os nomes dos módulos são mlx4.ko e mlxen.ko . Copie ambos os módulos para a sua caixa pfSense (no mesmo diretório: /boot/kernel ). Depois disso, você pode adicionar essas duas linhas ao seu arquivo /boot/loader.conf :

mlx4_load="YES"
mlxen_load="YES"

Salve o arquivo e reinicie sua máquina pfSense.

Para mim, a NIC agora aparece e se permite ser configurada como uma interface de LAN. Espero que isso tenha ajudado outra pessoa. Passei muito tempo com isso, graças a Mellanox e seu aparente ódio pelo ConnectX-2.

EDIT: Considere isso a resposta para esta pergunta. Eu tenho que esperar dois dias para marcá-lo como a resposta, mas eu posso esquecer de fazer isso até lá.

    
por 27.03.2016 / 00:52
1

Editar & FreeNAS-9.10-STABLE-201605240427 Nota!

Recentemente eu atualizei para o mais recente FreeNAS-9.10-STABLE-201605240427 build e, na reinicialização, recebi um módulo de referência do kernel panic mlxen. Meu palpite [conhecimento limitado] é que o driver mlx agora está incluído como parte da compilação do FreeBSD e, portanto, essas etapas não são mais necessárias.

Então, se você está preso a um pânico no kernel:

  1. Reinicie e no prompt do GRUB, pressione 'e' para editar as configurações de inicialização
  2. Isso abrirá um editor simples, encontrará linhas que fazem referência ao mlx driver loading e comenta com um # .
  3. Pressione F10 para continuar a inicialização
  4. Remova as instruções do carregador de módulos dos Ajustes do sistema.

@ A solução da Lildirt também funciona no FreeNAS (FreeNAS-9.10-STABLE-201605021851). Curta história, eu peguei um pacote de duas cartas por US $ 50 e um cabo de conexão direta para que eu pudesse fazer iSCSI entre FreeNAS e meu outro servidor rodando o ESXi. O ESXi reconheceu o cartão sem problemas; muito parecido com pfsense na situação do OP, o FreeBSD não sabia o que é.

Meus passos diferiam em:

  1. Criou uma cadeia do FreeBSD para trabalhar em
  2. Gcc instalado ( pkg install gcc )
  3. Download do tar mencionado ( wget http://www.mellanox.com/downloads/Drivers/MLNX_OFED_FREEBSD_V2.1.6.tar.gz )
  4. Untar
  5. Navegue até o diretório que contém os makefiles (cada vez para mlx4 e mlxen )
  6. make && make install isso será instalado em /boot/kernel com relação à raiz da prisão (então, no meu caso, meu caminho real foi /mnt/zfspoolname/jails/mytempjail/boot/kernel ) (também de cada vez para os dois módulos)
  7. Agora copie os dois arquivos .ko (módulos) para /boot/kernel do FreeNAS (lembre-se de sair da cadeia, duh)
  8. Adicione as instruções do carregador de módulos via FreeNAS web ui (Sistema - > Ajustes - > Adicionar Ajustável); Isso essencialmente os adiciona a /boot/loader.conf.local
  9. Reinicie o FreeNAS
  10. Agora você deve poder adicionar uma nova interface de rede, a minha foi nomeada mlxen0
por 11.05.2016 / 03:50