Re: [PATCH] extensions: libip6t_REJECT: Add translation to nft

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

 



On Tue, Jan 5, 2016 at 5:00 PM, Arturo Borrero Gonzalez
<arturo.borrero.glez@xxxxxxxxx> wrote:
> On 5 January 2016 at 07:55, Shivani Bhardwaj <shivanib134@xxxxxxxxx> wrote:
>>
>> +static const struct reject_names_xlate reject_table_xlate[] = {
>> +       {"no-route",            IP6T_ICMP6_NO_ROUTE},
>> +       {"admin-prohibited",    IP6T_ICMP6_ADM_PROHIBITED},
>> +#if 0
>> +       {"not-neighbour",       IP6T_ICMP6_NOT_NEIGHBOR},
>> +#endif
>> +       {"addr-unreachable",    IP6T_ICMP6_ADDR_UNREACH},
>> +       {"port-unreachable",    IP6T_ICMP6_PORT_UNREACH},
>> +       {"tcp reset",           IP6T_TCP_RESET},
>> +       {"policy-fail",         IP6T_ICMP6_POLICY_FAIL},
>> +       {"reject-route",        IP6T_ICMP6_REJECT_ROUTE}
>> +};
>
> I wonder the reason behind including code which seems is not going to
> be compiled.
> It was in the original extension code, perhaps you can revisit that now.
>
Hi Arturo,

I've removed the if endif block. Thanks for pointing out.
If you're referring to some other thing please let me know.

>> +
>> +static int REJECT_xlate(const struct xt_entry_target *target,
>> +                       struct xt_buf *buf, int numeric)
>> +{
>> +       const struct ip6t_reject_info *reject =
>> +                               (const struct ip6t_reject_info *)target->data;
>> +       unsigned int i;
>> +
>> +       for (i = 0; i < ARRAY_SIZE(reject_table_xlate); ++i)
>> +               if (reject_table_xlate[i].with == reject->with)
>> +                       break;
>> +       if (reject->with == IP6T_TCP_RESET)
>> +               xt_buf_add(buf, "reject with %s", reject_table_xlate[i].name);
>> +       else
>> +               xt_buf_add(buf, "reject with icmpv6 type %s",
>> +                          reject_table_xlate[i].name);
>> +
>> +       return 1;
>> +}
>> +
>
> AFAIK, -j REJECT can be used without further options. However, this
> _xlate() function doesn't seem to support it.
>
> I would print unconditionally the 'reject' keyword and in case some
> option was used, then include the 'with XXX' thing.
>

In the reject module for ip, port unreachable is mentioned as the
default option if the reject target is called.

static const struct reject_names reject_table[] = {
...
{"icmp-port-unreachable", "port-unreach",
                IPT_ICMP_PORT_UNREACHABLE, "ICMP port unreachable (default)"}
...
}

Same is happening in case of ipv6. Should I be removing this default
nature of both of them?

Thank you

> i.e:
>
> the rule:
> % [...] -p tcp --dport 22 -j REJECT
> translates to:
> % nft add rule [...] tcp dport 22 reject
>
> and the rule:
> % [...] -p tcp --dport 22 -j REJECT --reject-with no-route
> translates to:
> % nft add rule [...] tcp dport 22 reject with icmpv6 type no-route
>
> --
> Arturo Borrero González
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Netfitler Users]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux