linux – openvpn隧道之间的动态路由

前端之家收集整理的这篇文章主要介绍了linux – openvpn隧道之间的动态路由前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在考虑通过 OpenVPN隧道使用动态路由[OSPF或RIP].现在我几乎没有以全网状连接的办公室,但这不是可扩展的解决方案,因为我们添加了更多的位置.如果我计划使用的两个VPN端点中的一个断开,我想避免大量内部流量受到影响的情况.

你在生产中有类似的配置吗?如果是这样 – 你使用了什么路由守护进程 – quagga?别的什么?你遇到过什么问题吗?

谢谢!

解决方法

我之前已经在这些方面实现了一些东西,但是我的设置相当复杂,也许太多了.我目前正在研究实施一个更简单的解决方案,该解决方案符合以下URL所描述的内容,但我将描述我在同一时间内构建的内容.网址是 http://www.linuxjournal.com/article/9915

过去对我来说非常好用的一个选项是使用tap设备而不是tun设备来构建我的OpenVPN隧道.这将以太网通过隧道而不是第3层封装,并且它允许您解决OpenVPN的固有限制,从而将自己的路由表与内核分开.缺点是你通过这种隧道方式会产生大量开销……想象一下通过TCP加密SSL的以太网TCP ……你明白了.上行是它已经工作并且横向扩展得相当好.

假设您的VPN服务器和客户端是Linux端点(我只在Linux上测试过),您可以创建一个新的虚拟网桥接口并将网关接口分配给网桥以获取您的第3层.在我的拓扑中,我为每个VPN服务器提供了拥有10.x.0.0 / 16子网,并部署了本地DHCP服务器,为连接客户端分配地址. DHCP服务器需要在那里,因为OpenVPN不再知道IP地址;它是隧道以太网.客户端在连接后运行dhclient以通过VPN接口获取IP,这全部由连接到OpenVPN配置的连接脚本管理.

一旦通过DHCP获得双方的IP地址,您就可以使用动态路由协议在连接的客户端之间通告路由.我过去使用的是Quagga,它的工作非常可靠.

使用tap的示例服务器配置:

mode server
proto tcp-server
port 1194
dev tap0

将tap接口添加到新桥的示例命令:

sudo brctl addbr vpnbr0    # create new bridge called vpnbr0
sudo brctl setfd vpnbr0 0  # set forwarding delay to 0 secs
sudo brctl addif vpnbr0 tap0 # add openvpn tap interface to vpnbr0

示例拆卸命令:

sudo brctl delif vpnbr0 tap0
sudo brctl delbr vpnbr0

拥有vpnbr0网桥接口后,您可以在其上运行DHCP服务器或手动分配IP地址.然后,您可以像任何其他以太网接口一样对待它.您可能希望进行其他更改以调整MTU大小,您可能会尝试不同的协议和加密选项,直到您在效率和安全性之间找到适当的平衡.我没有任何好的规格可以提供整体吞吐量,这里有很多活动部件.

如果我要重新做一遍,我会坚持使用OpenVPN中的tun设备,并且我会按照第一段中链接文章中的说明更新Linux内核的路由表,随时更新OpenVPN的内部地址表.这将消除堆栈中的DHCP,减少隧道开销,并允许我的客户端连接和操作,而无需参与动态路由.

原文链接:https://www.f2er.com/linux/398045.html

猜你在找的Linux相关文章