首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >允许在Linux路由器NAT上使用GRE (IP协议47)作为子网

允许在Linux路由器NAT上使用GRE (IP协议47)作为子网
EN

Server Fault用户
提问于 2018-11-22 09:15:17
回答 3查看 9.2K关注 0票数 3

我有网络设置,如下所示:

VPN服务器运行为windows 2012服务器默认VPN,使用GRE协议。我能够有VPN连接到那个远程vpn服务器,仅从我的内联网单一IP。但是我无法连接到intranet IP 172.16.14.0/24的范围。问题在于linux路由器,它正在做NAT。对于工作vpn连接(单个IP),我的nat表的iptable如下所示,允许使用gre协议:

代码语言:javascript
复制
 iptables -I PREROUTING -t nat -p 47 --src 202.xx.yy.abc  -j DNAT --to-destination 172.16.14.15
 iptables -I POSTROUTING -p 47 -t nat --src 172.16.14.15  -j SNAT --to-source 202.xx.yy.zz
 iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE 
 iptables -A INPUT -p 47 -j ACCEPT

此规则适用于单个IP 172.16.14.15。如何使它在整个172.16.14.0/24范围内工作,以便能够连接到远程VPN服务器?

EN

回答 3

Server Fault用户

发布于 2019-06-26 06:06:25

我找到了解决办法。

我做了这个:

代码语言:javascript
复制
 sysctl -w net.netfilter.nf_conntrack_helper=1

然后添加

代码语言:javascript
复制
modprobe ip_nat_pptp

我使用的是Ubuntu18.04.2LTS,内核版本4.15.0-45-泛型.没有必要在iptables PREROUTING、POSTROUTING表中执行与GRE协议有关的任何操作。增加略高于两行的效果。

票数 4
EN

Server Fault用户

发布于 2018-11-22 12:28:06

加载nf_nat_proto_gre内核模块了吗?如果这样做,前两行可能不再需要了。

票数 1
EN

Server Fault用户

发布于 2018-11-22 10:24:21

GRE没有像UDP和TCP协议那样的“端口”概念。任何NAT设备可以利用的唯一映射信息是数据包的源IP地址和/或目标IP地址。

要实现您想要做的事情,您需要在广域网链路上提供一个公共/24网络,然后在每个公共IP地址到每个内部IP地址之间创建单独的create映射。或者,您可以在WAN接口上提供一个地址,但是让VPN提供者为您提供几个连接到其服务的公共IPv4地址。在一种情况下,NAT映射被键关闭GRE数据包的目标地址,而在另一种情况下,NAT映射被键化出源地址。这两种方法都是可行的。

很可能您只有一个WAN地址,而VPN提供者也只有一个地址,这意味着您只能为任何GRE通信量创建一个到一个内部主机的NAT映射。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/941188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档