libvirt 네트워크를 만들었습니다.열려 있는모드에 대해 생성된 iptable 규칙을 추가했습니다.냇패턴 네트워크. 내 계획은 기본적으로냇하지만 그 위에 사용자 정의 iptable 규칙을 추가하세요. (개방 모드를 사용하고 규칙을 직접 관리하는 것이 더 쉽습니다.) 사용 사례 예: vmX에서 vmY, vmZ까지를 제외하고 VM 간에 네트워크 내 통신이 없습니다. 지금까지 모든 것이 이전처럼 작동하고 있습니다.냇모델.
그러나 내부 com을 차단하는 규칙을 추가하면 다음과 같은 사항이 나타납니다.
약간의 배경 지식: Libvirt는 다음과 같은 iptable 체인을 생성합니다.
LIBVIRT_FWI
: 들어오는 트래픽LIBVIRT_FWO
: 아웃바운드 트래픽LIBVIRT_FWX
: 내부 트래픽(예: virbr0 내)LIBVIRT_INP
(지금은 관련이 없음)LIBVIRT_OUT
(지금은 관련이 없음)
eth0->>-virbr0 및 eth0-<<-virbr0과 같은 FWI 및 FWO가 예상대로 작동하지만 내부 통신에 사용되는 FWX 체인은 아무런 영향을 미치지 않습니다.
iptables -L LIBVIRT_FWX -v
프로그램
Chain LIBVIRT_FWX (1 references)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- virbr0 virbr0 anywhere anywhere
내 맞춤 체인:
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- virbr2 virbr2 anywhere anywhere state RELATED,ESTABLISHED
0 0 ACCEPT all -- virbr2 virbr2 192.168.122.10 anywhere
0 0 REJECT all -- virbr2 virbr2 anywhere anywhere reject-with icmp-port-unreachable
이제 내 생각에는 iptables가 네트워크 인터페이스 내부 통신에 적합하지 않은 것 같습니다. 내 가정이 맞나요?
내 선택은 아마도 다음과 같습니다.
- iptable 규칙에 내가 뭘 잘못하고 있는 걸까요?하다적용하다
- FWX 체인은 FORWARD의 맨 위에 있으므로 다른 규칙이 방해해서는 안 됩니다.
- 각 가상 머신 간의 트래픽을 차단하려면 각 가상 머신에 대한 네트워크를 생성해야 합니다.
이 문제에 대한 두 번째 의견을 주시면 정말 감사하겠습니다.
완전성을 위해:
Chain DMZ_LIBVIRT_FWO (1 references)
pkts bytes target prot opt in out source destination
58531 24M ACCEPT all -- virbr2 any 192.168.122.0/24 anywhere
133 10336 REJECT all -- virbr2 any anywhere anywhere reject-with icmp-port-unreachable
Chain DMZ_LIBVIRT_FWI (1 references)
pkts bytes target prot opt in out source destination
55149 21M ACCEPT all -- any virbr2 anywhere 192.168.122.0/24 ctstate RELATED,ESTABLISHED
66 3960 REJECT all -- any virbr2 anywhere anywhere reject-with icmp-port-unreachable