]> git.ipfire.org Git - thirdparty/openvpn.git/commit - src/openvpn/options.h
Implement block-ipv6
authorArne Schwabe <arne@rfc2549.org>
Mon, 3 Dec 2018 16:48:18 +0000 (17:48 +0100)
committerGert Doering <gert@greenie.muc.de>
Tue, 4 Dec 2018 20:01:15 +0000 (21:01 +0100)
commite11d2d14a9ef5311f791a9a614ab367c6f50ff11
tree3ef63825794c0bea435c79136f14527db67bd933
parent584b1717e7eaa8e44c675efb1f2dcbbaed2c0db3
Implement block-ipv6

This can be used to redirect all IPv6 traffic to the tun interface,
effectively black holing the IPv6 traffic. Without ICMPv6 error
messages this will result in timeouts when the server does not send
error codes.  block-ipv6 allows client side only blocking on all
platforms that OpenVPN supports IPv6. On Android it is only way to do
sensible IPv6 blocking on Android < 5.0 and broken devices (Samsung).

PATCH V6:
- Rebase on master and run uncrustify on the patch

PATCH V5:
- Fix even more style issues by Antonio
- Remove check for dev == tun as this also works for tap

PATCH V4:
- Fix more style issues reported by Antonio
- Clarify parts of the patch in comments and manpage

PATCH V3:
- Fix style iusses reported by Antonio and accidentily commited parts
- merge udp_checksum and ipv6_checkusm into common ip_checksum method
- Use fake ff80::7 address when no other address is configured.
- Make block-ipv6 also work for server  by replying block-ipv6 to all
  ipv6 traffic send to the server

Note for the server the process_ip happens before the ipv6 route
lookup so every ipv6 packet, regardless of its source address is
replyied to with a no route to host packet.

Signed-off-by: Arne Schwabe <arne@rfc2549.org>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <20181203164818.15756-1-arne@rfc2549.org>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg17977.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
doc/openvpn.8
src/openvpn/dhcp.c
src/openvpn/forward.c
src/openvpn/forward.h
src/openvpn/multi.c
src/openvpn/options.c
src/openvpn/options.h
src/openvpn/proto.c
src/openvpn/proto.h