
트렁크 테스트 환경에 대한 구체적인 질문이 있습니다. 다음과 같은 네트워크 설정이 있습니다.
+------------+ +------------+
| | +-----+ | |
| eth0 +----+ br0 +----+ eth0 |
| | +-+---+ | |
| Guest1 | | | Guest2 |
| | +-----+ | |
| eth1 +----+ br1 +----+ eth1 |
| | +---+-+ | |
+------------+ | | +------------+
+-+-+--+
| Host |
+------+
KVM 호스트는 게스트 시스템(/etc/network/interfaces)에 대해 두 개의 브리지를 제공합니다.
auto br0
iface br0 inet manual
bridge_ports none
bridge_fd 0
bridge_stp off
auto br1
iface br1 inet manual
bridge_ports none
bridge_fd 0
bridge_stp off
게스트 머신은 다음 구성으로 스위치에 연결됩니다.
# Actual interfaces
allow-hotplug eth0 eth1
iface eth0 inet manual
iface eth1 inet manual
# Internet facing network
auto eth0.100 eth1.100
iface eth0.100 inet manual
iface eth1.100 inet manual
auto bond0
iface bond0 inet manual
bond_mode active-backup
bond_miimon 200
bond_downdelay 200
bond_updelay 200
# Something I found to make the active secondary slave listening
post-up echo 1 > /sys/devices/virtual/net/bond0/bonding/all_slaves_active
slaves eth0.100 eth1.100
auto bond0.1
address 10.110.0.10x
netmask 255.255.0.0
# Please don't ask why the three vlan is needed.
# The bonding works only if these three are defined :\
이제 내 문제는 다음과 같습니다.
기본 기본 슬레이브는 두 게스트 모두의 eth0.100 인터페이스입니다. 다음 명령으로 기본 슬레이브를 종료하면
$ ip link set eth0.100 down
"ip link"에 따라 링크가 중단되고 본드가 기본 슬레이브를 변경하지만 패킷은 비활성 인터페이스에서 허용됩니다. ("tshark -i eth1.100"을 실행하여 알아냈는데 ping-reply 메시지만 표시되었습니다.)
호스트 시스템에서 인터페이스를 닫으면 게스트 간의 전체 통신이 중단됩니다. 채권조차도 변화를 인식하지 못합니다.
추가 정보:
- 이 인터페이스에서 패키지를 차단하는 IPTables/EBTables 규칙이 없습니다.
- 방송 모드가 내 모든 문제를 해결하는 데 도움이 될 것이라는 것을 알고 있습니다. 하지만 두 손님 사이의 의사소통이 부풀려지는 것 같아요. 나는 그 옵션을 사용하지 않는 것이 좋습니다.
질문:
- "ip link set ... down"이 링크를 닫지 않는 이유는 무엇입니까?
- all_slaves_active에 간섭하는 것이 어떻게든 인터페이스 상태를 방해하는 것이 가능합니까?
- 활성 백업이 인터페이스 변경을 인식하게 만드는 옵션이 있습니까?
- (그리고 본딩이 작동하려면 왜 3개의 VLAN이 필요한가요?)
어떤 답변이라도 감사하겠습니다.