17.14. 네트워크 필터링 적용
이 섹션에서는 libvirt의 네트워크 필터, 목표, 개념 및 XML 형식에 대해 소개합니다.
17.14.1. 소개
네트워크 필터링의 목표는 가상화된 시스템의 관리자가 가상 시스템에서 네트워크 트래픽 필터링 규칙을 구성 및 적용하고 가상 시스템이 전송 또는 수신할 수 있는 네트워크 트래픽의 매개변수를 관리할 수 있도록 하는 것입니다. 가상 시스템이 시작될 때 네트워크 트래픽 필터링 규칙이 호스트 물리적 시스템에 적용됩니다. 필터링 규칙은 가상 머신 내에서 이동할 수 없으므로 가상 머신 사용자의 관점에서 필수입니다.
게스트 가상 머신의 관점에서 네트워크 필터링 시스템을 사용하면 각 가상 시스템의 네트워크 트래픽 필터링 규칙을 인터페이스별로 개별적으로 구성할 수 있습니다. 이러한 규칙은 가상 시스템이 시작될 때 호스트 물리적 시스템에 적용되며 가상 시스템이 실행되는 동안 수정할 수 있습니다. 후자는 네트워크 필터의 XML 설명을 수정하여 얻을 수 있습니다.
여러 가상 머신에서 동일한 일반 네트워크 필터를 사용할 수 있습니다. 이러한 필터를 수정하면 이 필터를 참조하는 실행 중인 모든 가상 머신의 네트워크 트래픽 필터링 규칙이 업데이트됩니다. 실행 중이 아닌 머신이 시작 시 업데이트됩니다.
앞에서 언급한 것처럼 특정 유형의 네트워크 구성에 대해 구성된 개별 네트워크 인터페이스에서 네트워크 트래픽 필터링 규칙을 적용할 수 있습니다. 지원되는 네트워크 유형은 다음과 같습니다.
- network
- 이더넷 -- 브리징 모드에서 사용해야 합니다.
- Bridge
예 17.1. 네트워크 필터링의 예
인터페이스 XML은 최상위 필터를 참조하는 데 사용됩니다. 다음 예에서 인터페이스 설명은 필터 정리 트래픽을 참조합니다.
<devices> <interface type='bridge'> <mac address='00:16:3e:5d:c7:9e'/> <filterref filter='clean-traffic'/> </interface> </devices>
네트워크 필터는 XML로 작성되며, 다른 필터에 대한 참조, 트래픽 필터링에 대한 규칙 또는 둘 다 조합되어 있을 수 있습니다. 위의 참조 필터 clean-traffic은 다른 필터에 대한 참조만 포함하며 실제 필터링 규칙이 없는 필터입니다. 다른 필터에 대한 참조를 사용할 수 있으므로 필터 트리를 빌드할 수 있습니다. clean-traffic 필터는 # virsh nwfilter-dumpxml clean-traffic 명령을 사용하여 볼 수 있습니다.
앞에서 언급한 것처럼 여러 가상 머신에서 단일 네트워크 필터를 참조할 수 있습니다. 인터페이스에는 일반적으로 해당 트래픽 필터링 규칙과 연결된 개별 매개 변수가 있으므로 필터의 XML에 설명된 규칙을 변수를 사용하여 일반화할 수 있습니다. 이 경우 변수 이름은 필터 XML에서 사용되며, 이름과 값은 필터가 참조되는 위치에 제공됩니다.
예 17.2. 설명 확장된
다음 예에서 인터페이스 설명은 매개변수 IP와 점선된 IP 주소를 값으로 사용하여 확장되었습니다.
<devices> <interface type='bridge'> <mac address='00:16:3e:5d:c7:9e'/> <filterref filter='clean-traffic'> <parameter name='IP' value='10.0.0.1'/> </filterref> </interface> </devices>
이 특정 예에서 정리된 네트워크 트래픽 필터는 IP 주소 매개변수 10.0.0.1으로 표시되고 규칙에 따라 이 인터페이스의 모든 트래픽이 이 특정 필터의 목적 중 하나인 소스 IP 주소로 10.0.0.1을 항상 사용하도록 지정합니다.