Re: nft - concatenate ifaces

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



ѽ҉ᶬḳ℠ <vtol@xxxxxxx> wrote:
> 
> > iifname can be used in sets starting with 0.8.3 version.
> > You can use 'iif' instead to check by interface index number which will
> > be fine if the interfaces are not dynamic (like ppp for instance).
> >
> 
> So |iif| can be used in sets in 0.8.2, is my understanding correct?

Yes.

> But
> then I do not see how with the sets type strings available |ipv4_addr,
> ipv6_addr, ether_addr, inet_proto, inet_service, mark|.
> Say I wan to construct this set
> 
> set lan {
>     type iif
>     elements = { lo, br0, br1 , br2, br3 }
>   }
> 
> and sub subsequent rule with |meta iif ne @lan|

Its same as

meta iif { lo, br0, br1, br2, br3 }

except that the 'named set' (@lan) can be added or removed to later.

> >>  but |meta iifname ne  br*| is throwing this
> >> "Error: Could not process rule: Device or resource busy".
> > Thats strange, this works fine for me even when I downgrade to 0.8.2.
> > Its expected to work.
> Cannot get it to work, error shows up every time when trying |nft add
> inet filter input meta iifname ne br* ct state new meter global-meter {
> ip saddr limit rate 100/second burst 25 packets } continue| to
> the exiting rule set:
> 
> table inet filter {
>         chain input {
>                 type filter hook input priority 0; policy drop;
>                 ct state established,related accept # handle 4
>                 ct state invalid drop # handle 5
>                 iif "lo" accept # handle 6
>                 iifname "br*" tcp dport domain accept # handle 7
>                 iifname "br*" udp dport domain accept # handle 8
>                 iifname "br*" tcp dport bootps accept # handle 9
>                 iifname "br*" udp dport bootps accept # handle 10
>                 iifname != "lo" ct state new meter global-meter { ip
> saddr limit rate 100/second burst 25 packets}  continue # handle 14
>                 iifname != "lo" tcp dport 56009 ct state new meter
> ssh-meter { ip saddr limit rate 10/minute}  accept # handle 15
>                 udp dport 61023 ct state new meter ovpn-meter { ip saddr
> limit rate 10/hour burst 7 packets}  continue # handle 16
>         }

The name 'global-meter' already exists, they need to be unique.
You can either try

meta iifname ne { br0, br1, br2, br3, lo } ct state new meter ..
or
meta iifname ne "lo" meta iifname ne "br*" ct state new meter ..

but lo is not needed here because your rule handle 6 already accepts all
packets coming in via loopback.
--
To unsubscribe from this list: send the line "unsubscribe netfilter" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Netfilter Development]     [Linux Kernel Networking Development]     [Netem]     [Berkeley Packet Filter]     [Linux Kernel Development]     [Advanced Routing & Traffice Control]     [Bugtraq]

  Powered by Linux