libvirt nwfilter, 여러 매개변수

libvirt nwfilter, 여러 매개변수

"parameter" 키워드를 사용하여 여러 매개변수를 "filterref"에 전달할 수 있습니다. 이와 같이:

<filterref filter='no-ip-spoofing'>
   <parameter name='IP' value='10.0.0.1'/>
   <parameter name='IP' value='10.0.0.2'/>
</filterref>

그리고 "rule" 문 내에서 "no-ip-spoofing"과 함께 사용하세요.

<rule action='return' direction='out' priority='500'>
  <ip srcipaddr='$IP'/>
</rule>

"rule" 문의 각 IP(10.0.0.1, 10.0.0.2)는 독립적으로 처리됩니다.

Q: 하지만 매개변수를 복잡한 구조로 전달하는 것이 가능합니까?
예를 들어, IP를 "no-ip-spoofing"으로 보내고 싶을 뿐만 아니라 MASK도 "no-ip-spoofing"으로 보내고 싶습니다. 다음과 같은 것입니다(물론 다음 목록은 올바른 xml 구조가 아닙니다).

<filterref filter='no-ip-spoofing'>
   <parameter name='IP' value='10.0.0.1', name='MASK' value='255.255.255.0'/>
   <parameter name='IP' value='10.0.0.2', name='MASK' value='255.255.255.0'/>
</filterref>

다음과 같이 처리하십시오.

<rule action='return' direction='out' priority='500'>
  <ip srcipaddr='$IP' srcipmask='$MASK'/>
</rule>

어떻게 해야 하나요?

답변1

이것을 RTFM으로 생각하지 마십시오. 그러나 문서는 그러한 목적에 딱 맞습니다(https://libvirt.org/formatnwfilter.html#usage-of-variables-in-filters). 두 개의 매개변수 배열과 하나의 반복자를 사용하는 것으로 충분합니다.

Accessing the same variables using a single iterator, for example by
using the notation $SRCIPADDRESSES[@1] and $DSTPORTS[@1], would result
in parallel access to both lists and result in the following combinations:

그러나 필터에 매개변수를 전달하는 것에 대해 여전히 머리를 긁고 있기 때문에 이러한 매개변수를 제공하는 방법을 모르겠습니다. 이 주제에 대한 의견을 주시면 감사하겠습니다.

참고: 같은 장에서 우리는 각 매개변수에 대해 별도의 반복자를 사용하여 매개변수 행렬을 얻는 것이 가능하다는 것을 보여주었습니다.

편집하다: 매개변수 배열은 질문 상단에 표시된 것처럼 스트림 형태로 제공되어야 합니다. 두 개의 어레이의 경우 두 개의 별도 스트림을 제공하면 됩니다.

<filterref filter='no-ip-spoofing'>
   <!-- Array of IP values -->
   <parameter name='IP' value='10.0.0.1'/>
   <parameter name='IP' value='10.0.0.2'/>
   <!-- Array of MASK values -->
   <parameter name='MASK' value='255.255.255.0'/>
   <parameter name='MASK' value='255.255.255.0'/>
</filterref>

이제 규칙을 병렬(단일 루프)로 반복하도록 변경해야 합니다.

<rule action='return' direction='out' priority='500'>
  <ip srcipaddr='$IP[@1]' srcipmask='$MASK[@1]'/>
</rule>

[자기 홍보] nwfilters에 다소 관련된 소개 튜토리얼을 게시했습니다.https://blog.cbugk.com/post/kvm-guest-network-isolation/

관련 정보