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=no
NetworkManager를 완전히 설정하거나 비활성화하는 경우를 의미합니다.
NetworkManager는 실제로 이 클래스 이름을 지원하지 않습니다. 연결 프로필(기본적으로 일반 ifcfg 파일에 해당)을 지원하고 프로필당 여러 IP 주소를 지원합니다. 그러나 initscript의 별칭과 같이 구성 파일을 여러 부분으로 분할할 수는 없습니다. 그래서 파일 이름의 콜론이 NetworkManager를 혼동하는 것 같습니다.
initscripts 파일 형식은 이해하기 쉽지 않은 것 같습니다. 예를 들어 이 파일을 보면 NetworkManager가 이를 어떻게 해석할지 명확하지 않습니다. 그러나 궁극적으로 중요한 것은 문서의 해석입니다. 보다 nmcli connection show lo:0
. 그렇다면 NetworkManager가 왜 이렇게 동작하는지 분명해져야 합니다. 그 이유는 Networkmanager가 이것이 ifcfg-lo
파일의 별칭임을 인식하지만 별칭 ifcfg 파일이 장치 이름을 정의할 수 없기 때문이라고 생각합니다. 동시에 ifcfg-lo
NetworkManager에서 항상 관리되지 않는 루프백 장치용입니다.
이는 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