Saya menjalankan RHEL 6.4, kernel-2.6.32-358.el6.i686, pada HP ML 350 G5 dengan dua onboard Broadcom NetXtreme II BCM5708 1000Base-T NICs. Tujuan saya adalah menyalurkan ikatan kedua antarmuka menjadi mode=1
pasangan failover.
Masalah saya adalah bahwa terlepas dari semua bukti bahwa ikatan telah diatur dan diterima, menarik kabel keluar dari NIC primer menyebabkan semua komunikasi terhenti.
ifcfg-etho dan ifcfg-eth1
Pertama, ifcfg-eth0:
DEVICE=eth0
HWADDR=00:22:64:F8:EF:60
TYPE=Ethernet
UUID=99ea681d-831b-42a7-81be-02f71d1f7aa0
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
Selanjutnya, ifcfg-eth1:
DEVICE=eth1
HWADDR=00:22:64:F8:EF:62
TYPE=Ethernet
UUID=92d46872-eb4a-4eef-bea5-825e914a5ad6
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ifcfg-bond0
File konfigurasi ikatan saya:
DEVICE=bond0
IPADDR=192.168.11.222
GATEWAY=192.168.11.1
NETMASK=255.255.255.0
DNS1=192.168.11.1
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
BONDING_OPTS="mode=1 miimmon=100"
/etc/modprobe.d/bonding.conf
Saya memiliki /etc/modprobe.d/bonding.conf
file yang diisi sebagai berikut:
alias bond0 bonding
ip addr output
Ikatan sudah habis dan saya dapat mengakses layanan publik server melalui alamat IP ikatan:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000
link/ether 00:22:64:f8:ef:60 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000
link/ether 00:22:64:f8:ef:60 brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 00:22:64:f8:ef:60 brd ff:ff:ff:ff:ff:ff
inet 192.168.11.222/24 brd 192.168.11.255 scope global bond0
inet6 fe80::222:64ff:fef8:ef60/64 scope link
valid_lft forever preferred_lft forever
Modul Kernel Berikat
... dimuat:
# cat /proc/modules | grep bond
bonding 111135 0 - Live 0xf9cdc000
/ sys / class / net
Sistem /sys/class/net
file menunjukkan hal-hal baik:
cat /sys/class/net/bonding_masters
bond0
cat /sys/class/net/bond0/operstate
up
cat /sys/class/net/bond0/slave_eth0/operstate
up
cat /sys/class/net/bond0/slave_eth1/operstate
up
cat /sys/class/net/bond0/type
1
/ var / log / messages
Tidak ada masalah muncul di file log. Bahkan, semuanya terlihat agak bahagia.
Jun 15 15:47:28 rhsandbox2 kernel: Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: setting mode to active-backup (1).
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: setting mode to active-backup (1).
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: setting mode to active-backup (1).
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: setting mode to active-backup (1).
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: Adding slave eth0.
Jun 15 15:47:28 rhsandbox2 kernel: bnx2 0000:03:00.0: eth0: using MSI
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: making interface eth0 the new active one.
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: first active interface up!
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: enslaving eth0 as an active interface with an up link.
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: Adding slave eth1.
Jun 15 15:47:28 rhsandbox2 kernel: bnx2 0000:05:00.0: eth1: using MSI
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: enslaving eth1 as a backup interface with an up link.
Jun 15 15:47:28 rhsandbox2 kernel: 8021q: adding VLAN 0 to HW filter on device bond0
Jun 15 15:47:28 rhsandbox2 kernel: bnx2 0000:03:00.0: eth0: NIC Copper Link is Up, 1000 Mbps full duplex
Jun 15 15:47:28 rhsandbox2 kernel: bnx2 0000:05:00.0: eth1: NIC Copper Link is Up, 1000 Mbps full duplex
Jadi apa masalahnya?!
Menyentak kabel jaringan dari eth0 menyebabkan semua komunikasi menjadi gelap. Apa yang bisa menjadi masalah dan langkah apa lagi yang harus saya ambil untuk memecahkan masalah ini?
EDIT:
Pemecahan Masalah Lebih Lanjut:
Jaringan adalah satu subnet, VLAN tunggal yang disediakan oleh switch ProCurve 1800-8G. Saya telah menambahkan primary=eth0
untuk ifcfg-bond0
dan jasa networking restart, tapi hal itu tidak mengubah perilaku apapun. Saya memeriksa /sys/class/net/bond0/bonding/primary
sebelum dan sesudah menambahkan primary=eth1
dan memiliki nilai nol, yang saya tidak yakin baik atau buruk.
Tailing /var/log/messages
ketika eth1
kabelnya dilepas menunjukkan tidak lebih dari:
Jun 15 16:51:16 rhsandbox2 kernel: bnx2 0000:03:00.0: eth0: NIC Copper Link is Down
Jun 15 16:51:24 rhsandbox2 kernel: bnx2 0000:03:00.0: eth0: NIC Copper Link is Up, 1000 Mbps full duplex
Saya menambahkan use_carrier=0
untuk ifcfg-bond0
's BONDING_OPTS
bagian untuk memungkinkan penggunaan ioctls MII / ethtool. Setelah memulai kembali layanan jaringan, tidak ada perubahan gejala. Menarik kabel dari eth0
menyebabkan semua komunikasi jaringan terhenti. Sekali lagi, tidak ada kesalahan dalam /var/log/messages
menyimpan untuk pemberitahuan bahwa tautan pada port itu turun.
up
. Tailing/var/log/messages
pada saat eth0 dicabut hanya menunjukkan bahwa tautan tembaga telah dicabut. Tidak ada pesan dari modul bonding.Jawaban:
BACA. ANDA. KONFIGURASI.
Dan ketika itu gagal ...
BACA. SEMUA. OUTPUT.
Apakah Anda melihat apa yang ada di
ifcfg-bond0
dalamnya? Tidak, apakah Anda mengerti apa yang ada diifcfg-bond0
dalamnya?Apa yang ada di dunia penguin yang licin
miimmon=100
?Oh, maaf, maksud Anda
miimon=100
?Ya, saya pikir Anda maksud
miimon
dan tidakmiimmon
.Juga, hadiah besar adalah bahwa ketika Anda me-restart layanan jaringan Anda, Anda melihat ini:
Perhatikan baik-baik semua yang Anda ketik dan saat Anda melakukan kesalahan pengetikan yang tidak terhindarkan, perhatikan dengan cermat setiap hasil yang Anda lihat.
Anda adalah orang jahat dan Anda harus merasa buruk.
sumber
Coba tentukan salah satu NICS sebagai budak utama.
Lebih banyak dokumentasi dari RH :
primary = Menentukan nama antarmuka, seperti eth0, perangkat utama. Perangkat utama adalah yang pertama dari antarmuka ikatan yang akan digunakan dan tidak ditinggalkan kecuali jika gagal. Pengaturan ini sangat berguna ketika satu NIC di antarmuka ikatan lebih cepat dan, karenanya, mampu menangani beban yang lebih besar. Pengaturan ini hanya valid ketika antarmuka ikatan dalam mode cadangan aktif. Rujuk ke /usr/share/doc/kernel-doc-/Documentation/networking/bonding.txt untuk informasi lebih lanjut.
sumber
ifcfg-bond0
saya memeriksa/sys/class/net/bond0/bonding/primary
dan jawabannya kosong. Saya menambahkanprimary=eth0
untukifcfg-bond0
dan restart layanan jaringan. Tidak ada perubahan dalam gejala dan tidak ada perubahan untuk/sys/class/net/bond0/bonding/primary
Terima kasih atas sarannya!Tambahkan opsi ikatan berikut downdelay = xxxx dalam milidetik yang gagal et setelah terdeteksi sebagai gagal dan mengatur budak utama untuk yang tersisa. Jika parameter ini tidak ada dalam bonding_opt, bond mendeteksi kegagalan (karena Anda memasukkan miimom = yyyy) tetapi tidak pernah gagal dengan eth0. Anda dapat melihat ini terjadi dengan melihat file / proc / net / bonding / bondX.
Bagaimanapun, dengan RHEL 6.3 (versi yang hampir sama dengan milik Anda) kami mengalami beberapa masalah lain dengan ikatan yang terkait dengan kegagalan kembali, duplikasi addr mac yang terlihat dari saklar.
semoga berhasil.
sumber