CentOS7에서 다시 시작한 후 Bond의 Mac 주소가 변경되는 이유는 무엇입니까?

CentOS7에서 다시 시작한 후 Bond의 Mac 주소가 변경되는 이유는 무엇입니까?

LACP 모드(mode=4 <=> 802.3ad)에서 두 개의 인터페이스가 함께 바인딩되어 있습니다 bond0.

bond0다시 시작하기 전의 Mac 주소:

$ cat /sys/class/net/bond0/address
xx:xx:xx:xx:xx:bf

bond0다시 시작한 후의 Mac 주소:

$ cat /sys/class/net/bond0/address
xx:xx:xx:xx:xx:bd

다음은 네트워크 구성에 대한 몇 가지 정보입니다.

$ ip -o l | grep state.UP
2: em1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 9000 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000\    link/ether xx:xx:xx:xx:xx:bd brd ff:ff:ff:ff:ff:ff
3: em2: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 9000 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000\    link/ether xx:xx:xx:xx:xx:bd brd ff:ff:ff:ff:ff:ff
7: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 9000 qdisc noqueue state UP mode DEFAULT group default qlen 1000\    link/ether xx:xx:xx:xx:xx:bd brd ff:ff:ff:ff:ff:ff
$ grep BONDING_OPTS= /etc/sysconfig/network-scripts/ifcfg-bond0
BONDING_OPTS="mode=4 miimon=100 lacp_rate=1"
$ egrep "(MASTER|SLAVE)=" /etc/sysconfig/network-scripts/ifcfg-em?
/etc/sysconfig/network-scripts/ifcfg-em1:MASTER=bond0
/etc/sysconfig/network-scripts/ifcfg-em1:SLAVE=yes
/etc/sysconfig/network-scripts/ifcfg-em2:MASTER=bond0
/etc/sysconfig/network-scripts/ifcfg-em2:SLAVE=yes
$ egrep -v "^$|^#" /etc/NetworkManager/NetworkManager.conf
[main]
[logging]

Mac 주소가 bond0변경된 이유는 무엇입니까?

답변1

마지막 옥텟이 몇 개 밖에 없다는 점을 고려하면 NIC em1와 NIC가 모두 em2동일한 카드에 있고 본드가 다른 NIC에서 MAC을 가져왔을 가능성이 높습니다.

본드는 본드에 추가된 첫 번째 NIC에서 MAC 주소를 얻습니다.

하지만,NIC 열거 순서는 정의되지 않았습니다..

부팅되면 em1MAC 끝이 있는 NIC가 bd먼저 본드에 참여할 수 있으므로 본딩은 MAC 끝을 선택합니다 bd.

다시 부팅할 때 em2MAC 끝이 있는 NIC가 bf먼저 본드에 참여할 수 있으므로 본드는 MAC 끝을 선택합니다 bf.

이것이 하드웨어 열거가 작동하는 방식입니다.

최근 NetworkManager에는 하위 장치를 특정 순서로 상위 장치에 연결하여 이 정확한 문제를 해결하는 기능이 있으므로 RHEL9로 마이그레이션하십시오(무료) 또는 Rocky/Alma 9(원하는 경우).


또 다른 가능한 옵션은 systemd가 사용할 수 있을 것으로 예상하는 예약된 이름이더라도 NIC가 이러한 이름을 사용하도록 강제하는 것입니다 em1. em2이 일을 하고 있다면 하지 마세요. 이것은 작동하지 않습니다.

systemd가 원하는 대로 장치 이름을 지정하도록 하거나 커널과 systemd가 사용하기를 원하지 않는 수동 이름을 사용하십시오. 또는 유사한 것을 사용할 수 있습니다 netX.

관련 정보