web-dev-qa-db-ja.com

2つのインターフェイスの1つだけを起動できます

HP Proliant DL 360 G4pサーバーで奇妙な問題が発生しています。2つのギガビットイーサネットインターフェイスがありますが、そのうちの1つしか起動できません。これは私を驚かせ始めています。ここを向いた理由x64 ubuntu 11.10サーバーエディションを実行しています。

lshw -c networkは、2番目のインターフェースが無効であることを示しています。なぜそれを有効にするのか、そしてどうしてそれを有効にするのか私にはわかりません。

$ 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

Ifup eth1を実行しようとすると、

$ Sudo ifup eth1
Ignoring unknown interface eth1=eth1.

/ etc/network/interfacesにeth1がリストされていないときにそれが起こると私は考えました。しかし、eth1の構成を追加しても、ifupを実行できません。

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

わかりやすくするために、/ etc/network/interfacesのマスクバージョンを追加しました。それが問題の原因だとは思わない。

$ 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

これを修正するのに本当に助けが必要です。それは私を夢中にさせています。ありがとう。

7
mstaessen

私は解決策を見つけました。/etc/network/interfacesに2つのゲートウェイが定義されていましたが、単純に複数のゲートウェイを持つことはできません。意味がない。

ゲートウェイは、すべてのトラフィックを送信するIPです。 2つある場合、ルーティングテーブルにはdest 0.0.0.0の二重エントリがあり、システムはこれを処理できません。ダブルルートは、RTNETLINKが「ファイルが存在する」と回答する原因になります。つまり、0.0.0.0のルートがすでに存在しています。

ゲートウェイの1つをコメントアウトしたので、eth0とeth1の両方をifupできます。

tl; drゲートウェイエントリを1つだけ残るまで削除します。

11
mstaessen

これから link エラーを修正するのに役立つ多くのことを学びました。

/ etc/network/interfacesのeth0設定の下に次の行を追加するだけです:

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

これは最も美しいソリューションではありませんが、少なくとも機能します。クレジットはgrapsus.netとgoogleの所有者に送られます。

2
Sietse Verhagen

一方のみを開始する場合は、もう一方のauto ethX仕様を削除します。これは、インターフェースを自動的に開始する必要があることを示しています。 1つのインターフェイスで問題が発生している場合は、問題を解決するまで手動で起動すると役立つ場合があります。

また、両方のインターフェースがアクティブである場合、デフォルトのルートにすべきではないインターフェースにルーティングメトリックを設定することもできます。

インターフェースを開始しようとした後、dmesgの出力を確認することができます。これにより、生成されたカーネルメッセージが表示され、診断が容易になる場合があります。 mii-toolが利用可能な場合は、インターフェースに関する適切な情報を提供できます。

0
BillThor

出力の2番目の部分の真ん中はlink=no

ケーブルが緩んでいるか壊れていると思います。また、一方の端にNIC=が表示される場合もあります。

0
Ladadadada

ILOポートにいないことを確認しますか?

0
Joel K