web-dev-qa-db-ja.com

デュアルNICメインボードのMACアドレス

ここに奇妙な問題があります。

デュアルNICメインボードを備えたデバイスが多数あります。いくつかはRealtekNICであり、それは最悪です。一部はIntele1000ですが、そうではありません。

2台のマシンで気づきました。1台はIntelNIC、もう1台はRealtekで、1台のマシンのMACアドレスをDHCPサーバーのdhcpd.confファイルに入れて、マシンをPXEブートするようにしました。再構築環境では、最初はすべて問題ありません。

サーバーはDHCP割り当てを取得し、PXEはUbuntupreseed環境で起動します。

1台または2台のマシンでは、UbuntuのDHCPネットワーク構成まで到達し、失敗します。ビジーボックスシェル(インストールマシンのtty2上)をプルアップしてip linkを実行すると、other NICでUPフラグが設定されていることがわかります。

ここにいくつかのものがあります。

  Host xeon16-ghz240-gb48-node1 {
        hardware ethernet BC:AE:C5:07:1F:18;
        filename "pxelinux.0";
        next-server 192.168.123.80;
  }

それがdhcpd.confにあるものです

これは、邪悪なマシンのIPリンクがどのように見えるかです。 ip link output

実際に接続されているNIC)は1つだけです(意図的に)。

ご覧のとおり、dhcpd構成にあるNICは、UPとしてマークされておらず、UPになっているリンクはDHCPのリンクではありません。

これまで、2つのブランドのデュアルNIC構成でこれを見てきました。

誰かが1)それを引き起こしているものとb)それについて私たちができることを知っていますか?

9
Tom O'Connor

何かをする方法は常に複数あります:)

解決策1

それぞれが1つずつあるマザーボード?

どちらのモジュールもブラックリストに登録します(ethtool -i eth0)はRealtekカードをサポートしています。

Ubuntu サポートmodule_name.blacklist=yes起動時にブラックリストに登録すると、preseed環境でmodprobeオプションを変更して、後でプローブされないようにすることができます。


解決策2

問題を言い換えさせてください:

2つのNICを備えたマザーボードがあり、どのインターフェイスが接続されていても一貫して動作するようにします。(OSの観点から)どのインターフェイスが接続されるかを常に判断できるとは限りません。

ボンディングを設定してください!アクティブ-パッシブ構成を使用します(mode=active-backup miimon=100)両方のインターフェースをスレーブとして使用します。このように、どのインターフェースが接続されていても、常に機能します。


解決策3

NICが常に同じPCIIDに表示されるように、マザーボードは十分に一貫していますか? udevルールを使用して、特定のPCIアドレスのカードを常にeth0に割り当て、他のアドレスのカードをeth1に割り当てます。

デバイスをeth0に割り当てる2つの異なるudevルールを持つことができることに注意してください-これにより、Realtekとe1000のケースを同時に処理できます。

8
MikeyB

PXELINUXIPAPPEND 2オプションをpxelinux.cfgファイルに追加して、PXEブートを実行したインターフェイスを使用するようにinitスクリプトに指示することができます。

/var/lib/tftpboot/pxelinux.cfg/default

LABEL linux
   KERNEL /ubuntu/casper/vmlinuz 
   APPEND initrd=/ubuntu/casper/initrd.gz root=/dev/nfs boot=casper netboot=nfs nfsroot=192.168.1.1:/var/lib/tftpboot/ubuntu --
   IPAPPEND 2

参照: http://www.syslinux.org/wiki/index.php/SYSLINUX#IPAPPEND_flag_val_.5BPXELINUX_only.5D

5
panticz.de