mirror of
https://github.com/toreanderson/clatd
synced 2026-03-01 11:24:53 +00:00
Remove support for ip6tables
The ip6tables frameworks has been deprecated for quite a while now, as it has been replaced by nftables. On modern distributions, rules added with ip6tables are just converted to nftables rules and are added to an ip6tables compatibility table there. This changed the name of the kernel modules, breaking ip6tables auto-detection (cf. issues #42 and #44). Unfortunately, due to the way nftables works, these rules can no longer be relied upon to ensure the CLAT traffic is allowed. This is due to the fact that in nftables, *all* chains that hook into a packet's path must return an «accept» verdict in order for the packet to be ultimately accepted, while it is enough for a single chain to return a «drop» verdict in order for the packet to be dropped. That means that the rules that accepts CLAT traffic might be overridden by a «default drop» rule added to another chain in another table, e.g., by firewalld or similar local firewall frameworks. See #23 for an example of this. On the other hand, if there is no drop rule anywhere, the rules added by clatd are superfluous to begin with, as the default kernel behaviour is to accept the packages. Therefore just remove support for ip6tables entirely. Users of firewalld, ufw, or similar local firewall frameworks will need to make sure that rules are added in those frameworks that permit the CLAT traffic, e.g., by using `script-up`, like so for ufw: ``` script-up=ufw route allow in on $clat_dev out on $plat_dev ``` Native support for adding rules to the most common local firewall frameworks might be added in the future. Closes #44 (no longer applicable).
This commit is contained in:
23
README.pod
23
README.pod
@@ -232,12 +232,6 @@ encountered will be used.
|
||||
Path to the B<ip> binary from the iproute2 package available at
|
||||
L<https://www.kernel.org/pub/linux/utils/net/iproute2>. Required.
|
||||
|
||||
=item B<cmd-ip6tables=path> (default: assume in $PATH)
|
||||
|
||||
Path to the B<ip6tables> binary from the netfilter package available at
|
||||
L<http://netfilter.org>. Only required for adding ip6tables rules
|
||||
(see the B<ip6tables-enable> configuration setting).
|
||||
|
||||
=item B<cmd-tayga=path> (default: assume in $PATH)
|
||||
|
||||
Path to the B<tayga> binary from the TAYGA package available at
|
||||
@@ -254,22 +248,11 @@ forwarding.
|
||||
All sysctls that are modified will be restored to their original values when
|
||||
B<clatd> is shutting down.
|
||||
|
||||
=item B<ip6tables-enable=bool> (default: see below)
|
||||
|
||||
Controls whether or not B<clatd> should insert ip6tables rules that permit the
|
||||
forwarding of IPv6 traffic between the CLAT and PLAT devices. Such forwarding
|
||||
must be permitted for B<clatd> to work correctly. Any rules added will be
|
||||
removed when B<clatd> is shutting down.
|
||||
|
||||
The default is I<yes> if the ip6tables_filter kernel module is loaded, I<no>
|
||||
if it is not.
|
||||
|
||||
=item B<plat-dev> (default: auto-detect)
|
||||
|
||||
Which network device is facing the PLAT (NAT64). By default, this is
|
||||
auto-detected by performing a route table lookup towards the PLAT prefix.
|
||||
This setting is used when setting up generating the CLAT IPv6 address, and
|
||||
when setting up ip6tables rules and Proxy-ND entries.
|
||||
auto-detected by performing a route table lookup towards the PLAT prefix. This
|
||||
setting is used when generating the CLAT IPv6 address and Proxy-ND entries.
|
||||
|
||||
=item B<plat-prefix> (default: auto-detect)
|
||||
|
||||
@@ -441,7 +424,7 @@ SOFTWARE.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
ip(8), ip6tables(8), tayga(8), tayga.conf(5)
|
||||
ip(8), tayga(8), tayga.conf(5)
|
||||
|
||||
RFC 6052, RFC 6145, RFC 6146, RFC 6877, RFC 7050, RFC 7335 RFC 7755, RFC 7756,
|
||||
RFC 7757
|
||||
|
||||
Reference in New Issue
Block a user