RHEL 6.4: Liên kết kênh 1 chế độ không bị lỗi


11

Tôi đang chạy RHEL 6.4, kernel-2.6.32-358.el6.i686, trên HP ML 350 G5 với hai NIC Broadcom NetXtreme II BCM5708 1000Base-T trên bo mạch. Mục tiêu của tôi là liên kết hai giao diện thành một mode=1cặp chuyển đổi dự phòng.

Vấn đề của tôi là bất chấp tất cả các bằng chứng cho thấy trái phiếu được thiết lập và chấp nhận, việc kéo cáp ra khỏi NIC chính khiến mọi hoạt động giao tiếp đều chấm dứt.

ifcfg-etho và ifcfg-eth1

Đầu tiên, 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

Tiếp theo, 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

Tập tin cấu hình của trái phiếu của tôi:

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/boinating.conf

Tôi có một /etc/modprobe.d/bonding.conftập tin được điền như vậy:

alias bond0 bonding

đầu ra ip addr

Trái phiếu đã hết hạn và tôi có thể truy cập các dịch vụ công cộng của máy chủ thông qua địa chỉ IP của trái phiếu:

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

Mô-đun hạt nhân liên kết

...Nó đã nạp đầy:

# cat /proc/modules | grep bond
bonding 111135 0 - Live 0xf9cdc000

/ sys / lớp / mạng

Hệ /sys/class/netthống tập tin cho thấy những điều tốt đẹp:

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 / tin nhắn

Không có gì đáng quan tâm xuất hiện trong tệp nhật ký. Trong thực tế, mọi thứ trông khá hạnh phúc.

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

Vậy vấn đề là gì?!

Kéo cáp mạng từ eth0 làm cho tất cả giao tiếp bị tối. Vấn đề có thể là gì và tôi cần làm thêm những bước nào để khắc phục sự cố này?

BIÊN TẬP:

Xử lý sự cố thêm:

Mạng là một mạng con duy nhất, Vlan đơn được cung cấp bởi bộ chuyển mạch ProCurve 1800-8G. Tôi đã thêm primary=eth0vào ifcfg-bond0và các dịch vụ khởi động lại kết nối mạng, nhưng điều đó vẫn không thay đổi bất kỳ hành vi. Tôi đã kiểm tra /sys/class/net/bond0/bonding/primarycả trước và sau khi thêm primary=eth1và nó có giá trị null, điều mà tôi không chắc là tốt hay xấu.

Đuôi /var/log/messageskhi eth1cáp đã được gỡ bỏ cho thấy không có gì hơn:

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

Tôi nói thêm use_carrier=0để ifcfg-bond0's BONDING_OPTSphần để cho phép sử dụng IOCTLs MII / ethtool. Sau khi khởi động lại dịch vụ mạng, không có thay đổi về triệu chứng. Kéo cáp từ eth0khiến tất cả các giao tiếp mạng chấm dứt. Một lần nữa, không có lỗi nào trong việc /var/log/messageslưu thông báo rằng liên kết trên cổng đó bị hỏng.


1
Bạn có thể thêm một số thông tin như chuyển đổi make / model được kết nối với, bất kỳ thiết lập Vlan nào trên switch, trạng thái nô lệ trái phiếu và / var / log / message sau khi rút cáp ra eth0 không?
Andy Shinn

@AndyShinn Công tắc mà nó được kết nối trực tiếp là ProCurve 1800-8G. Không có Vlan trên mạng. Đó là một mạng con đơn giản, mạng Vlan đơn.
Wesley

@AndyShinn Ah, và cả các trạng thái nô lệ trái phiếu đều được báo cáo là up. Đuôi /var/log/messagestại thời điểm eth0 được rút ra chỉ cho thấy rằng liên kết đồng đã được rút ra. Không có tin nhắn từ các mô-đun liên kết.
Wesley

Câu trả lời:


21

ĐỌC. CỦA BẠN. KHÁI NIỆM.

Và khi thất bại ...

ĐỌC. TẤT CẢ. NGOÀI RA.

Bạn có thấy những gì trong ifcfg-bond0? Không, bạn có hiểu những gì trong ifcfg-bond0?
Những gì trong thế giới của chim cánh cụt trơn là miimmon=100?
Oh tôi xin lỗi, ý bạn là miimon=100gì?

Vâng, tôi nghĩ rằng bạn có ý nghĩa miimonvà không miimmon.

Ngoài ra, một ưu đãi lớn là khi bạn khởi động lại dịch vụ mạng của mình, bạn sẽ thấy điều này:

service network restart
Shutting down interface bond0:                             [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface bond0:  ./network-functions: line 446: /sys/class/net/bond0/bonding/miimmon: No such file or directory
./network-functions: line 446: /sys/class/net/bond0/bonding/miimmon: No such file or directory
                                                           [  OK  ]

Hãy chú ý cẩn thận đến mọi thứ bạn gõ và khi bạn mắc lỗi đánh máy không thể tránh khỏi, hãy chú ý cẩn thận đến mọi đầu ra mà bạn nhìn thấy.

Bạn là một người xấu và bạn nên cảm thấy tồi tệ.


8
CON MÈO XẤU! thuốc xịt có vòi
voretaq7

2

Hãy thử chỉ định một trong những NICS là nô lệ chính.

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 primary=eth0"

Thêm tài liệu từ RH :

chính = Chỉ định tên giao diện, chẳng hạn như eth0, của thiết bị chính. Thiết bị chính là thiết bị đầu tiên trong số các giao diện liên kết được sử dụng và không bị bỏ qua trừ khi nó bị lỗi. Cài đặt này đặc biệt hữu ích khi một NIC trong giao diện liên kết nhanh hơn và do đó, có thể xử lý tải lớn hơn. Cài đặt này chỉ hợp lệ khi giao diện liên kết ở chế độ sao lưu dự phòng. Tham khảo /usr/share/doc/kernel-doc-/Documentation/networking/boinating.txt để biết thêm thông tin.


Trước khi chỉnh sửa ifcfg-bond0tôi đã kiểm tra /sys/class/net/bond0/bonding/primaryvà phản hồi trống. Tôi đã thêm primary=eth0vào ifcfg-bond0và khởi động lại dịch vụ mạng. Không có thay đổi trong triệu chứng và không có thay đổi đối với /sys/class/net/bond0/bonding/primaryCảm ơn về lời đề nghị!
Wesley

thử thêm use_carrier = 0? xem tài liệu RH ở trên để biết chi tiết
dmourati

Xong - thêm thông tin vào câu hỏi. Không có thay đổi trong hành vi, nhưng đó là một lựa chọn tốt để biết.
Wesley

2

Thêm tùy chọn liên kết sau downdelay = xxxx trong milisec không thành công sau khi nó được phát hiện là không thành công và đặt nô lệ chính thành phần còn lại. Nếu tham số này không có trong bonding_opt, liên kết sẽ phát hiện lỗi (vì bạn bao gồm miimom = yyyy) nhưng nó không bao giờ thất bại với eth0. Bạn có thể thấy điều này xảy ra bằng cách xem tệp / Proc / net / bonding / bondX.

Dù sao, với RHEL 6.3 (gần giống với phiên bản của bạn), chúng tôi đang gặp một số vấn đề khác về liên kết liên quan đến việc không quay lại, addr mac trùng lặp được nhìn thấy từ công tắc.

chúc may mắn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.