Página 1 de 2 12 ÚltimoÚltimo
+ Responder ao Tópico



  1. #1

    Padrão Várias placas de rede

    Galera,

    Tenho um servidor onde preciso ter nele pelo menos 4 placas de rede.

    Tenho vários slots PCI, e uma placa jé é on-board.

    Não consigo fazer reconhecer mais de 3 placas

    Já espetei as placas....
    Entrei no setu da máquina, desabilitei, serial, lpt, som, usb para economizar IRQ...
    Iverti a ordem das placas...

    Enfim, aquilo que estava dentro do meu alcanse/conhecimento eu tentei!

    Estava com linux slackware com kernel 2.4 agora atualizei para 2.6 e continua reconhecendo apenas 3

    ....Ahhh, todas as placas estão em perfeito estado de funcionamento... testei uma a uma.

    Alguem teria uma idéia????????????????????

  2. #2

    Padrão

    infelizmente a placa on-board é desabilitada pelas demais - ou vice-versa, nunca me aprofundei. O fato é que sempre aparecem 3 das 4.

    Sugestão: trocar por uma placa de gente, quero dizer, substituir a máquina por alguma outra com equipamento adequado (tudo off-board). Ou então, por tentativa e êrro: colocar UMA única placa mudando-a de slot até que sejam reconhecidas DUAS placas (essa e a on-board). Um dos slots certamente é o compartilhado com a on-board e, portanto, não deverá ser usado.

    Se tiver (por exemplo) 4 slots e DOIS não mostrarem sua placa, vc está mal..

  3. #3

    Padrão

    irado, eu estou com uma máquina com duas placas IBM on board usando módulo tg3 e uma Intel off usando o módulo e1000. O caso é que a cada boot uma vira eth0 e no próximo já eh outra placa que vira eth0. Vc teria alguma idéia?

  4. #4

    Padrão

    estou pensando em comprar essas placas que tem 4 saídas.

    acho q será minha saída.

  5. #5

    Padrão

    Citação Postado originalmente por WhiteTiger Ver Post
    irado, eu estou com uma máquina com duas placas IBM on board usando módulo tg3 e uma Intel off usando o módulo e1000. O caso é que a cada boot uma vira eth0 e no próximo já eh outra placa que vira eth0. Vc teria alguma idéia?
    caramba.. agora complicou tudo, pôxa vida

    não tem como vc ter todas off-board? pq essa perambulação de placa me parece um treco (no mínimo) complicado. Insolúvel? talvez não para vc, mas francamente atingiu meu nível de incompetência.

    O que me deixa curioso: SE a placa perambula, o que está acontecendo com o MAC-Addr delas? Acredito eu que, embora perambulando de slot, por suposto mesmo aquela que ontem era eth0 e hoje é eth1, ainda MANTÉM o mesmo MAC-Addr.

    Vc pode até levantar isso, não? se vc pedir um ifconfig ANTES de atribuir enderêços ip, vc pode ler o hw-addr de cada uma. Então, como idéia:

    vc faria um bash script para LER os MAC-addr de cada placa, SEM atribuição de ip-addr (ainda).

    compara o MA com sua posição atual, ou seja:

    o mac01 hoje está associado à placa 03..

    então..

    associamos o ip-addr do slot3, à placa 03, pq as placas podem ter mudado de nomenclatura, mas não de mac-addr (ou slot). Ou seja:

    ontem estávamos assim:

    eth0 ---> slot 2
    eth1 ---> slot 3
    eth2 ---> slot 1

    hoje, está assim:

    eth0 --> slot 1
    eth1 --> slot 3
    eth2 --> slot 2

    xiii.. não sei se vc vai entender - eu mesmo tô achando confuso.. mas ficaria mais ou menos assim:

    o script shell pergunta:

    ifconfig eth0 | grep hwaddr = numero de eth0; then
    ifconfig ip-de-eth0 up
    elif... (não era)
    fazer verificação para eth1 e (sucessivamente) eth2

    ou então verificar placa a placa pra acertar o mac-addr de cada uma e atribuir seus ip-addr

    [irado@irado: /sbin/ifconfig | grep -i hwaddr
    eth0 Link encap:Ethernet HWaddr 00:0C:6E:95:AA:55


    pronto. Mais ou menos isso aí.

    divirta-se.

    HIH
    Última edição por irado; 28-11-2006 às 12:15.

  6. #6

    Padrão

    O problema é esse mesmo. Vou ser mais específico

    Eu tenho 3 placas

    off board intel com módulo e1000 e mac final 76
    on board ibm com módulo tg3 e mac final 5C
    on board ibm com módulo tg3 e mac final 5D

    Boot tipo 1:
    eth0 = intel mac 76
    eth1 = ibm mac 5C
    eth2 = ibm mac 5D

    Boot tipo 2:
    eth0 = intel mac 76
    eth1 = ibm mac 5D
    eth2 = ibm mac 5C

    Boot tipo 3:
    eth0 = ibm mac 5C
    eth1 = ibm mac 5D
    eth2 = intel mac 76

    Boot tipo 4:
    eth0 = ibm mac 5C
    eth1 = intel mac 76
    eth2 = ibm mac 5D

    Boot tipo 5:
    eth0 = ibm mac 5D
    eth1 = intel mac 76
    eth2 = ibm mac 5C

    Boot tipo 6:
    eth0 = ibm mac 5D
    eth1 = ibm mac 5C
    eth2 = intel mac 76

    Entendeu como tah meu nível? Feio neh?

    eu ateh posso setar um script que leia o mac e coloque o ip que eu quero mas isso me parece a pior das gambiarras. E ainda tem outro problema. imagine o rolo que vai virar meu script de firewall.

  7. #7

    Padrão

    Complementando

    Acreditando que poderia ser um erro na inicialização do módulo, eu adicionei a seguinte linha no /etc/modprobe.conf bem, no início

    alias eth0 e1000

    para ver se conseguia setar a placa intel na eth0 mas não funcionou.

    Tentei colocar uma regra no udev prendendo o eth com o mac da placa. desabilitei o hotplug que vem padrão e abilitei o udev. nada

  8. #8

    Padrão

    complementando mais ainda, já coloquei script na inicialização para utilizar o nameif para setar pelo mac adress também e nada.

  9. #9

    Padrão

    tenta por no

    /etc/modules.conf

    o lance do alias eth0 e1000

  10. #10

    Padrão

    Eu fiz uma coisa aqui e funcionou mas ainda não entendi. Segui esta documentação: Bonding - LinuxNet

    Adicionei as seguintes linhas no /etc/modprobe.conf (/etc/modules.conf em outras dist).

    Código :
    install bonding /sbin/modprobe tg3 /sbin/modprobe e1000; /sbin/modprobe --ignore-install bonding
    alias bond0 bonding
    options bond0 mode=0 miimon=100 downdelay=200 updelay=200

    Ainda não consegui tentender o motivo. Se alguem conseguir lendo a documentação me explicar eu agradeceria.

    O resto da configuração eu fiz de acordo com o meu tutorial do bonding que se encontra em: https://under-linux.org/wiki/index.p.../Redes/Bonding

  11. #11

    Padrão

    Bom pelo que eu entendi da documentacao, era o que bonding carregava antes dos drivers das ethX e por isso acaba 'reoordenando' eles, da maneira que voce colocou, ele carrega primeira os drivers das placas e depois o bonding, utilizando esse comando que voce colocou vc altera esse modo de funcionamento e assim 'forca' a ordem correta dos modulos que voce precisa carregar, desta maneira nao 'ferrando' a ordem... ele nao explica detalhadamente na config isso

  12. #12

    Padrão

    Detalhe povu. Não funcionou ainda. Reiniciei o pc aqui e nada.

  13. #13

    Smile

    Código :
    install bonding /sbin/modprobe tg3 /sbin/modprobe e1000; /sbin/modprobe --ignore-install bonding
    alias bond0 bonding
    options bond0 mode=0 miimon=100 downdelay=200 updelay=200

    Eu alterei a configuração acima e deixei assim:

    Código :
    install bonding /sbin/modprobe e1000 /sbin/modprobe tg3; /sbin/modprobe --ignore-install bonding
    alias bond0 bonding
    options bond0 mode=0 miimon=100 downdelay=200 updelay=200

    Assim ele sobe primeiro a e1000 que quero que esteja na eth0 e depois as tg3. Estou no quinto reboot e está normal. estou reiniciando pela sexta vez para ver no que que dah.

  14. #14

    Padrão

    Citação Postado originalmente por ijr Ver Post
    Galera,

    Tenho um servidor onde preciso ter nele pelo menos 4 placas de rede.

    Tenho vários slots PCI, e uma placa jé é on-board.

    Não consigo fazer reconhecer mais de 3 placas

    Já espetei as placas....
    Entrei no setu da máquina, desabilitei, serial, lpt, som, usb para economizar IRQ...
    Iverti a ordem das placas...

    Enfim, aquilo que estava dentro do meu alcanse/conhecimento eu tentei!

    Estava com linux slackware com kernel 2.4 agora atualizei para 2.6 e continua reconhecendo apenas 3

    ....Ahhh, todas as placas estão em perfeito estado de funcionamento... testei uma a uma.

    Alguem teria uma idéia????????????????????
    cara...

    eu tive este problema, tinha uma placa-mae asus com placa de rede onboard, mas não era das melhores placa-mae... e queria colocar mais 3 placas de rede, e no caso estava usando uma realtek e duas sis900, nao funcionava nem ca porra....

    ae mudei de placa mae e de placa de rede, é outra asus, mas nao lembro o modelo, é uma placa nova, com placa de rede onboard marvell, e estou usando nela mais 3 placas 3com...

    e está funcionando belezudo...

    qual as placas de rede que vc está usando??? talvez seja esse o problema...

    valeu

  15. #15

    Padrão

    WhiteTiger

    sobre as placas estarem alternando o nome, eu já tive este problema também...

    eu me lembro que quando usava conectiva 10 resolvia facilmente esse problema setando o alias no modprobe.conf... mas no debian eu não consegui resolver isso...

    não me lembro onde eu li na net (deveria ter copiado o texto), que em algum lugar das configurações submundas do linux dá pra setar o eth com o MAC da placa..

    pelo que eu li vc fez isso, mas do que vc disse e lembrando do texto q eu li, onde vc configurou não era o mesmo lugar q o texto dizia...

    e como na miha resposta acima, tenho em um micro 4 placas de rede, uma, onboard, marvell, e 4 3com, elas nunca deram este tipo de problema (graças a Deus)...

    aqui em meu laboratório (minha casa), tentei fazer esta configuração para setar qual placa seria a ethX e qual seria a ethY, mas sem sucesso...

    independente da coniguração do alias o linux setava os eth na ordem dos slots...

    foi foda isso, pq eu queria mudar as placas e tiver que muda-las de slot pra fazer o que queria... :/

    valeu

  16. #16

    Padrão

    Tenta fazer assim:

    No /etc/sysctl.conf e no /etc/hosts
    informamos as Ethernets com "append="rtl8139 eth0" e sucessivamente. Dessa forma a máquina sabe que tem que buscar essa informação.
    Esta é uma sugestão e pode haver outras. No Debian deixamos essa informação no /etc/init.d/bootmisc.sh que é o /etc/rc.d/rc.local do slackware ou do Mandriva, etc.

  17. #17

    Thumbs up

    Galera. Eu fiz o seguinte script para resolver o meu problema

    Código :
    #!/bin/bash
    #       
    #       Script criado para subir as placas de rede eth0 e eth1
    #       em bonding mode=0 (alta disponibilidade e load balance)
    #       Este Script é colocado em /etc/inid.d/bond
    #
    #       É também criado um link para este em:
    #                                 /etc/inid.d/rc2.d/wbond
    #                                 /etc/inid.d/rc3.d/wbond
    #                                 /etc/inid.d/rc5.d/wbond
    #       O nome do link wbond é para ele ser iniciado depois de todos os processos
    #       Na verdade só é necessário que rode depois do script de rede
    #               
    #       É também criado o link em /bin/bond para que o comando "bond" fique no PATH
    #
    #       Data de criação: 24/11/2006
    #       Última Alteração: 29/11/2006
    #       Autor: Willian Itiho Amano - WhiteTiger ([email protected])
    #
    #
    #
     
    #Faz um include para utilizar o comando que mostra quando a opção terminou corretamente ou com falha
    . /etc/rc.status
     
    #IP que o bonding vai reponder
    IP_BONDING="xxx.xxx.xxx.xxx"
     
    #mascara que o bonding utilizará
    MASC_Bonding="24"
     
    #IP da placa extra
    IP_EXTRA=xxx.xxx.xxx.xxx
     
    #Mascara da placa extra
    MASC_EXTRA="255.255.255.255"
     
    case "$1" in
        start*)
                    echo "Iniciando as placas de rede em modo bonding"
                    #Derruba todas as placas
                    ifconfig eth0 down
                    ifconfig eth1 down
                    ifconfig eth2 down
                    ifconfig bond0 down
     
                    #Derruba todos os módulos das placas de rede
                    rmmod e1000
                    rmmod tg3
     
                    #Sobe os módulos na odem certa eth0 e eth1 são as onboard
                    modprobe tg3
                    modprobe e1000
     
                    #Configura a placa off
                    ifconfig eth2 $IP_EXTRA netmask $MASC_EXTRA
     
                    #configura a rota default (gateway)
                    route add default gw 200.142.11.129
     
                    #Espera que o módulo das placas estarem preparados para receber as configurações do bonding (Não. Elas não estarão prontas automaticamente após o levantamento do módulo). Tempo de 5 segundos.
                    sleep 5
     
                    #Atribue as configurações de rede do bond0
                    ip addr add $IP_BONDING/$MASC_Bonding brd + dev bond0
     
                    #Sobe a interface bond0
                    ip link set dev bond0 up
     
                    #Atribue as interfaces eth0 e eth1 como slave de bond0
                    ifenslave bond0 eth0 eth1
                    rc_status -v
            ;;
        stop)
                    echo "Derrubando as placas de rede em modo bonding"
     
                    #Esse comando derruba a interface bonding e consequentemente a eth0 e eth1.
                    ip link set dev bond0 down
     
                    #Não é necessário derrubar os módulos e as configurações das placas de rede pois os scripts de finalização do linux se encarrega disso.
                    rc_status -v
            ;;
            restart)
                    $0 stop
                    $0 start
            ;;
            status)
                   #Checa o status do bonding pois o ifconfig não apresenta corretamente as configurações
                   cat /proc/net/bonding/bond0
            ;;
           *)
                    #Se o cara não entrar com start, stop ou status mostra essa mensagem
                    echo "Utilize $0 {start|stop|restart|status}"
    esac

    Logicamente eu adicionei as seguinte linhas no início do meu /etc/modprobe.conf (/etc/modules.conf em outras distribuições)

    Código :
    alias bond0 bonding
    options bond0 mode=0 miimon=100 downdelay=200 updelay=200

    Desta forma está funcionando (ainda-Já esperimentei que no sexto reset dah erro. Espero que agora fique estável).

    O engraçado é que o ifconfig não fica legal. A segunda placa de rede do bonding fica sem o ip e a mascara mas funciona perfeitamente fazendo o balanceamento. O ifconfig mostra o seguinte resultado:

    Código :
    bond0     Link encap:Ethernet  HWaddr <MAC_DA_PRIMEIRA_PLACA_DO_BONDING>
              inet addr:<IP_DO_BONDING>  Bcast:<BROADCAST>  Mask:<MASCARA_DO_BONDING>
              inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
              UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
              RX packets:8043 errors:0 dropped:0 overruns:0 frame:0
              TX packets:91 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:954365 (931.9 Kb)  TX bytes:11550 (11.2 Kb)
     
    eth0      Link encap:Ethernet  HWaddr <MAC_DA_PRIMEIRA_PLACA_DO_BONDING>
              inet addr:<IP_DO_BONDING>  Bcast:<BROADCAST>  Mask:<MASCARA_DO_BONDING>
              inet6 addr: fe80::211:25ff:fee9:265c/64 Scope:Link
              UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
              RX packets:4017 errors:0 dropped:0 overruns:0 frame:0
              TX packets:46 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:476589 (465.4 Kb)  TX bytes:5923 (5.7 Kb)
              Interrupt:16
     
    eth1      Link encap:Ethernet  HWaddr <MAC_DA_PRIMEIRA_PLACA_DO_BONDING>
              inet6 addr: fe80::211:25ff:fee9:265c/64 Scope:Link
              UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
              RX packets:4026 errors:0 dropped:0 overruns:0 frame:0
              TX packets:45 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:477776 (466.5 Kb)  TX bytes:5627 (5.4 Kb)
              Interrupt:16
     
    eth2      Link encap:Ethernet  HWaddr <MAC_DA_PLACA_OFF-BOARD>
              inet addr:<IP_OFF-BOARD  Bcast:<BROADCAST Mask:<MASCARA_OFF-BOARD>
              inet6 addr: fe80::20e:cff:fe85:4276/64 Scope:Link
              UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:4372 errors:0 dropped:0 overruns:0 frame:0
              TX packets:832 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:490379 (478.8 Kb)  TX bytes:147144 (143.6 Kb)
              Base address:0x4000 Memory:cdee0000-cdf00000
     
    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:10417 errors:0 dropped:0 overruns:0 frame:0
              TX packets:10417 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:2658955 (2.5 Mb)  TX bytes:2658955 (2.5 Mb

    Para ter uma melhor visualização do bonding vc pode utilizar o status do script com:

    Código :
    # /etc/inid.d/bond status

    ou como está no PATH por causa do link em /bin para o script

    Código :
    # bond status


    Ou ainda pode ir direto com:

    Código :
    # cat /proc/net/bonding/bond0
    Ethernet Channel Bonding Driver: v2.6.5 (November 4, 2005)
     
    Bonding Mode: load balancing (round-robin)
    MII Status: up
    MII Polling Interval (ms): 100
    Up Delay (ms): 200
    Down Delay (ms): 200
     
    Slave Interface: eth0
    MII Status: up
    Link Failure Count: 0
    Permanent HW addr: <MAC_DA_PRIMEIRA_PLACA_DO_BONDING>
     
    Slave Interface: eth1
    MII Status: up
    Link Failure Count: 0
    Permanent HW addr: <MAC_DA_[b]SEGUNDA[/b]_PLACA_DO_BONDING>
    Última edição por WhiteTiger; 30-11-2006 às 16:34.

  18. #18

    Padrão

    a minha dica é vc tirar o modprobe de DENTRO do /etc/init.d/bond e deixar no /etc/modprobe.conf como estava antes (e como indica na documentação) quem sabe assim funciona tranquilo... (claro sem dar os rmmods no init.d) ou optar por deixar toda essa parte de modulos para dentro do /etc/init.d e esquecer TODA essa config no /etc/modprobe.conf , essa é a minha dica para este caso ja que parece _TUDO_ certo e da dando altos bugs... testa ai e me fala

  19. #19

    Padrão

    Seguinte. Primeiro eu coloquei pra subir os módulos das placas de rede no meu script pois o modprobe.conf estava dando peino e invertendo a ordem das placas. Então agora eu sei a ordem dos módulos e logo a ordem que as placas vão ficar.

    Não posso colocar a configuração do bonding no meu script pois o comando modprobe não aceita as opções dae ficaria o bonding com as configurações default que no caso é mode=1 (uma placa up e a outra down em espera) e eu estou utilizando mode=0 (As duas Up fazendo balanceamento de carga e alta disponibilidade).

    Estou fazendo um teste aqui para dar dois modprobe tg3 seguidos para ver se resolve o problema do ifconfig.

  20. #20

    Padrão

    Humm. ok voce tem isso aqui:

    alias bond0 bonding
    options bond0 mode=0 miimon=100 downdelay=200 updelay=200


    vc ta me dizendo que:


    modprobe bonding mode=0 miimon=100 ....

    nao funciona igual?