首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenVPN-连接作为同一子网中另一个主机的默认网关

问OpenVPN-连接作为同一子网中另一个主机的默认网关
EN

Server Fault用户
提问于 2014-10-12 15:09:20
回答 1查看 927关注 0票数 0

我想要实现使用我的openvpn连接作为默认网关的另一个主机在同一子网。我在同一个子网中有两个主机,它们都带有UbuntuServer14.04。

主机A运行OpenVPN以建立到我的openvpn-退出节点的连接。此主机已被修改,以便允许ip转发。

主机B是客户端应用服务器,应该通过主机A的共享开放连接来使用因特网连接。由于我已经设置了主机B的网关- IP到主机A的IP,来自主机B的流量现在通过主机A的openvpn连接进行路由。

问题出现在主机A上的openvpn连接下降(在德国至少每24小时一次)并重新连接;然后主机B使用来自主机A的默认gw并绕过openvpn连接(有时直到隧道再次打开,每次主机B重新启动)。

取得的成就应该是,确保主机B只有通过openvpn连接才能上网。是否有任何可能确保,主机B只能访问互联网,只要它使用开放隧道?

主机A (eth0 ip:10.11.12.6/gw:10.11.12.1) (tun0 ip:10.8.0.146/gw:10.8.0.145):

  • 安装了OpenVPN并将客户端连接配置到我的openvn退出节点: works
  • 配置主机A,以便允许IP转发和配置IP伪装: works

主机B (eth0 ip:10.11.12.9/gw:10.11.12.6):-更改了主机A的ip地址的默认网关: works -所有流量都在主机A上使用openvpn隧道

问题:每次openvpn连接下降和/或openvpn重新连接时,主机B似乎使用主机A的默认网关进行切换。在这种情况下,主机B应该保持没有互联网接入,而是使用连接主机A连接到openvpn网关。

好样的,D0C

EN

回答 1

Server Fault用户

发布于 2014-10-12 15:40:52

要实现这一点,您应该使用基于策略的路由;将允许您创建独立的路由表,并根据包属性(如Source)将流量直接发送到任何路由表。

创建新的路由表如下:

代码语言:javascript
复制
echo "200    OpenVPN" >>/etc/iproute2/rt_tables

将默认网关添加到新创建的表,如下所示:

代码语言:javascript
复制
route add default via OpenVPN-GW-IP table OpenVPN

允许使用此路由表路由主机-B:

代码语言:javascript
复制
ip rule add from Host-B-IP table OpenVPN

还需要将以下路由添加到新表中:

代码语言:javascript
复制
ip route add 127.0.0.0/8 dev lo table OpenVPN
ip route add YOUR-Local-Subnet dev DEVICE-NAME table OpenVPN

更新:使用SNAT而不是MASQURADE,

代码语言:javascript
复制
iptables -t nat -A POSTROUTING -s 10.11.12.9 -j SNAT --to-source 10.8.0.146
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/636433

复制
相关文章

相似问题

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