Alamat MAC pada motherboard dual-NIC

9

Ini masalah aneh.

Kami memiliki sejumlah perangkat dengan motherboard dual-NIC. Beberapa adalah Realtek NIC, yang payah. Beberapa adalah Intel e1000s, yang tidak.

Saya baru saja memperhatikan 2 mesin, satu adalah Intel NIC, satu adalah Realtek, bahwa ketika saya memasukkan alamat MAC dari satu mesin ke dalam dhcpd.conffile di server DHCP kami untuk mendapatkannya ke PXE boot mesin ke lingkungan yang dibangun kembali, awalnya semuanya baik-baik saja.

Server mendapat alokasi DHCP, dan PXE melakukan booting ke lingkungan preseed Ubuntu.

Pada satu atau dua mesin, ia mencapai konfigurasi jaringan DHCP Ubuntu, dan gagal. Jika saya menarik shell busybox (aktif tty2pada mesin instalasi), dan menjalankan ip link, saya dapat melihat bahwa bendera UP diatur pada NIC lainnya .

Ini beberapa barang.

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

Itu yang ada di dalam dhcpd.conf

Inilah yang tampak seperti tautan ip pada mesin jahat. output tautan ip

Hanya satu NIC yang benar-benar terhubung (dengan sengaja).

Seperti yang Anda lihat, NIC yang ada di konfigurasi dhcpd, tidak ditandai sebagai UP, dan tautan yang UP, bukan yang ada di DHCP.

Sejauh ini saya sudah melihat ini pada dua merek konfigurasi dual-NIC.

Adakah yang tahu 1) apa penyebabnya, dan b) Apa yang bisa kita lakukan?

Tom O'Connor
sumber
1. Urutan yang berbeda untuk menginternalisasi perangkat PCI. Jadi BIOS menggunakan MAC ": 18" dan OS menggunakan MAC ": 19" terlebih dahulu. 2. Tidak tahu =]
Chris S
Saya akan menambahkan ini sebagai komentar daripada jawaban karena itu cukup lemah, tetapi saya dapat mengatakan bahwa seseorang sebelum saya menemukan masalah yang sama persis ini dan menyelesaikannya dengan menambahkan MAC dan MAC +1 ke dhcpd.conffile ketika menyiapkan Kickstart.
Kyle Smith
Seperti apa rupa preseed? Secara khusus, sudah netcfg/choose_interfacediatur?
Shane Madden
./master/master_preseed.cfg:d-i netcfg/choose_interface select auto
Tom O'Connor
@KyleSmith Ya .. Ini sedikit stokastik.
Tom O'Connor

Jawaban:

8

Selalu ada lebih dari satu cara untuk melakukan apa pun :)

Solusi 1

Motherboard dengan masing-masing?

Blacklist, modul mana saja ( ethtool -i eth0) mendukung kartu Realtek.

Ubuntu mendukung module_name.blacklist=yes untuk memasukkannya ke daftar hitam saat boot dan Anda harus dapat mengubah opsi modprobe di lingkungan yang telah dipra-presed agar tidak diperiksa nanti.


Solusi 2

Biarkan saya ulangi masalahnya:

Kami memiliki motherboard dengan dua NIC dan kami ingin mereka bekerja secara konsisten di mana pun antarmuka dicolokkan. Kami tidak selalu dapat menentukan antarmuka mana (dari sudut pandang OS) yang akan dicolokkan.

Siapkan ikatan! Gunakan konfigurasi aktif-pasif ( mode=active-backup miimon=100) dengan kedua antarmuka sebagai budak. Dengan cara ini, ia akan selalu berfungsi tidak peduli antarmuka mana yang terhubung.


Solusi 3

Apakah motherboard cukup konsisten sehingga NIC selalu muncul pada PCI ID yang sama? Gunakan aturan udev untuk selalu menetapkan kartu pada alamat PCI tertentu ke eth0 dan kartu di alamat lain ke eth1.

Perhatikan bahwa Anda dapat memiliki dua aturan udev berbeda yang menetapkan perangkat ke eth0 - ini memungkinkan Anda untuk menangani kasing Realtek dan e1000 secara bersamaan.

MikeyB
sumber
Mereka berdua Realtek sedih .. Akan mendapatkan beberapa e1000 untuk menggantinya, maka mungkin akan membunuh mereka di bios.
Tom O'Connor
1
Ooohhhh, disalahpahami. Kira Anda memiliki motherboard dengan 1 x e1000 dan 1 x Realtek.
MikeyB
Jawaban yang bagus .. Saya tidak sepenuhnya yakin apa yang didukung karena masalah ini cenderung muncul sendiri antara PXE loader dan DHCP debian-installer. Saya pribadi berpendapat bahwa opsi terbaik adalah menonaktifkan semua kecuali satu Intel NIC yang layak
Tom O'Connor
Kami akhirnya mengatur ikatan, dan menyelesaikan masalah dengan memasukkan kedua alamat ke DHCP.
Tom O'Connor
5

Anda dapat mencoba menambahkan opsi PXELINUX IPAPPEND 2 ke file pxelinux.cfg Anda untuk memberi tahu skrip init untuk menggunakan antarmuka yang melakukan boot PXE:

/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

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

panticz.de
sumber