`
wuhuizhong
  • 浏览: 682598 次
  • 性别: Icon_minigender_1
  • 来自: 中山
社区版块
存档分类
最新评论

使用OpenVPN的桥接模式扩展内部局域网

 
阅读更多

1.背景

OpenVPN是一款高度可扩展的VPN软件,除了既有的将应用客户端安全接入服务器这一传统功能外,还可以让你无缝的接入一个远程的局域网,正如你身在该局域网一样,如果你不用OpenVPN,你将很难做到这一点。当然,你可以选择像IPSec这样的重量级VPN,但是你的生活从此将不再简单,你也可以使用拨号,连接到远程,但是你永远无法体验完全接入这种身临其境的感觉。
     这就是OpenVPN的桥接功能,有了该功能,你将可以无限扩展局域网,你甚至可以将全世界连接在一个局域网内,每一个OpenVPN服务器都可以作为一个以太网桥存在,将局域网直接拉到很远的地方,距离再也不是问题。

2.理论

OpenVPN有两种虚拟模式,一种是三层路由模式,另一种是桥接模式,我们常用的是路由模式,这种方式也是其它VPN软件经常使用的模式,毕竟我们使用VPN的目的是“安全的访问应用”而对于“安全的接入远程网络”的需求并不是很明显,但是一旦你需要安全接入远程网络,你就不得不需要路由这个大伙计,有时候这个伙计不是很友好,特别是网络部署很复杂的时候,这个时候,你会想什么,如果用一根很长很硬朗的线将远程的用户机器直接拉入内部网的一个交换机端口上将会怎么,甚好!幸运的是,OpenVPN可以为你提供这根线,稍显不幸的是,你还是需要做一些工作。
     OpenVPN提供的桥接功能实现了上述的魔法,你只需要将其虚拟网卡模式配置成tap,然后将OpenVPN服务器打开的tap网卡加入到一个bridge,当然该bridge中起码还需要有一个物理网卡,该物理网卡处于远程主机希望无缝接入的局域网之中。这很简单,下图展示了这个原理:

3.怎么做

如果你对这个主题很感兴趣,并且你已经很精通OpenVPN的桥接配置,那么下面的内容就不用看了,你的动作肯定比我快,但是如果你还没有配置过这个主题,我劝你还是看下去吧,因为如果你google的话,通篇都是在解释OpenVPN官网以及源码包中自带的那几个脚本,而那几个脚本是能让功能可用,但是对于理解整个过程帮助似乎不大,因此还是将问题分解开,一步一步做,对知其然甚有好处。

3.1.网络拓扑图:

3.2.创建一个网桥

brctl addbr br0

3.3.加入物理网卡到br0

将连入内部局域网的物理网卡加入br0
brctl addif br0 eth0

3.4.配置OpenVPN

在OpenVPN的配置文件中加入server-bridge [gw] [mask] [start-IP] [end-IP]
注意,start-IP到end-IP这几个IP地址不能和局域网内既有的地址相冲突,因为这些地址要分给远程机器了,而远程机器实际上已经通过OpenVPN接入到局域网内部了,而一个局域网内部,不能有两台机器的IP地址一样。

3.5.启动OpenVPN服务

按照常规的方式启动OpenVPN:openvpn --config server.cfg

然后将tap0加入到br0:brctl addif br0 tap0

请注意,这种桥接方式启动的OpenVPN服务器上的tap0虚拟网卡没有IP地址,因为整个过程没有IP层的内容。

3.6.在远程启动OpenVPN客户端

按照常规的方式启动OpenVPN客户端后,客户端将被分配到一个内网的地址,虽然它是从外部连接进来的。

3.7.测试

在远程OpenVPN客户端所在的机器上ping局域网内部的主机,然后查看arp表,内部局域网内的主机的mac地址已经到达了远程OpenVPN客户端所在的机器,它们属于一个局域网了。

 

FROM: http://blog.csdn.net/dog250/article/details/6839585

分享到:
评论

相关推荐

    基于openvpn的web管理系统,前后端分离设计。

    基于openvpn的web管理系统,前后端分离设计。

    openvpn的几种组网方式

    openvpn的几种组网方式

    使用Cisco Packet Tracer实现两个局域网通信

    使用Cisco Packet Tracer实现两个局域网通信,亲自测试可以使用

    openvpn 2.5.10版本

    openvpn 2.5.10版本,通过三板斧即可安装,证书生成需要的easy-rsa3.1.5版本也在压缩包里面。

    MedShakeEHR-Ansible:在Debian上自动安装Ansible的MedShakeEHR

    安装OpenVPN 保护OpenVPN 在局域网中安装Orthanc ? 先决条件 Ansible> 2.5 Ansible> 2.9(用于SSH-sec角色) 在客户端计算机和服务器计算机之间已正确配置SSH身份验证。 安装 克隆项目并安装角色: git clone...

    一款局域网共享的软件工具

    在IT领域,局域网共享软件工具是一种至关重要的应用,尤其在办公室或家庭网络环境中,它们使得用户能够方便地在连接在同一局域网内的设备之间分享文件、打印机和其他资源。"易共享"这款软件显然是针对这个需求而设计...

    掌控局域网监控软件 v1.361

    掌控局域网监控软件支持企业专网及VPN的环境,在局域网内任何一台电脑安装控制端,便可监控到局域网内所有机器(自动上线)。可以远程控制屏幕,上传下载文件,监控视频,对屏幕进行24小时不断的录像,批量开、关机...

    一键查看局域网IP

    查看公司局域网内各电脑的IP,非常实用的软件.

    网络系统管理赛项软件包

    2. **普通PC软件包**:这部分可能包含常用的操作系统(如Windows或Linux)、办公软件、防病毒软件等,是个人计算机用户日常使用的必备软件。在网络环境中,保持所有设备的软件更新和安全是防止潜在威胁的重要措施。 ...

    防火墙三种模式(路由模式、混合模式、VPN模式)配置实例.pdf

    防火墙三种模式(路由模式、混合模式、VPN模式)配置实例.pdf

    softether-open-vpnserver-vpnbridge-v4.43-9799.exe

    把多个局域网连接成一个大局域网;其他各种强大的网络搭建都能做 截止到发贴日(2024-5-13),最新的版本是该版本 v4.43-9799 另附网盘下载地址 https://pan.baidu.com/s/1K3hqYkBp_gtMTkxVd21csQ?pwd=8888 使用...

    open-build-master+Open虚拟专网2.5源代码+依赖项源代码

    与原版open-build-master相比,我做了稍稍修改,已经包含Open虚拟专网2.5源代码和依赖项源代码,需要VS2019、ActivePerl、WDK10,可以直接按照我写的教程进行编译,100%可编译。

    局域网组建与实施方案.doc

    局域网组建与实施方案 工程场景: 要对一个公司进行局域网的组建,公司内部有500台计算机,现在有如下条件:公司 已租借了一个公网的IP地址 100.100.100.10 和ISP提供的公网DNS服务器,IP地址是:100.100.100.200。...

    老毛子 Padavan 固件MI-R3G_3.4.3.9-099

    老毛子 Padavan 固件MI-R3G_3.4.3.9-099

    wireshark 包解析插件

    使用方法: 1. 打开wireshark根目录中的init.lua文件, 将disable_lua=false 并在最后添加dofile("map_port_set.lua") 2. 将map_port_set.lua 拷贝到wireshark根目录下 3. 重启wireshark 打开laft6-pcp....

    虚拟专用局域网业务及方案浅析

    本文介绍由因特网工程任务组...电信业致力于提供优化的VPN业务,使企业可以方便、经济地使用以太网技术,将其位 于不同地点且相隔较远的部门互联起来。到目前为止,大多数运营商只是部署了专用的点到点以太网业务。

    Angular 2 Cookbook(pdf+epub+mobi+code_file).zip

    2. **依赖注入**:Angular 2的依赖注入系统使得服务的创建和共享变得简单,能够轻松地管理组件间的依赖关系,提高代码的可测试性和可扩展性。 3. **指令**:指令用于扩展HTML,赋予元素新的功能。分为结构指令(如*...

    医院局域网设计.doc

    通过VPN(Virtual Private Network)技术可以在公共网络的两个端点间建立一条逻辑连接,使在外办公人员可以通 过Internet访问医院内部网,极大地提高了办公效率,同时免去了高昂的专线租用费用 。 关键词:兰大一院...

    SonicWALL无线局域网安全方案

    凭借无线局域网独特优势,将会逐渐被大多数公司所采用。但是,随之而来的是不可忽视的无线安全问题,一方面是因为这些未被认证的无线接入点(AP)会成为公司网络的后门,另一方面WLAN所使用的有线等效保密协议(WEP...

    wan_android.zip

    wan_android.zip,用组件化的思想实现一个玩Android APP。目前首页、项目、公众号分别以组件的形式显示到了app中。项目地址附上了实现步骤,欢迎实现您自己的组件!欢迎提出问题 欢迎讨论 欢迎赐教。

Global site tag (gtag.js) - Google Analytics