首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有线的IP透明隧道

带有线的IP透明隧道
EN

Server Fault用户
提问于 2020-06-27 22:31:59
回答 1查看 2.7K关注 0票数 0

比如说我有node1和node2,通过互联网连接。node1上的应用服务器具有用于node2的IP的IP。

出于安全考虑,我在节点之间打开了一个Wireguard隧道。我想让应用程序的信任保持不变(因此在问题标题中是“透明的”),但是我遇到了以下问题:

Node2在与node1上的应用服务器通信时使用其vpn源地址,node1中没有该IP。

这是VPN设置中常见的问题,还是Wireguard的实现选择?有人知道一个优雅的解决方案吗?网络级别上的额外配置是可以的。在这种情况下,在应用程序级别上更改ACL不是一个选项。

到目前为止,我尝试的是通过引入策略源nat,将node1的公共地址用作vpn地址,但这在wireguard的情况下严重失败,因为它将远程隧道端点的静态路由添加到路由表中;结果如下:

  • Node2成功地使用其现有的IP与node1通信。
  • 节点1‘S应用服务器看到数据包进入并回复
  • 节点1‘S IP栈路由包通过万,而不是通过Wireguard隧道。
EN

回答 1

Server Fault用户

回答已采纳

发布于 2020-07-02 22:23:58

如果您想要使用您的“正常”主机IP来处理通过隧道的传出通信量,在我的示例中,只需执行以下操作即可:

代码语言:javascript
复制
[Interface]
Address = 10.102.0.1/24
PostUp = iptables -t nat -A POSTROUTING -s 10.102.0.1/32 -o wg-p2p -j SNAT --to-source 1.2.3.4
PostDown = iptables -t nat -D POSTROUTING -s 10.102.0.1/32 -o wg-p2p -j SNAT --to-source 1.2.3.4
...

[Peer]
AllowedIPs = 10.102.0.0/24, 1.2.3.4/32
...

因此,基本上您设置了一个简单的有线隧道,并且只有使用iptables魔术,如果它是隧道源ip,您可以将源地址更改为最新时刻的“正常”IP地址(POSTROUTING)。

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

https://serverfault.com/questions/1023193

复制
相关文章

相似问题

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