여러 네트워크 인터페이스를 갖춘 일부 서버가 있고 본딩 및 일부 VLAN이 설정되어 있습니다. 서버를 다시 시작할 때마다 다른 서버는 연결된 네트워크 인터페이스 중 하나에 액세스할 수 없으며 해당 인터페이스에서 트래픽을 보낼 수도 없습니다. 그러나 인터페이스의 ifconfig 상태는 링크가 작동 중임을 나타냅니다. 이 시점에서 네트워크를 다시 시작하면 모든 것이 정상으로 돌아갑니다.
네트워크를 다시 시작한 후 모든 것이 예상대로 작동했다는 사실로 인해 내 구성이 정확하다고 생각했지만 다시 시작할 때 부팅 순서의 일부가 제대로 작동하지 않았지만 네트워크를 올바르게 다시 시작했을 때 알 수 있었습니다.
동일한 설정(다른 IP 주소 제외)을 가진 7개의 동일한 서버가 있는데 재부팅할 때마다 모든 서버에 이런 일이 발생합니다.
설정에 대한 자세한 내용:
- 서버: HP 프로라이언트 DL380
- 6개의 네트워크 인터페이스, 3개의 본딩 인터페이스로 설정, 이름: bondm, bondr, bondt.
- 내장 커넥터 4개, 나머지 2개는 추가 PCI 카드에 있음
- bondm은 2개의 VLAN으로 구성됩니다.
- bondm이 기본 경로로 사용됨
- bondm은 eth0과 eth2를 사용하도록 설정되어 있습니다.
- bondm은 재부팅 시 실패한 인터페이스입니다.
고쳐 쓰다: 나는 완전히 동일한 구성과 kickstart 파일을 사용하여 이것을 다시 테스트했지만 SL 6.2와 6.3을 사용했습니다. 6.2에서는 모든 것이 괜찮았지만 6.3에서는 이런 문제가 발생했습니다. 커널이 다르기 때문일까요?
다음은 /etc/sysconfig/network-scripts에 있는 몇 가지 관련 구성 파일입니다:
$ cat ifcfg-eth0 ifcfg-eth2 ifcfg-bondm ifcfg-bondm.132 ifcfg-bondm.832
DEVICE=eth0
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
HWADDR=44:1E:A1:03:71:C4
SLAVE=yes
MASTER=bondm
ETHTOOL_OPTS="-s eth0 speed 1000 duplex full"
DEVICE=eth2
HWADDR=44:1E:A1:03:71:C8
NM_CONTROLLED=no
ONBOOT=yes
SLAVE=yes
MASTER=bondm
ETHTOOL_OPTS="-s eth2 speed 1000 duplex full"
DEVICE=bondm
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
BONDING_OPTS="mode=active-backup miimon=100"
DEVICE=bondm.132
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.13.19
PREFIX=28
GATEWAY=192.168.13.17
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
BONDING_OPTS="mode=active-backup miimon=100"
VLAN=yes
DEVICE=bondm.832
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
IPADDR=10.123.94.69
PREFIX=28
DEFROUTE=no
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
BONDING_OPTS="mode=active-backup miimon=100"
VLAN=yes
답변1
modprobe.d
이 설명에 따르면RHEL6 사이트파일을 생성 /etc/modprobe.d/bonding.conf
하고 bondm
여기에 장치를 추가하셨나요?
alias bondm bonding
두 번째 네트워크 카드 유형 없음
게다가 나는 중요하지 않지만 당신의 것입니다이더리움 2장치에 다음 줄이 없습니다:
TYPE=Ethernet
네트워크 관리자를 비활성화하시겠습니까?
NetworkManager 서비스를 비활성화해 보셨나요? 시도해 보고 문제가 지속되는지 확인하고 재부팅하여 확인하십시오.
% chkconfig off NetworkManager
UDEV
이 컴퓨터에서 udev를 사용하고 있습니까? 여기에 파일을 채우는 udev를 발견했습니다 /etc/udev/rules.d/70-persistent-net.rules
. 파일에는 시스템의 NIC에 대한 중복 항목이 있었고 파일을 수동으로 편집해야 했습니다. 내 모습은 다음과 같습니다.
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# net device () (custom name provided by external tool)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:ff:ff:f5", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
UDEV는 MAC 주소를 기반으로 장치를 할당하며, PCI 버스에서 NIC가 차지하는 위치를 기반으로 할당하도록 강제할 수 있습니다.
이 명령을 사용하여 NIC에 대한 PCI 정보를 확인할 수 있습니다.
% for i in /sys/class/net/*;do printf "device: %6s - %s\n" `basename $i` `readlink -f $i`;done
device: br0 - /sys/devices/virtual/net/br0
device: eth0 - /sys/devices/pci0000:00/0000:00:1c.5/0000:09:00.0/net/eth0
device: eth1 - /sys/devices/pci0000:00/0000:00:2d.5/0000:03:00.0/net/eth1
device: lo - /sys/devices/virtual/net/lo
이 출력을 기반으로 고유한 udev 규칙 파일을 채워야 합니다.
% cat > /etc/udev/rules.d/70-persistent-net.rules << EOF
ACTION=="add", SUBSYSTEM=="net", BUS=="pci", KERNELS=="0000:00:1c.5", \
NAME="eth0"
ACTION=="add", SUBSYSTEM=="net", BUS=="pci", KERNELS=="0000:00:2d.5", \
NAME="eth1"
EOF
노트:또한 NIC 설정을 시도했을 수 있는 기존 udev 규칙 파일을 삭제/비활성화했는지 확인하십시오.
CentOS 6.3 버그
나는 이것을 만났다허점CentOS 문제 추적기에서. 6.3의 릴리스 노트에도 이 내용이 나열되어 있습니다.
에서 발췌Centos 6.3 릴리스 노트:
결합된(802.3ad) 인터페이스와 일부 NIC에서 802.1q VLANing을 사용할 때 문제가 있는 것 같습니다. 자세한 내용은 이 업스트림 bugzilla 항목 및 CentOS bugzilla 항목을 참조하세요. 6.3과 함께 출시된 CentOS-Plus 커널에는 이 문제를 해결하기 위한 패치가 포함되어 있습니다. 이 문제는 커널 2.6.32-279.2.1부터 수정되었습니다.
이 문제는 당신이 다루고 있는 문제와 매우 비슷해 보입니다. 어떤 커널을 실행하고 있나요? ( uname -a
).