2개의 물리적 네트워크 인터페이스 eth0과 eth1이 있는 Linux 시스템이 있습니다. 내결함성(활성-백업) 결합은 이 두 인터페이스에 생성됩니다. bond0에는 IP 주소가 할당되어 있습니다. eth0 및 eth1에는 할당된 IP 주소가 없습니다.
모든 것이 정상입니다. eth0의 링크가 다운되면 나가는 트래픽은 eth1을 통해 라우팅되고, eth0이 나타나면 Linux는 다시 전환하여 모든 나가는 트래픽에 대해 eth0을 사용합니다. 여태까지는 그런대로 잘됐다.
eth1의 경로가 괜찮은지 테스트하고 싶지만 eth0에서는 연결을 끊고 싶지 않습니다. 커널이 특정 테스트 패킷의 나가는 트래픽에 eth1을 사용하도록 강제하는 방법이 있습니까?
답변1
현재 구성에서 활성 결합 인터페이스를 제거하고 런타임에 다시 넣을 수 있습니다.
echo -eth0 > /sys/class/net/bond0/bonding/slaves
echo +eth0 > /sys/class/net/bond0/bonding/slaves
슬레이브 변경 사항을 확인해야 합니다.
또 다른 방법은 ifenslave를 설치하고 다음 명령을 사용하여 이를 수행하는 것입니다.
ifenslave -c bond0 eth1 eth0
그러면 eth1이 활성 인터페이스로 설정됩니다.
답변2
장애 조치를 강제하기 위해 인터페이스를 제거하고 추가하는 대신 /sys/class/net/bond0/bonding/slaves
다음을 사용하여 활성 슬레이브를 변경하면 됩니다.
echo eth1 > /sys/class/net/bond0/bonding/active_slave
if는 eth0
현재 활성 상태이고 eth1
백업입니다.
이 경우 모든 인터페이스는 UP 상태로 유지되지만 해당 역할(활성/백업)은 변경됩니다.