Só pode abrir uma das duas interfaces

7

Estou com um problema bizarro no meu servidor HP Proliant DL 360 G4p. Ele tem duas interfaces ethernet gigabit, mas posso trazer apenas uma delas. Isso está começando a me assustar e é por isso que eu virei para cá. Estou executando a edição do servidor x64 ubuntu 11.10.

A rede lshw -c mostra que a segunda interface está desativada. Não tenho ideia do porquê e como ativá-lo.

$ sudo lshw -c network
  *-network:0
       description: Ethernet interface
       product: NetXtreme BCM5704 Gigabit Ethernet
       vendor: Broadcom Corporation
       physical id: 2
       bus info: pci@0000:02:02.0
       logical name: eth0
       version: 10
       serial: 00:18:71:e3:6d:26
       size: 100Mbit/s
       capacity: 1Gbit/s
       width: 64 bits
       clock: 66MHz
       capabilities: pcix pm vpd msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=tg3 driverversion=3.119 duplex=full firmware=5704-v3.27b, ASFIPMIc v2.36 ip=10.48.8.x latency=64 link=yes mingnt=64 multicast=yes port=twisted pair speed=100Mbit/s
       resources: irq:25 memory:fdf70000-fdf7ffff
  *-network:1 DISABLED
       description: Ethernet interface
       product: NetXtreme BCM5704 Gigabit Ethernet
       vendor: Broadcom Corporation
       physical id: 2.1
       bus info: pci@0000:02:02.1
       logical name: eth1
       version: 10
       serial: 00:18:71:e3:6d:25
       capacity: 1Gbit/s
       width: 64 bits
       clock: 66MHz
       capabilities: pcix pm vpd msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=tg3 driverversion=3.119 firmware=5704-v3.27b latency=64 link=no mingnt=64 multicast=yes port=twisted pair
       resources: irq:26 memory:fdf60000-fdf6ffff

Se eu tentar ifup eth1, então eu obtenho

$ sudo ifup eth1
Ignoring unknown interface eth1=eth1.

Eu percebi que é o que acontece quando não há eth1 listado em / etc / network / interfaces. Mas quando eu adiciono a configuração para eth1, eu ainda não consigo ifup.

$ sudo ifup eth1
RTNETLINK answers: File exists
Failed to bring up eth1.
I've also tried ifconfig eth1 up but without any result.

Para maior clareza, adicionei uma versão mascarada de / etc / network / interfaces. Eu não acho que seja a causa do problema.

$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 10.48.8.x
        netmask 255.255.255.y
        network 10.48.8.z
        broadcast 10.48.8.t
        gateway 10.48.8.u

auto eth1
iface eth1 inet static
        address   193.190.253.x
        netmask   255.255.255.y
        network   193.190.253.z
        broadcast 193.190.253.t
        gateway   193.190.253.u

Eu realmente preciso de ajuda para consertar isso. Está me deixando louco. Obrigado.

    
por mstaessen 10.03.2012 / 17:32

5 respostas

10

Eu encontrei a solução. Havia dois gateways definidos em / etc / network / interfaces, enquanto você simples não pode ter mais de um gateway. Isso não faz sentido.

Um gateway é um IP para o qual você envia todo o tráfego. Se você tivesse dois, sua tabela de roteamento teria uma entrada dupla para dest 0.0.0.0 e o sistema não poderia lidar com isso. A rota dupla é o que causa a resposta RTNETLINK "Arquivo existe", o que significa que já existe uma rota para 0.0.0.0.

Eu comentei um dos gateways e agora posso fazer o mesmo com eth0 e eth1.

tl; delete as entradas do gateway até que você tenha apenas uma esquerda.

    
por 11.03.2012 / 01:45
2

A partir deste link eu aprendi muito isso me ajudou a corrigir o erro.

Basta adicionar a seguinte linha ao seu / etc / network / interfaces abaixo da sua configuração eth0:

pre-up ip addr del 192.168.1.254/24 dev eth0 2> /dev/null || true

Não é a solução mais bonita, mas, pelo menos, funciona. Créditos vão para o dono do grapsus.net e do google.

    
por 27.11.2012 / 11:03
0

No meio da segunda parte da saída está link=no .

Eu suspeito que você tenha um cabo solto ou quebrado. Você também pode ter um NIC preso em uma extremidade.

    
por 10.03.2012 / 17:39
0

Tem certeza de que não está na porta da OIT?

    
por 10.03.2012 / 20:21
0

Se você quiser que apenas um inicie, remova a especificação auto ethX do outro. Indica que a interface deve ser iniciada automaticamente. Se você tiver problemas com uma interface, pode ser útil iniciá-la manualmente até resolver o problema.

Você também pode querer definir uma métrica de roteamento na interface que não deve ser a rota padrão se ambas as interfaces estiverem ativas.

Você pode querer verificar a saída de dmesg depois de tentar iniciar as interfaces. Isso deve exibir qualquer mensagem gerada pelo kernel e facilitar o diagnóstico. mii-tool se estiver disponível pode fornecer boas informações sobre as interfaces.

    
por 10.03.2012 / 22:53