<div dir="ltr">Looking at <a href="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-virtual_networking-applying_network_filtering#sect-Applying_network_filtering-Usage_of_variables_in_filters">https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-virtual_networking-applying_network_filtering#sect-Applying_network_filtering-Usage_of_variables_in_filters</a>, it sounds like the preferred approach is to use something like:<div><br></div><div><font face="monospace"><filter name='no-ipv6-spoofing' chain='ipv6-ip' priority='-710'><br>  <rule action='return' direction='out' priority='500'><br>    <ipv6 srcipaddr='$IPV6[@1]' srcipmask='$IPV6_MASK[@1]'/><br>  </rule><br>  <rule action='drop' direction='out' priority='1000'/><br></filter></font><br></div><div><br></div><div>The documentation reads:</div><div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>Assign concrete values to SRCIPADDRESSES and DSTPORTS as shown:</div><div><br></div><div>SRCIPADDRESSES = [ 10.0.0.1, 11.1.2.3 ]</div><div>DSTPORTS = [ 80, 8080 ]</div></blockquote><div><br></div><div>But I'm not sure how to pass through an array of <font face="monospace"><parameter></font>s in the filterref. Is this possible?</div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jan 1, 2020 at 12:39 PM Brooks Swinnerton <<a href="mailto:bswinnerton@gmail.com">bswinnerton@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hello,<div><br></div><div>I have a nwfilter that I'm using to ensure that libvirt domains can't spoof IPv6 traffic. It looks like this:</div><div><br></div><div><font face="monospace"><filter name='no-ipv6-spoofing' chain='ipv6-ip' priority='-710'><br>  <rule action='return' direction='out' priority='500'><br>    <ipv6 srcipaddr='$IPV6' srcipmask='$IPV6MASK'/><br>  </rule><br>  <rule action='drop' direction='out' priority='1000'/><br></filter></font><br></div><div><br></div><div>The goal is to allow any traffic coming from the entire prefix (e.g. <font face="monospace">2001:db8::/32</font>). This theoretically would work fine when passing in the variables from the domain definition like so:</div><div><br></div><div><font face="monospace"><filterref filter='no-ipv6-spoofing'><br>  <parameter name='IPV6' value='2001:db8:1:6:dc:d2ff:fef2:2181'/><br>  <parameter name='IPV6_MASK' value='32'/><br></filterref></font><br></div><div><font face="monospace"><br></font></div><div><font face="arial, sans-serif">But the problem comes when wanting to allow multiple prefixes (and thus multiple </font><font face="monospace">$IPV6</font><font face="arial, sans-serif"> and </font><font face="monospace">$IPV6_MASK</font><font face="arial, sans-serif"> variables). If there is more than one definition of </font><font face="monospace">$IPV6</font><font face="arial, sans-serif">, how could I associate it with a corresponding </font><font face="monospace">$IPV6_MASK</font><font face="arial, sans-serif">?</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">Ideally I would be able to pass an address in CIDR notation directly to </font><font face="monospace">srcipaddr</font>, but I don't believe that's an option.</div><div><br></div><div>Any guidance would be appreciated. The ultimate goal is to automate this process, so having something like <font face="monospace">$IPV6_1</font> and <font face="monospace">$IPV6_1</font> would be less than ideal.</div></div>
</blockquote></div>