Allow GRE (IP protocol 47) over Linux router NAT for a subnet

I found the solution.

I did this:

 sysctl -w net.netfilter.nf_conntrack_helper=1

Then add

modprobe ip_nat_pptp

I was using Ubuntu 18.04.2 LTS, kernel version 4.15.0-45-generic. There was no need to do anything related with GRE protocol inside iptables PREROUTING, POSTROUTING tables. Adding just above two lines worked.


Did you load nf_nat_proto_gre kernel module? If you do so the first two lines will likely not be needed anymore.