NetworkManager 및 lo 인터페이스의 별칭은 team0의 별칭이 됩니다.

NetworkManager 및 lo 인터페이스의 별칭은 team0의 별칭이 됩니다.

lo 인터페이스의 별칭을 만들고 싶습니다(연결 유지 VIP로 필요함). 그런데 네트워크 관리자가 문제를 일으키는 것 같습니다. 이 파일을 만들었습니다.

/etc/sysconfig/network-scripts/ifcfg-lo:0

DEVICE=lo:0
IPADDR=10.2.0.4
NETMASK=255.255.255.255
BROADCAST=10.2.0.255
ONBOOT=yes
BOOTPROTO=none
NM_CONTROLLED=yes
NAME=lo:0

그런 다음 연결을 설정했습니다.

ifup lo:0

결과는 참사였다

team0              8c1d7e93-389b-4f61-b33d-ab9b6ca634b1  team      team0  
lo:0               54af739a-9533-7b7b-8fcc-691e69842b36  ethernet  enp1s0 
team1              af58780b-b280-49cf-b540-b55e49b2c52f  team      team1  
team-slave-enp7s0  b221675e-9604-4051-967e-a98b098c823d  ethernet  enp7s0 
team-slave-enp8s0  f8711dde-29bc-442b-aedd-2005888cf314  ethernet  enp8s0 
team-slave-enp9s0  67983ded-870e-4e5a-a284-9cfbcb6f1eb8  ethernet  enp9s0 
team-slave-enp1s0  9bea1e34-a555-450c-9d0e-10bad2ee99e9  ethernet  --    

보시다시피, team0(enp1s0)의 슬레이브는 비활성화되고 lo:0은 team0의 슬레이브가 됩니다(sic!). lo:0을 삭제하면 모두 정상적으로 반환됩니다.

ifdown lo:0

nmcli conn show

team0              8c1d7e93-389b-4f61-b33d-ab9b6ca634b1  team      team0  
team1              af58780b-b280-49cf-b540-b55e49b2c52f  team      team1  
team-slave-enp1s0  9bea1e34-a555-450c-9d0e-10bad2ee99e9  ethernet  enp1s0 
team-slave-enp7s0  b221675e-9604-4051-967e-a98b098c823d  ethernet  enp7s0 
team-slave-enp8s0  f8711dde-29bc-442b-aedd-2005888cf314  ethernet  enp8s0 
team-slave-enp9s0  67983ded-870e-4e5a-a284-9cfbcb6f1eb8  ethernet  enp9s0 

또한 이름을 lo:10 lo:20으로 바꾸려고 시도했지만 아무것도 변경되지 않았습니다.

답변1

귀하의 경우 initscripts'가 호출 ifup되면 nmcli connection up.

어쨌든 initscript는 기본적으로 IP 주소가 추가된 "별칭"을 지원합니다. 접미사가 붙은 ifcg 파일입니다 :0. 일반적인 초기화 스크립트를 사용한다면 이 ifcfg- 파일이 작동할 수 있을 것 같습니다. 이는 NM_CONTOLLED=noNetworkManager를 완전히 설정하거나 비활성화하는 경우를 의미합니다.

NetworkManager는 실제로 이 클래스 이름을 지원하지 않습니다. 연결 프로필(기본적으로 일반 ifcfg 파일에 해당)을 지원하고 프로필당 여러 IP 주소를 지원합니다. 그러나 initscript의 별칭과 같이 구성 파일을 여러 부분으로 분할할 수는 없습니다. 그래서 파일 이름의 콜론이 NetworkManager를 혼동하는 것 같습니다.

initscripts 파일 형식은 이해하기 쉽지 않은 것 같습니다. 예를 들어 이 파일을 보면 NetworkManager가 이를 어떻게 해석할지 명확하지 않습니다. 그러나 궁극적으로 중요한 것은 문서의 해석입니다. 보다 nmcli connection show lo:0. 그렇다면 NetworkManager가 왜 이렇게 동작하는지 분명해져야 합니다. 그 이유는 Networkmanager가 이것이 ifcfg-lo파일의 별칭임을 인식하지만 별칭 ifcfg 파일이 장치 이름을 정의할 수 없기 때문이라고 생각합니다. 동시에 ifcfg-loNetworkManager에서 항상 관리되지 않는 루프백 장치용입니다.

이는 NM의 버그일 수 있으며 NetworkManager가 지원하지 않는 별칭을 정의하려는 시도와 관련이 있습니다.

답변2

이 별칭과 작동하지 않는 NetworkManager를 사용하는 대신 좋은 솔루션을 찾았습니다. 좋은 오래된 rc.local 스크립트와 ip 명령을 사용합니다. 이 경우 가상 IP 주소가 필요합니다(Keepalived Proxy1에 있고 Proxy2에 구성됨). 또한 두 개의 실제 서버에서 별칭으로 인터페이스 lo에 "바인딩"됩니다. 두 개의 arp_ignore가 필요합니다. 그렇지 않으면 이상한 네트워크 문제가 발생합니다.

vim /etc/rc.d/rc.local
#!/bin/bash

start() {
echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce
ip addr add 10.2.0.4/32 dev lo label lo:0
}

stop() {
echo stop
}


restart() {
stop
start
}

case "$1" in
'start')
  start
  ;;
'stop')
  stop
  ;;
'restart')
  restart
  ;;
*)
  echo "usage: $0 start|stop|restart"
esac
chmod 755 /etc/rc.d/rc.local 

관련 정보