FreeBSD 9.1; bridge0 e problema de gateway padrão

3

Eu tenho um sistema FreeBSD 9.1-RELEASE-p1 com três nics, eu estou usando: igb0, sfxge1 e sfxge2. igb0 usado para acesso à internet e é o gateway padrão. Outras duas nics, eu preciso usar para criar bridge0. Quando o sistema é inicializado, executo os comandos a seguir e coloco a ponte em funcionamento sem problemas.

ifconfig bridge0 create
ifconfig bridge0 addm sfxge0 addm sfxge1 up
ifconfig bridge0 inet 172.18.0.1/24 

O problema começa quando quero que a ponte de configuração esteja ativa durante a inicialização. Depois de ler a documentação e a seguir, descobri o seguinte no meu /etc/rc.conf :

cloned_interfaces="bridge0"
ifconfig_bridge0="addm sfxge0 addm sfxge1 up"
ifconfig_sfxge0="up"
ifconfig_sfxge1="up"
ifconfig_bridge0="inet 172.18.0.1/24"

Na reinicialização, o sistema fica preso ao habilitar o gateway padrão no igb0. Única maneira de proceder, foi ctrl + alt + delete, reinicie em modo único e modifique /etc/rc.conf . Porção de configuração, que define o igb0 e o gateway padrão:

defaultrouter="10.100.4.254"
hostname="zfstank"
ifconfig_igb0="up"
ifconfig_igb0="inet 10.100.4.1 netmask 255.255.255.0"

Eu tentei modificar a última linha da configuração de bridge0 para ifconfig_bridge0_alias0="inet 172.18.0.1/24" e modificar a linha de configuração da ponte ifconfig_bridge0="addm sfxge0 addm sfxge1 inet 172.18.0.1/24 up" - resultou no mesmo problema - ficar preso na criação do gateway padrão.

Durante a inicialização, vejo que o igb0 aparece on-line depois que o bridge0 é configurado.

if_bridge e sfxge foram compilados no kernel.

Update1 : eis o que mais eu tenho no meu /etc/rc.conf :

sshd_enable="YES"
ntpd_enable="YES"

zfs_enable="YES"
sfxge_load="YES"

Update2 :

QuandoeupressionoCtrl+T:

load0.03cmd:route1136[keglimit]281.48r0.00u0.00s0%1080k

Update3:

Parecequeoproblemafoidevidoaoescaperápidodembufs.Comoo wiki do FreeNAS aponta, isso é comum em cartões multiport em e igb e principalmente não tinha nada a ver com bridge (me corrija se eu estiver errado).

Então, depois que adicionei as linhas a seguir em /boot/loader.conf e inicializei, o sistema terminou a inicialização corretamente.

kern.ipc.nmbclusters="131072"
hw.igb.num_queues=1
    
por sashk 22.03.2013 / 13:28

2 respostas

4

Você não pode ter várias linhas da mesma configuração. As linhas posteriores substituirão o anterior.

Sem saber como é o resto do seu arquivo rc.conf , ele deve ter algo assim:

hostname="zfstank"
defaultrouter="10.100.4.254"

cloned_interfaces="bridge0"
autobridge_interfaces="bridge0"
autobridge_bridge0="sfxge0 sfxge1"
ifconfig_bridge0="inet 172.18.0.1/24"

ifconfig_sfxge0="up"
ifconfig_sfxge1="up"

ifconfig_igb0="inet 10.100.4.1 netmask 255.255.255.0"

Notas:

  • A ordem não importa, mas isso é muito mais fácil de ler.
  • É desnecessário explicitamente "up" e interface, a menos que não tenha outra configuração.
por 22.03.2013 / 18:20
1

Isto:

ifconfig_bridge0="addm sfxge0 addm sfxge1 up"
...
ifconfig_bridge0="inet 172.18.0.1/24"

na verdade é o mesmo que apenas segunda linha. E isso tenta definir o IP na interface de ponte não configurada - provavelmente é causa do problema. Você deve adicionar inet 172.18.0.1/24 à primeira linha e excluir segundo.

Você poderia remover qualquer configuração de interface do rc.conf e comentá-la em rc.local e tentar desta forma?

defaultrouter="10.100.4.254"
hostname="zfstank"
ifconfig_igb0="inet 10.100.4.1/24 up"
ifconfig_sfxge0="up"
ifconfig_sfxge1="up"
cloned_interfaces="bridge0"
autobridge_interfaces="bridge0"
autobridge_bridge0="sfxge0 sfxge1"
ifconfig_bridge0="inet 172.18.0.1/24 up"

Isso altera um pouco a ordem das coisas.

    
por 22.03.2013 / 14:22